RMANリストアとリカバリ2(RMAN Incomplete Recovery)

27048 ワード

---コンテンツの復元開始---
一.RMANが不完全なリカバリを実現
手順:
a.mount状態にデータをロードする(リカバリ前にバックアップを行うことを推奨する);
b.高同時に複数のチャネルを割り当てる.
c.必要なすべてのデータファイルを復元する.
d.until time,until sequence,until scnを使用してデータベースを復元する.
e.resetlogsを使用してデータベースを開く.
f.全備データベース;
RMANのuntil timeベースの例を示します.
 1 SQL> insert into user1.t select 9,'polestar' from dual;                    

 2 1 row created.                    

 3 SQL> commit;                                                --  commit               

 4 

 5 -bash-3.00$ strings redo03.log |grep polestar               --                   

 6 polestar

 7 -bash-3.00$ 

 8                         

 9 SQL> alter system switch logfile;                        

10 System altered.            

11 SQL>                         

12 

13 --  

14 RMAN> run{

15 2> allocate channel ch1 type disk;

16 3> allocate channel ch2 type disk;

17 4> backup as compressed backupset database plus archivelog delete input

18 5> format '/tmp/backup/Whole_lg_%U'

19 6> tag='Wholebak_Pluslog';

20 7> release channel ch1;

21 8> release channel ch2;

22 9> }

23 

24 

25 --    

26 SQL> select to_char(sysdate,'YYYY-MM-DD  HH24:MI:SS') as TO_CHAR  from dual;

27 

28 TO_CHAR

29 --------------------

30 2013-01-26  17:50:13

31 

32 --   

33 SQL> drop table user1.t;

34 

35 Table dropped.

36 

37 SQL> 

38 

39 --       mount  

40 SQL> startup mount

41 

42 --  

43 RMAN> run{

44 2> allocate channel ch1 type disk;

45 3> allocate channel ch2 type disk;

46 4> set until time "to_date('2013-01-26 17:50:13','yyyy-mm-dd hh24:mi:ss')";   

47 5> restore database;

48 6> recover database;

49 7> alter database open resetlogs;

50 8> release channel ch1;

51 9> release channel ch2;

52 10> }

53 

54 --      

55 SQL> select * from user1.t order by 1;

56 

57         ID NAME

58 ---------- ----------------

59          0 oracle

60          1 oracle

61          2 oracle

62          3 oracle

63          4 oracle

64          5 oracle

65          6 oracle

66          7 myrman

67          8 inspur

68          9 polestar

69 

70 10 rows selected.

71 

72 SQL> 

二.SPFILEファイルが失われたリカバリ
SPFILEパラメータファイルはRMANでバックアップできるため、RMANを使用してSPFILEファイルを復元できます.SPFILEは自動バックアップが可能です.
SPFILEの自動バックアップは、制御ファイルのバックアップとともに行われるため、制御ファイルを自動バックアップすることで、SPFILEファイルの自動バックアップを実現することができる.次に、システムの表領域をバックアップすると、自動バックアップパラメータがONに設定されているかどうかにかかわらず、制御ファイルの自動バックアップが開始されます.この場合もSPFILEファイルをバックアップします.
SPFILEファイル復元手順:
a. startup nomount [force];
b. set dbid=dbid_no;
c. restore spfile from autobackup | ''
d. startup force; dの実行に失敗した場合、e,fに移動し、そうでなければe,fを実行しない.
e. set dbid=dbid_no;
f. startup;
 1 --                      (             DBID,     DBID )

 2 RMAN> CONFIGURE CONTROLFILE AUTOBACKUP on;

 3 

 4 new RMAN configuration parameters:

 5 CONFIGURE CONTROLFILE AUTOBACKUP ON;

 6 new RMAN configuration parameters are successfully stored

 7 

 8 RMAN> configure controlfile autobackup format for device type disk to '/tmp/backup/ctl_%d_%F';

 9 

10 new RMAN configuration parameters:

11 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/tmp/backup/ctl_%d_%F';

12 new RMAN configuration parameters are successfully stored

13 

14 RMAN> 

15 

16 SQL> alter tablespace users add datafile '/u01/oradata/sunbak/users03.dbf' size 5m 

17 

18 -bash-3.00$ ls /tmp/backup           --     alter tablespace users add datafile               

19 ctl_SUN_c-1913551800-20130222-01

20 -bash-3.00$    

21 

22 

23 --  

24 SQL> shutdown immediate;

25 

26 --    spfile  

27 -bash-3.00$ mv spfilesun.ora spfilesun.ora.bak   --    spfile     

28 

29 --  

30 [oracle@oradb ~]$ rman target / nocatalog

31 

32 RMAN> startup nomount force;

33 

34 RMAN> set dbid=1913551800;

35 

36 RMAN> restore spfile from autobackup;   --           , Oracle    , nomount        

37 RMAN-06172: no autobackup found or specified handle is not a valid copy or piece

38 

39 RMAN> restore spfile from '/u01/bk/rmbk/auto_ctl_ORCL_c-1263182651-20101124-00';    --      

40 RMAN> startup force; 

41           

三.制御ファイルの復元処理
制御ファイルには、作成時間、DBID、データファイル、ログファイルなどのデータベースに関する物理情報が記述されているため、制御ファイルが失われるとデータベースが起動しなくなり、その重要性を考慮して、制御ファイルのバックアップとリカバリが個別にリストされます.
 1 --           

 2 -bash-3.00$ mv control01.ctl.bak control01.ctl    

 3 -bash-3.00$ mv control02.ctl.bak control02.ctl    

 4 -bash-3.00$ mv control03.ctl.bak control03.ctl          

 5 

 6 --Nocatalog           Spfile      (      )

 7 [oracle@oradb ~]$ rman target / nocatalog

 8 

 9 RMAN> startup nomount force;

10 

11 RMAN> set dbid=1913551800;

12 

13 RMAN> RESTORE CONTROLFILE FROM '/tmp/backup/ctl_SUN_c-1913551800-20130222-01';                    

14 RMAN>  ALTER DATABASE MOUNT;

15 

16 --    :         6:      (          )

17 SQL> recover database using backup controlfile;

18 ORA-01507: database not mounted

19 

20 SQL> recover database using backup controlfile;

21 ORA-00279: change 831957 generated at 02/22/2013 20:46:02 needed for thread 1

22 ORA-00289: suggestion : /u01/admin/sun/arch/1_2_805747372.dbf

23 ORA-00280: change 831957 for thread 1 is in sequence #2

24 

25 Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

26 /u01/oradata/sunbak/redo01.log

27 Log applied.

28 Media recovery complete.

29 SQL> alter database open resetlogs;

30 

31 Database altered.

32 

33 SQL> 

---コンテンツの復元終了---