温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

RMAN如何快速恢复数据库

发布时间:2021-11-11 10:37:36 来源:亿速云 阅读:141 作者:小新 栏目:关系型数据库

小编给大家分享一下RMAN如何快速恢复数据库,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

10g会使用RMAN备份恢复一般是DBA的工作,对技术要求较高,且对oracle的组织结构有较深的理解才可以进行操作,而且由于数据库故障不易发生,大部分DBA也不会记住命令,需要的手查一下,各种文件丢失的脚本又都不一样,例如

控制文件丢失恢复指令:restore controlfile from autobackup;

redolog 丢失的情况:alter database clear (unarchived) logfile;

不完全恢复指令:recover database until cancel;

11g后rman有了更丰富的指令集和修复方法,使得普通运维人员也能迅速快速修复数据库故障,(list 、advise、repair)

见如下实验。
第一种情况,模拟控制文件丢失,删除controlfile

1

2

3

4

5

6

7

8

9

SQL> startup

ORACLE instance started.

 

Total SystemGlobalArea  510554112 bytes

FixedSize                 1345968 bytes

VariableSize            171968080 bytes

DatabaseBuffers          331350016 bytes

Redo Buffers                5890048 bytes

ORA-00205: errorinidentifying control file,checkalert logformore info



启动数据库发现数据库已经无法启动,现在我们用两种方法来尝试恢复下:

传统的方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

RMAN>restore controlfile from autobackup;

 

Starting restoreat30-AUG-16

using targetdatabasecontrol fileinsteadofrecovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=20 device type=DISK

 

recovery area destination: /u01/app/oracle/fra

databasename(ordatabaseuniquename) usedforsearch: PROD2

channel ORA_DISK_1: AUTOBACKUP /u01/app/oracle/fra/PROD2/autobackup/2016_08_24/o1_mf_s_920718874_cvt48tkl_.bkp foundinthe recovery area

AUTOBACKUP searchwithformat"%F"notattempted because DBID wasnotset

channel ORA_DISK_1: restoring control filefromAUTOBACKUP /u01/app/oracle/fra/PROD2/autobackup/2016_08_24/o1_mf_s_920718874_cvt48tkl_.bkp

channel ORA_DISK_1: control file restorefromAUTOBACKUP complete

outputfilename=/u01/app/oracle/oradata/PROD2/control01.ctl

outputfilename=/u01/app/oracle/fast_recovery_area/PROD2/control02.ctl

Finished restoreat30-AUG-16


11g 的快速恢复方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

RMAN> list failure;

 

using targetdatabasecontrol fileinsteadofrecovery catalog

ListofDatabaseFailures

=========================

 

Failure ID Priority Status   TimeDetected Summary

---------- -------- --------- ------------- -------

712        CRITICALOPEN     30-AUG-16     Control file /u01/app/oracle/oradata/PROD2/control01.ctlismissing

 

RMAN> advise failure;

 

ListofDatabaseFailures

=========================

 

Failure ID Priority Status   TimeDetected Summary

---------- -------- --------- ------------- -------

712        CRITICALOPEN     30-AUG-16     Control file /u01/app/oracle/oradata/PROD2/control01.ctlismissing

 

analyzing automatic repair options; this may takesometime

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=20 device type=DISK

analyzing automatic repair options complete

 

Mandatory Manual Actions

========================

nomanual actions available

 

Optional Manual Actions

=======================

nomanual actions available

 

Automated Repair Options

========================

OptionRepair Description

------ ------------------

1      Use a multiplexed copytorestore control file /u01/app/oracle/oradata/PROD2/control01.ctl 

  Strategy: The repair includes complete media recoverywithnodata loss

  Repair script: /u01/app/oracle/diag/rdbms/prod2/PROD2/hm/reco_1499999453.hm

 

RMAN> repair failure;

 

Strategy: The repair includes complete media recoverywithnodata loss

Repair script: /u01/app/oracle/diag/rdbms/prod2/PROD2/hm/reco_1499999453.hm

 

