RMAN實戰系列之二:用RMAN實現災難恢復

husthxd發表於2004-09-22

rman實驗(2)。


本文可以任意轉載,轉載時請務必以超連結形式標明文章原始出處和作者資訊及本宣告

http://blog.itpub.net/post/11/2315

OS:windows 2000

DB:ORACLE 9.0.1

ORACLE_BASE:d:oracle

 

1.       以下示例在丟失目標資料庫資料檔案、恢復目錄、所有控制檔案、所有線上重做日誌檔案和所有引數檔案的情況下恢復資料庫。災難恢復最小需要某些資料檔案的備份、歸檔日誌和至少一個控制檔案的自動備份。

2.       啟動rman,連線到目標資料庫、恢復目錄上,設定控制檔案自動備份,做資料庫的全備份。

c:>rman target sys/oracle@to911newdb rcvcat rman/rman@catalog

連線到目標資料庫: HYB (DBID=3456381404)

連線到恢復目錄資料庫

Rman>configure controlfile autobackup on;

Rman>backup database plus archivelog;

3.       關閉資料庫,刪除所有的資料檔案、控制檔案和日誌檔案,不連線恢復目錄(模擬恢復目錄資料庫損壞),實際環境中可能要重新配置tnsname和listener。重新連線rman。

C: >rman

 

恢復管理器: 版本9.0.1.1.1 - Production

 

(c) Copyright 2001 Oracle Corporation.  All rights reserved.

 

RMAN>set DBID 3456381404

 

正在執行命令: SET DBID

 

RMAN>connect target sys/oracle@to911newdb

 

已連線到目標資料庫 (未啟動)

 

RMAN>restore controlfile from autobackup;

 

啟動 restore 於 28-7月 -04

 

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-00579: the following error occurred at 07/28/2004 14:55:26

RMAN-03002: failure during compilation of command

RMAN-03013: command type: restore

RMAN-03002: failure during compilation of command

RMAN-03013: command type: IRESTORE

RMAN-12010: automatic channel allocation initialization failed

RMAN-06403: could not obtain a fully authorized session

RMAN-04005: error from target database: ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist

 

RMAN>startup force nomount

 

Oracle 例程已啟動

 

總的系統全域性區域為    302805104位元組

 

Fixed Size                      282736位元組

Variable Size                192937984位元組

Database Buffers             109051904位元組

Redo Buffers                    532480位元組

 

RMAN>restore controlfile from autobackup;

 

啟動 restore 於 28-7月 -04

 

正在使用目標資料庫控制檔案替代恢復目錄

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=11 devtype=DISK

通道 ORA_DISK_1, 正在查詢當天控制檔案自動備份:20040728

通道 ORA_DISK_1, 找到控制檔案自動備份:c-3456381404-20040728-02

通道 ORA_DISK_1, 控制檔案自動備份恢復已完成

正在複製控制檔案

輸出檔名=D:ORACLEORADATAHYBCONTROL01.CTL

輸出檔名=D:ORACLEORADATAHYBCONTROL02.CTL

輸出檔名=D:ORACLEORADATAHYBCONTROL03.CTL

完成 restore 於 28-7月 -04

 

RMAN>alter database mount;

資料庫已載入

 

RMAN>run

2> {

3> set until sequence 5 thread 1;

4> restore database;

5> recover database;

6> }

 

正在執行命令: SET until clause

正在使用目標資料庫控制檔案替代恢復目錄

 

啟動 restore 於 28-7月 -04

 

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=10 devtype=DISK

通道 ORA_DISK_1: 正在開始恢復資料檔案備份集

通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案

正將資料檔案00001恢復到D:ORACLEORADATAHYBSYSTEM01.DBF

正將資料檔案00002恢復到D:ORACLEORADATAHYBUNDOTBS01.DBF

正將資料檔案00003恢復到D:ORACLEORADATAHYBCWMLITE01.DBF

正將資料檔案00004恢復到D:ORACLEORADATAHYBDRSYS01.DBF

正將資料檔案00005恢復到D:ORACLEORADATAHYBEXAMPLE01.DBF

正將資料檔案00006恢復到D:ORACLEORADATAHYBINDX01.DBF

正將資料檔案00007恢復到D:ORACLEORADATAHYBTOOLS01.DBF

正將資料檔案00008恢復到D:ORACLEORADATAHYBUSERS01.DBF

正將資料檔案00009恢復到D:ORACLEORADATAHYBSIDB.ORA

正將資料檔案00010恢復到D:ORACLEORADATAHYBYB.ORA

正將資料檔案00011恢復到D:ORACLEORADATAHYBZS.ORA

正將資料檔案00012恢復到D:ORACLEORADATAHYBFF.ORA