contentsofrepair script:

   # restore control file using multiplexed copy

   restore controlfilefrom'/u01/app/oracle/fast_recovery_area/PROD2/control02.ctl';

   sql'alter database mount';

 

Do you really wanttoexecutethe above repair (enter YESorNO)? yes

executing repair script

 

Starting restoreat30-AUG-16

using channel ORA_DISK_1

 

channel ORA_DISK_1: copied control file copy

outputfilename=/u01/app/oracle/oradata/PROD2/control01.ctl

outputfilename=/u01/app/oracle/fast_recovery_area/PROD2/control02.ctl

Finished restoreat30-AUG-16

 

sql statement:alterdatabasemount

released channel: ORA_DISK_1

repair failure complete



从以上方法还看不出自动修复的好处,那我们再增加点难度,删除所有的数据文件(不包括参数文件),对比下吧

1

2

3

4

5

6

7

8

9

SQL> startup

ORACLE instance started.

 

Total SystemGlobalArea  510554112 bytes

FixedSize                 1345968 bytes

VariableSize            171968080 bytes

DatabaseBuffers          331350016 bytes

Redo Buffers                5890048 bytes

ORA-00205: errorinidentifying control file,checkalert logformore



传统处理方法,使用以下脚本可以恢复数据库到启动状态,这里就需要比较专业的知识了



1

2

3

4

5

6

7

run{

restore controlfile from autobackup;

alter database mount;

restore database;

recover database until cancel;

alter database open resetlogs;

};


接下来是11g的恢复方法:list-advise-repair

1

2

3

4

5

6

7

8

9

10

11

12

13

14

RMAN> list failure;

 

using targetdatabasecontrol fileinsteadofrecovery catalog

ListofDatabaseFailures

=========================

 

Failure ID Priority Status   TimeDetected Summary

---------- -------- --------- ------------- -------

958        CRITICALOPEN     30-AUG-16     System datafile 1:'/u01/app/oracle/oradata/PROD2/system01.dbf'ismissing

915        CRITICALOPEN     30-AUG-16     Control file /u01/app/oracle/oradata/PROD2/control01.ctlismissing

838        CRITICALOPEN     30-AUG-16     System datafile 1:'/u01/app/oracle/oradata/PROD2/system01.dbf'needs media recovery

835        CRITICALOPEN     30-AUG-16     Control file needs media recovery

415        HIGH    OPEN     30-AUG-16     Oneormore non-system datafiles are missing

841        HIGH    OPEN     30-AUG-16     Oneormore non-system datafiles need media recovery


可以发先已经告诉我们这些文件丢失了

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

RMAN> advise failure;

 

ListofDatabaseFailures

=========================

 

Failure ID Priority Status   TimeDetected Summary

---------- -------- --------- ------------- -------

958        CRITICALOPEN     30-AUG-16     System datafile 1:'/u01/app/oracle/oradata/PROD2/system01.dbf'ismissing

915        CRITICALOPEN     30-AUG-16     Control file /u01/app/oracle/oradata/PROD2/control01.ctlismissing

838        CRITICALOPEN     30-AUG-16     System datafile 1:'/u01/app/oracle/oradata/PROD2/system01.dbf'needs media recovery

835        CRITICALOPEN     30-AUG-16     Control file needs media recovery

415        HIGH    OPEN     30-AUG-16     Oneormore non-system datafiles are missing

841        HIGH    OPEN     30-AUG-16     Oneormore non-system datafiles need media recovery

 

analyzing automatic repair options; this may takesometime

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=20 device type=DISK

analyzing automatic repair options complete

 

Notallspecified failures can currently be repaired.

The following failures must be repaired before adviseforothers can be given.

 

Failure ID Priority Status   TimeDetected Summary

---------- -------- --------- ------------- -------

915        CRITICALOPEN     30-AUG-16     Control file /u01/app/oracle/oradata/PROD2/control01.ctlismissing

 

Mandatory Manual Actions

========================

nomanual actions available

 

Optional Manual Actions

=======================

nomanual actions available

 

Automated Repair Options

========================

OptionRepair Description

------ ------------------

1      Use a multiplexed copytorestore control file /u01/app/oracle/oradata/PROD2/control01.ctl 

  Strategy: The repair includes complete media recoverywithnodata loss

  Repair script: /u01/app/oracle/diag/rdbms/prod2/PROD2/hm/reco_3157315699.hm


rman已经给出建议及执行的脚本。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

RMAN> repair failure;

 

Strategy: The repair includes complete media recoverywithnodata loss

Repair script: /u01/app/oracle/diag/rdbms/prod2/PROD2/hm/reco_3157315699.hm

 

contentsofrepair script:

   # restore control file using multiplexed copy

   restore controlfilefrom'/u01/app/oracle/fast_recovery_area/PROD2/control02.ctl';

   sql'alter database mount';

 

Do you really wanttoexecutethe above repair (enter YESorNO)?yes

executing repair script

 

Starting restoreat30-AUG-16

using channel ORA_DISK_1

 

 

channel ORA_DISK_1: copied control file copy

outputfilename=/u01/app/oracle/oradata/PROD2/control01.ctl

outputfilename=/u01/app/oracle/fast_recovery_area/PROD2/control02.ctl

Finished restoreat30-AUG-16

 

 

sql statement:alterdatabasemount

released channel: ORA_DISK_1

repair failure complete

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

RMAN> list failure;

 

ListofDatabaseFailures

=========================

 

Failure ID Priority Status   TimeDetected Summary

---------- -------- --------- ------------- -------

1230       CRITICALOPEN     30-AUG-16     Redo loggroup3isunavailable

1224       CRITICALOPEN     30-AUG-16     Redo loggroup2isunavailable

1218       CRITICALOPEN     30-AUG-16     Redo loggroup1isunavailable

958        CRITICALOPEN     30-AUG-16     System datafile 1:'/u01/app/oracle/oradata/PROD2/system01.dbf'ismissing

838        CRITICALOPEN     30-AUG-16     System datafile 1:'/u01/app/oracle/oradata/PROD2/system01.dbf'needs media recovery

1233       HIGH    OPEN     30-AUG-16     Redo log file /u01/app/oracle/oradata/PROD2/redo03.logismissing

1227       HIGH    OPEN     30-AUG-16     Redo log file /u01/app/oracle/oradata/PROD2/redo02.logismissing

1221       HIGH    OPEN     30-AUG-16     Redo log file /u01/app/oracle/oradata/PROD2/redo01.logismissing

415        HIGH    OPEN     30-AUG-16     Oneormore non-system datafiles are missing

841        HIGH    OPEN     30-AUG-16     Oneormore non-system datafiles need media recovery

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

RMAN> advise failure;

 

ListofDatabaseFailures

=========================

 

Failure ID Priority Status   TimeDetected Summary

---------- -------- --------- ------------- -------

1230       CRITICALOPEN     30-AUG-16     Redo loggroup3isunavailable

1224       CRITICALOPEN     30-AUG-16     Redo loggroup2isunavailable

1218       CRITICALOPEN     30-AUG-16     Redo loggroup1isunavailable

958        CRITICALOPEN     30-AUG-16     System datafile 1:'/u01/app/oracle/oradata/PROD2/system01.dbf'ismissing

838        CRITICALOPEN     30-AUG-16     System datafile 1:'/u01/app/oracle/oradata/PROD2/system01.dbf'needs media recovery

1233       HIGH    OPEN     30-AUG-16     Redo log file /u01/app/oracle/oradata/PROD2/redo03.logismissing

1227       HIGH    OPEN     30-AUG-16     Redo log file /u01/app/oracle/oradata/PROD2/redo02.logismissing

1221       HIGH    OPEN     30-AUG-16     Redo log file /u01/app/oracle/oradata/PROD2/redo01.logismissing

415        HIGH    OPEN     30-AUG-16     Oneormore non-system datafiles are missing

841        HIGH    OPEN     30-AUG-16     Oneormore non-system datafiles need media recovery

 

analyzing automatic repair options; this may takesometime

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=20 device type=DISK