正將資料檔案00013恢復到D:ORACLEORADATAHYBBM.ORA

正將資料檔案00014恢復到D:ORACLEORADATAHYBSIDB_INDEX.ORA

正將資料檔案00015恢復到D:ORACLEORADATAHYBPHOTO.ORA

正將資料檔案00016恢復到D:ORACLEORADATAHYBHIS.ORA

正將資料檔案00017恢復到D:ORACLEORADATAHYBSIDB_RBS.ORA

正將資料檔案00018恢復到D:ORACLEORADATAHYBGRYSZM1994.ORA

正將資料檔案00019恢復到D:ORACLEORADATAHYBGRYSZM1995.ORA

正將資料檔案00020恢復到D:ORACLEORADATAHYBGRYSZM1996.ORA

正將資料檔案00021恢復到D:ORACLEORADATAHYBGRYSZM1997.ORA

正將資料檔案00022恢復到D:ORACLEORADATAHYBGRYSZM1998.ORA

正將資料檔案00023恢復到D:ORACLEORADATAHYBGRYSZM1999.ORA

正將資料檔案00024恢復到D:ORACLEORADATAHYBGRYSZM2000.ORA

正將資料檔案00025恢復到D:ORACLEORADATAHYBGRYSZM2001.ORA

正將資料檔案00026恢復到D:ORACLEORADATAHYBGRYSZM2002.ORA

正將資料檔案00027恢復到D:ORACLEORADATAHYBGRYSZM2003.ORA

正將資料檔案00028恢復到D:ORACLEORADATAHYBGRYSZM2004.ORA

正將資料檔案00029恢復到D:ORACLEORADATAHYBGRYSZM2005.ORA

正將資料檔案00030恢復到D:ORACLEORADATAHYBGRYSZM2006.ORA

正將資料檔案00031恢復到D:ORACLEORADATAHYBGRYSZM2007.ORA

正將資料檔案00032恢復到D:ORACLEORADATAHYBGRYSZM2008.ORA

正將資料檔案00033恢復到D:ORACLEORADATAHYBGRYSZM_LOCAL_INDEX.ORA

正將資料檔案00034恢復到D:ORACLEORADATAHYBGRYSZM_GLOBAL_INDEX.ORA

通道 ORA_DISK_1: 已恢復備份段 1

handle=E:RMANHYB_532705611_02FS0SAB_1_1 tag=null params=NULL

通道 ORA_DISK_1: 恢復完成

完成 restore 於 28-7月 -04

 

啟動 recover 於 28-7月 -04

使用通道 ORA_DISK_1

 

 

正在開始介質的恢復

 

存檔日誌執行緒 1 序列 2 已作為檔案 D:ORACLEORA90RDBMSARC00002.001 存在於磁碟上

 

存檔日誌執行緒 1 序列 3 已作為檔案 E:ARCHIVEHYBARC_3_1.ARC 存在於磁碟上

存檔日誌執行緒 1 序列 4 已作為檔案 E:ARCHIVEHYBARC_4_1.ARC 存在於磁碟上

存檔日誌檔名 =D:ORACLEORA90RDBMSARC00002.001 執行緒 =1 序列 =2

存檔日誌檔名 =E:ARCHIVEHYBARC_3_1.ARC 執行緒 =1 序列 =3

存檔日誌檔名 =E:ARCHIVEHYBARC_4_1.ARC 執行緒 =1 序列 =4

完成介質的恢復

完成 recover 於 28-7月 –04

RMAN>

 

RMAN>alter database open resetlogs;

 

資料庫已開啟

 

RMAN>

 

4.       完成資料庫恢復。可以用sql*plus連線到資料庫上

> @conn system/manager@to911newdb

已連線。

system@FXSB01> column  host_name format a30

system@FXSB01> column  instance_name format a30

system@FXSB01> select host_name,instance_name from v$instance;

 

HOST_NAME                      INSTANCE_NAME

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

FXSB01                         hyb

5.       注意事項:

ü         執行以下查詢取得日誌序列:

sql> select sequence# from v$archived_log;

 

 SEQUENCE#

----------

         1

         2

         3

         4

         5

        

已選擇5行。

得到最大的日誌序列5

ü         由於rman版本為9.0.1,restore spfile from autobackup;執行出錯。不知道9.2.0的版本是否可以執行?

6.       小結:按照傳統的恢復方法,需要手工把資料檔案copy到原來的位置,重建控制檔案等一系列手工操作,容易出錯。如果使用rman,這些都不需要了,只需在rman中執行不多的命令就可以實現資料庫恢復。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6906/viewspace-21544/,如需轉載,請註明出處,否則將追究法律責任。

相關文章