analyzing automatic repair options complete

 

Mandatory Manual Actions

========================

nomanual actions available

 

Optional Manual Actions

=======================

1. If file /u01/app/oracle/oradata/PROD2/redo03.log was unintentionally renamedormoved, restore it

2. If file /u01/app/oracle/oradata/PROD2/redo02.log was unintentionally renamedormoved, restore it

3. If file /u01/app/oracle/oradata/PROD2/redo01.log was unintentionally renamedormoved, restore it

 

Automated Repair Options

========================

OptionRepair Description

------ ------------------

1      Perform incompletedatabaserecoverytoSCN 1206859 

  Strategy: The repair includes point-in-timerecoverywithsomedata loss

  Repair script: /u01/app/oracle/diag/rdbms/prod2/PROD2/hm/reco_3316371170.hm

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

RMAN> repair failure;

 

Strategy: The repair includes point-in-timerecoverywithsomedata loss

Repair script: /u01/app/oracle/diag/rdbms/prod2/PROD2/hm/reco_3316371170.hm

 

contentsofrepair script:

   #databasepoint-in-timerecovery

   resetdatabasetoincarnation 5;

   restoredatabaseuntil scn 1206859;

   recoverdatabaseuntil scn 1206859;

   alterdatabaseopenresetlogs;

 

Do you really wanttoexecutethe above repair (enter YESorNO)? YES

executing repair script

 

databaseresettoincarnation 5

 

Starting restoreat30-AUG-16

using channel ORA_DISK_1

 

channel ORA_DISK_1: starting datafile backupsetrestore

channel ORA_DISK_1: specifying datafile(s)torestorefrombackupset

channel ORA_DISK_1: restoring datafile 00001to/u01/app/oracle/oradata/PROD2/system01.dbf

channel ORA_DISK_1: restoring datafile 00002to/u01/app/oracle/oradata/PROD2/sysaux01.dbf

channel ORA_DISK_1: restoring datafile 00003to/u01/app/oracle/oradata/PROD2/undotbs01.dbf

channel ORA_DISK_1: restoring datafile 00004to/u01/app/oracle/oradata/PROD2/users01.dbf

channel ORA_DISK_1: readingfrombackup piece /u01/app/oracle/fra/PROD2/backupset/2016_08_24/o1_mf_nnndf_TAG20160824T111405_cvt47yrv_.bkp

channel ORA_DISK_1: piece handle=/u01/app/oracle/fra/PROD2/backupset/2016_08_24/o1_mf_nnndf_TAG20160824T111405_cvt47yrv_.bkp tag=TAG20160824T111405

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsedtime: 00:00:15

Finished restoreat30-AUG-16

 

Starting recoverat30-AUG-16

using channel ORA_DISK_1

 

starting media recovery

 

archived logforthread 1withsequence3isalreadyondiskasfile /u01/app/oracle/fra/PROD2/archivelog/2016_08_24/o1_mf_1_3_cvt48qv1_.arc

archived logforthread 1withsequence4isalreadyondiskasfile /u01/app/oracle/fra/PROD2/archivelog/2016_08_24/o1_mf_1_4_cvvbdhx0_.arc

archived logforthread 1withsequence5isalreadyondiskasfile /u01/app/oracle/fra/PROD2/archivelog/2016_08_30/o1_mf_1_5_cw9m2no2_.arc

archived log filename=/u01/app/oracle/fra/PROD2/archivelog/2016_08_24/o1_mf_1_3_cvt48qv1_.arc thread=1sequence=3

archived log filename=/u01/app/oracle/fra/PROD2/archivelog/2016_08_24/o1_mf_1_4_cvvbdhx0_.arc thread=1sequence=4

archived log filename=/u01/app/oracle/fra/PROD2/archivelog/2016_08_30/o1_mf_1_5_cw9m2no2_.arc thread=1sequence=5

media recovery complete, elapsedtime: 00:00:02

Finished recoverat30-AUG-16

 

databaseopened

repair failure complete

看完了这篇文章,相信你对“RMAN如何快速恢复数据库”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI