Oracle恢復測試
Case 1:資料庫資料檔案損壞與恢復(資料庫無法開啟)
測試場景:
ywzkr中資料檔案hx_data_tbs01資料檔案受損,資料庫啟動過程停留在載入模式中。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 6442450944 bytes
Fixed Size 2065792 bytes
Variable Size 3875539584 bytes
Database Buffers 2550136832 bytes
Redo Buffers 14708736 bytes
資料庫裝載完畢。
ORA-01113: 檔案 6 需要介質恢復
ORA-01110: 資料檔案 6: '/ywzkr_db/ywzkr/hx_data_tbs01.dbf'
輸入操作:
將備份從磁帶恢復資料到磁碟
rman target / catalog rman/rman_ywcw@cwyy
RMAN> list backupset;
RMAN> Restore datafile 6;
RMAN> Recover datafile 6;
SQL> alter database open;
期望結果:
恢復成功。
實際輸出結果:
$ rman target / catalog rman/rman_ywcw@cwyy
恢復管理器: Release 10.2.0.4.0 - Production on 星期四 4月 16 11:10:05 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
已連線到目標資料庫: YWZKR (DBID=734179557, 未開啟)
連線到恢復目錄資料庫
RMAN> list backupset;
……
720 Full 1.08G DISK 00:00:30 2009-04-16 10:31:31
BP 關鍵字: 725 狀態: AVAILABLE 已壓縮: NO 標記: YWZKR_FULL
段名:/ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp
備份集 720 中的資料檔案列表
檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ------------------- ----
1 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/system01.dbf
2 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/undotbs01.dbf
6 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_data_tbs01.dbf
8 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_data_tbs03.dbf
10 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_index_tbs01.dbf
……
RMAN> restore datafile 6;
啟動 restore 於 2009-04-16 11:13:39
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=871 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00006還原到/ywzkr_db/ywzkr/hx_data_tbs01.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:00:36
完成 restore 於 2009-04-16 11:14:16
RMAN> recover datafile 6;
啟動 recover 於 2009-04-16 11:14:26
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:01
完成 recover 於 2009-04-16 11:14:27
RMAN> exit
恢復管理器完成。
$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on 星期四 4月 16 11:14:53 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> alter database open;
資料庫已更改。
結論:恢復成功。
Case 2:資料庫資料檔案損壞與恢復(資料庫處於開啟狀態,使用者訪問資料庫出錯)
測試場景:
ywzkr中資料檔案hx_data_tbs01資料檔案受損丟失,資料庫處於開啟狀態,使用者訪問資料庫出錯。
SQL> select * from BUSINESS.ACCMAINVOUCHERERR;
select * from BUSINESS.ACCMAINVOUCHERERR
*
第 1 行出現錯誤:
ORA-01116: 開啟資料庫檔案 6 時出錯
ORA-01110: 資料檔案 6: '/ywzkr_db/ywzkr/hx_data_tbs01.dbf'
ORA-27041: 無法開啟檔案
HPUX-ia64 Error: 2: No such file or directory
Additional information: 3
輸入操作:
方法一:
將備份從磁帶恢復資料到磁碟
rman target / catalog rman/rman_ywcw@cwyy
RMAN> list backupset;
RMAN> sql "alter database datafile 6 offline";
RMAN> Restore datafile 6;
RMAN> Recover datafile 6;
RMAN> sql "alter database datafile 6 online";
方法二:
將備份從磁帶恢復資料到磁碟
rman target / catalog rman/rman_ywcw@cwyy
RMAN> list backupset;
RMAN> sql "alter tablespace hx_data_tbs offline immediate";
RMAN> Restore datafile 6;
RMAN> Recover tablespace hx_data_tbs;
RMAN> sql "alter tablespace hx_data_tbs online";
期望結果:
恢復成功。
實際輸出結果:
方法一:
$ rman target / catalog rman/rman_ywcw@cwyy
恢復管理器: Release 10.2.0.4.0 - Production on 星期四 4月 16 11:10:05 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
已連線到目標資料庫: YWZKR (DBID=734179557, 未開啟)
連線到恢復目錄資料庫
RMAN> list backupset;
……
720 Full 1.08G DISK 00:00:30 2009-04-16 10:31:31
BP 關鍵字: 725 狀態: AVAILABLE 已壓縮: NO 標記: YWZKR_FULL
段名:/ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp
備份集 720 中的資料檔案列表
檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ------------------- ----
1 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/system01.dbf
2 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/undotbs01.dbf
6 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_data_tbs01.dbf
8 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_data_tbs03.dbf
10 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_index_tbs01.dbf
……
RMAN> sql "alter database datafile 6 offline";
sql 語句: alter database datafile 6 offline
RMAN> restore datafile 6;
啟動 restore 於 2009-04-16 16:12:47
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00006還原到/ywzkr_db/ywzkr/hx_data_tbs01.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:00:35
完成 restore 於 2009-04-16 16:13:23
RMAN> recover datafile 6;
啟動 recover 於 2009-04-16 16:13:29
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:03
完成 recover 於 2009-04-16 16:13:32
正在啟動全部恢復目錄的 resync
完成全部 resync
RMAN> sql "alter database datafile 6 online";
sql 語句: alter database datafile 6 online
結論:恢復成功。
方法二:
$ rman target / catalog rman/rman_ywcw@cwyy
恢復管理器: Release 10.2.0.4.0 - Production on 星期四 4月 16 11:10:05 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
已連線到目標資料庫: YWZKR (DBID=734179557, 未開啟)
連線到恢復目錄資料庫
RMAN> list backupset;
……
720 Full 1.08G DISK 00:00:30 2009-04-16 10:31:31
BP 關鍵字: 725 狀態: AVAILABLE 已壓縮: NO 標記: YWZKR_FULL
段名:/ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp
備份集 720 中的資料檔案列表
檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ------------------- ----
1 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/system01.dbf
2 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/undotbs01.dbf
6 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_data_tbs01.dbf
8 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_data_tbs03.dbf
10 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_index_tbs01.dbf
……
RMAN> sql "alter tablespace hx_data_tbs offline immediate";
sql 語句: alter tablespace hx_data_tbs offline immediate
RMAN> restore datafile 6;
啟動 restore 於 2009-04-16 16:15:23
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00006還原到/ywzkr_db/ywzkr/hx_data_tbs01.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:00:36
完成 restore 於 2009-04-16 16:16:00
RMAN> recover tablespace hx_data_tbs;
啟動 recover 於 2009-04-16 16:16:31
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:00
完成 recover 於 2009-04-16 16:16:32
正在啟動全部恢復目錄的 resync
完成全部 resync
RMAN> sql "alter tablespace hx_data_tbs online";
sql 語句: alter tablespace hx_data_tbs online
結論:恢復成功。
Case 3:資料庫整個資料表空間的損壞與恢復
測試場景:
Ywzkr資料庫中hx_data_tbs表空間中多個或全部資料檔案損壞後丟失,可以逐個按照Case 2中的方法進行恢復,不過為了減少操作的繁雜程度,可以進行整個表空間的恢復。
輸入操作:
將備份從磁帶恢復資料到磁碟
rman target / catalog rman/rman_ywcw@cwyy
RMAN> list backupset;
RMAN> sql "alter tablespace hx_data_tbs offline immediate";
RMAN> Restore tablespace hx_data_tbs;
RMAN> Recover tablespace hx_data_tbs;
RMAN> sql "alter tablespace hx_data_tbs online";
期望結果:
恢復成功。
實際輸出結果:
RMAN> sql "alter tablespace hx_data_tbs offline immediate";
sql 語句: alter tablespace hx_data_tbs offline immediate
RMAN> restore tablespace hx_data_tbs;
啟動 restore 於 2009-04-16 16:28:05
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00007還原到/ywzkr_db/ywzkr/hx_data_tbs02.dbf
正將資料檔案00009還原到/ywzkr_db/ywzkr/hx_data_tbs04.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_51_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_51_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:00:56
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00006還原到/ywzkr_db/ywzkr/hx_data_tbs01.dbf
正將資料檔案00008還原到/ywzkr_db/ywzkr/hx_data_tbs03.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:00:56
完成 restore 於 2009-04-16 16:29:59
RMAN> recover tablespace hx_data_tbs;
啟動 recover 於 2009-04-16 16:30:26
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:01
完成 recover 於 2009-04-16 16:30:27
正在啟動全部恢復目錄的 resync
完成全部 resync
RMAN> sql "alter tablespace hx_data_tbs online";
sql 語句: alter tablespace hx_data_tbs online
結論:恢復成功。
Case 4:全庫損壞與恢復
測試場景:
Ywzkr資料庫災難性損壞,重灌了資料庫軟體,需要取磁帶中的備份進行全庫恢復。
輸入操作:
將備份從磁帶恢復資料到磁碟
sqlplus / as sysdba
SQL> startup nomount
rman target / catalog rman/rman_ywcw@cwyy
RMAN> restore spfile;
SQL> shutdown immediate;
SQL> startup nomount;
rman target / catalog rman/rman_ywcw@cwyy
RMAN> restore controlfile;
RMAN> sql "alter database mount";
SQL> select group#,sequence#,status from v$log;
GROUP# SEQUENCE# STATUS
---------- ---------- ----------------
1 1 CURRENT
2 0 UNUSED
5 0 UNUSED
4 0 UNUSED
3 0 UNUSED
RMAN> restore database until sequence 2;
RMAN> recover database until sequence 2;
RMAN> sql "alter database open resetlogs";
最後再進行一個資料庫的完整備份。
期望結果:
恢復成功。
實際輸出結果:
$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on 星期四 4月 16 17:52:57 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
已連線到空閒例程。
SQL> startup nomount
ORACLE 例程已經啟動。
Total System Global Area 6442450944 bytes
Fixed Size 2065792 bytes
Variable Size 3858762368 bytes
Database Buffers 2566914048 bytes
Redo Buffers 14708736 bytes
$ rman target / catalog rman/rman_ywcw@cwyy
恢復管理器: Release 10.2.0.4.0 - Production on 星期四 4月 16 17:55:21 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連線到目標資料庫: ywzkr (未裝載)
連線到恢復目錄資料庫
RMAN> restore spfile;
啟動 restore 於 2009-04-16 17:55:29
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=871 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 還原 SPFILE
輸出檔名=/ywzkr_ora/product/10.2.0/dbs/spfileywzkr.ora
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_ora/product/10.2.0/dbs/c-734179557-20090416-00
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_ora/product/10.2.0/dbs/c-734179557-20090416-00 標記 = TAG20090416T173909
通道 ORA_DISK_1: 還原完成, 用時: 00:00:01
完成 restore 於 2009-04-16 17:55:30
SQL> shutdown immediate;
ORA-01507: 未裝載資料庫
ORACLE 例程已經關閉。
SQL> startup nomount
ORACLE 例程已經啟動。
Total System Global Area 6442450944 bytes
Fixed Size 2065792 bytes
Variable Size 3875539584 bytes
Database Buffers 2550136832 bytes
Redo Buffers 14708736 bytes
$ rman target / catalog rman/rman_ywcw@cwyy
恢復管理器: Release 10.2.0.4.0 - Production on 星期四 4月 16 17:58:44 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連線到目標資料庫: ywzkr (未裝載)
連線到恢復目錄資料庫
RMAN> restore controlfile;
啟動 restore 於 2009-04-16 17:58:52
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=870 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在還原控制檔案
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_ora/product/10.2.0/dbs/c-734179557-20090416-00
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_ora/product/10.2.0/dbs/c-734179557-20090416-00 標記 = TAG20090416T173909
通道 ORA_DISK_1: 還原完成, 用時: 00:00:01
輸出檔名=/ywzkr_db/ywzkr/control01.ctl
輸出檔名=/ywzkr_db/ywzkr/control02.ctl
輸出檔名=/ywzkr_db/ywzkr/control03.ctl
完成 restore 於 2009-04-16 17:58:54
RMAN> sql "alter database mount";
sql 語句: alter database mount
RMAN> restore database until sequence 2;
啟動 restore 於 2009-04-16 18:01:51
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=874 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00001還原到/ywzkr_db/ywzkr/system01.dbf
正將資料檔案00002還原到/ywzkr_db/ywzkr/undotbs01.dbf
正將資料檔案00006還原到/ywzkr_db/ywzkr/hx_data_tbs01.dbf
正將資料檔案00008還原到/ywzkr_db/ywzkr/hx_data_tbs03.dbf
正將資料檔案00010還原到/ywzkr_db/ywzkr/hx_index_tbs01.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684351508_63_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684351508_63_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:01:35
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00003還原到/ywzkr_db/ywzkr/sysaux01.dbf
正將資料檔案00004還原到/ywzkr_db/ywzkr/users01.dbf
正將資料檔案00005還原到/ywzkr_db/ywzkr/example01.dbf
正將資料檔案00007還原到/ywzkr_db/ywzkr/hx_data_tbs02.dbf
正將資料檔案00009還原到/ywzkr_db/ywzkr/hx_data_tbs04.dbf
正將資料檔案00011還原到/ywzkr_db/ywzkr/hx_index_tbs02.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684351508_64_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684351508_64_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:01:25
完成 restore 於 2009-04-16 18:04:52
SQL> select group#,sequence#,status from v$log;
GROUP# SEQUENCE# STATUS
---------- ---------- ----------------
1 1 CURRENT
2 0 UNUSED
5 0 UNUSED
4 0 UNUSED
3 0 UNUSED
RMAN> recover database until sequence 2;
啟動 recover 於 2009-04-16 18:14:27
使用通道 ORA_DISK_1
正在開始介質的恢復
存檔日誌檔名 =/ywzkr_arch/archive/arch_2bc2b0e5_1_684349818_1.log 執行緒 =1 序列 =1
介質恢復完成, 用時: 00:00:03
完成 recover 於 2009-04-16 18:14:33
RMAN> sql "alter database open resetlogs";
sql 語句: alter database open resetlogs
在恢復目錄中註冊的資料庫的新原型
正在啟動全部恢復目錄的 resync
完成全部 resync
RMAN> exit
恢復管理器完成。
結論:恢復成功。
Case 5:基於時間點的恢復(恢復使用者錯誤等)
測試場景:
Ywzkr資料庫由於使用者的錯誤操作刪除了某個表,需要執行不完全恢復到刪除表之前的時間點。
輸入操作:
將備份從磁帶恢復資料到磁碟(7天內的備份存在於磁碟上,不需要從磁帶上進行恢復)
$sqlplus business/yw090414
SQL> set time on;
SQL> create table test_rec as select * from all_users;
呼叫備份指令碼進行一個全庫備份
$ /ywzkr_arch/dbbackup/rmanbackup/sh/startrman.sh
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> $
SQL> drop table test_rec;
SQL> select count(*) from test_rec;
$ rman target / catalog rman/rman_ywcw@cwyy
RMAN> run {
2> shutdown immediate;
3> startup mount;
4> sql “alter session set nls_date_format=’’yyyy-mm-dd hh24:mi:ss’’”;
5> set until time ‘2009-##-## ##:##:##’;
6> restore database;
7> recover database;
8> alter database open resetlogs;}
進行一個資料庫的完整備份。
SQL> select count(*) from test_rec;
SQL> drop table test_rec;
最後再進行一個資料庫的完整備份,恢復資料庫測試前狀態。
期望結果:
恢復成功。
實際輸出結果:
$ sqlplus business/yw090414
SQL*Plus: Release 10.2.0.4.0 - Production on 星期五 4月 17 10:01:22 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> set time on;
10:01:28 SQL> create table test_rec as select * from all_users;
表已建立。
10:02:05 SQL>
$ ./startrman.sh
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> $
10:02:05 SQL> drop table test_rec;
表已刪除。
10:06:52 SQL>
$ rman target / catalog rman/rman_ywcw@cwyy
恢復管理器: Release 10.2.0.4.0 - Production on 星期五 4月 17 10:09:33 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連線到目標資料庫: YWZKR (DBID=734179557)
連線到恢復目錄資料庫
RMAN> run {
2> shutdown immediate;
3> startup mount;
4> sql "alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''";
5> set until time '2009-04-17 10:06:50';
6> restore database;
7> recover database;
8> alter database open resetlogs;}
資料庫已關閉
資料庫已卸裝
Oracle 例項已關閉
已連線到目標資料庫 (未啟動)
Oracle 例項已啟動
資料庫已裝載
系統全域性區域總計 6442450944 位元組
Fixed Size 2065792 位元組
Variable Size 3875539584 位元組
Database Buffers 2550136832 位元組
Redo Buffers 14708736 位元組
sql 語句: alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''
正在執行命令: SET until clause
啟動 restore 於 2009-04-17 10:14:16
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=872 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00003還原到/ywzkr_db/ywzkr/sysaux01.dbf
正將資料檔案00004還原到/ywzkr_db/ywzkr/users01.dbf
正將資料檔案00005還原到/ywzkr_db/ywzkr/example01.dbf
正將資料檔案00007還原到/ywzkr_db/ywzkr/hx_data_tbs02.dbf
正將資料檔案00009還原到/ywzkr_db/ywzkr/hx_data_tbs04.dbf
正將資料檔案00011還原到/ywzkr_db/ywzkr/hx_index_tbs02.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684410565_86_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684410565_86_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:01:16
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00001還原到/ywzkr_db/ywzkr/system01.dbf
正將資料檔案00002還原到/ywzkr_db/ywzkr/undotbs01.dbf
正將資料檔案00006還原到/ywzkr_db/ywzkr/hx_data_tbs01.dbf
正將資料檔案00008還原到/ywzkr_db/ywzkr/hx_data_tbs03.dbf
正將資料檔案00010還原到/ywzkr_db/ywzkr/hx_index_tbs01.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684410565_85_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684410565_85_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:01:26
完成 restore 於 2009-04-17 10:16:59
啟動 recover 於 2009-04-17 10:17:00
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:03
完成 recover 於 2009-04-17 10:17:03
資料庫已開啟
在恢復目錄中註冊的資料庫的新原型
正在啟動全部恢復目錄的 resync
完成全部 resync
$ sqlplus business/yw090414
SQL*Plus: Release 10.2.0.4.0 - Production on 星期五 4月 17 10:18:17 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select count(*) from test_rec;
COUNT(*)
----------
33
SQL> select group#,sequence#,status from v$log;
GROUP# SEQUENCE# STATUS
---------- ---------- ----------------
1 1 CURRENT
2 0 UNUSED
3 0 UNUSED
4 0 UNUSED
5 0 UNUSED
$ ./startrman.sh
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> $
到此,恢復完成。
刪除測試Table,進行一個全備份恢復到測試前狀態
SQL> drop table test_rec;
$ ./startrman.sh
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> $
結論:恢復成功。
測試場景:
ywzkr中資料檔案hx_data_tbs01資料檔案受損,資料庫啟動過程停留在載入模式中。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 6442450944 bytes
Fixed Size 2065792 bytes
Variable Size 3875539584 bytes
Database Buffers 2550136832 bytes
Redo Buffers 14708736 bytes
資料庫裝載完畢。
ORA-01113: 檔案 6 需要介質恢復
ORA-01110: 資料檔案 6: '/ywzkr_db/ywzkr/hx_data_tbs01.dbf'
輸入操作:
將備份從磁帶恢復資料到磁碟
rman target / catalog rman/rman_ywcw@cwyy
RMAN> list backupset;
RMAN> Restore datafile 6;
RMAN> Recover datafile 6;
SQL> alter database open;
期望結果:
恢復成功。
實際輸出結果:
$ rman target / catalog rman/rman_ywcw@cwyy
恢復管理器: Release 10.2.0.4.0 - Production on 星期四 4月 16 11:10:05 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
已連線到目標資料庫: YWZKR (DBID=734179557, 未開啟)
連線到恢復目錄資料庫
RMAN> list backupset;
……
720 Full 1.08G DISK 00:00:30 2009-04-16 10:31:31
BP 關鍵字: 725 狀態: AVAILABLE 已壓縮: NO 標記: YWZKR_FULL
段名:/ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp
備份集 720 中的資料檔案列表
檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ------------------- ----
1 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/system01.dbf
2 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/undotbs01.dbf
6 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_data_tbs01.dbf
8 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_data_tbs03.dbf
10 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_index_tbs01.dbf
……
RMAN> restore datafile 6;
啟動 restore 於 2009-04-16 11:13:39
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=871 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00006還原到/ywzkr_db/ywzkr/hx_data_tbs01.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:00:36
完成 restore 於 2009-04-16 11:14:16
RMAN> recover datafile 6;
啟動 recover 於 2009-04-16 11:14:26
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:01
完成 recover 於 2009-04-16 11:14:27
RMAN> exit
恢復管理器完成。
$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on 星期四 4月 16 11:14:53 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> alter database open;
資料庫已更改。
結論:恢復成功。
Case 2:資料庫資料檔案損壞與恢復(資料庫處於開啟狀態,使用者訪問資料庫出錯)
測試場景:
ywzkr中資料檔案hx_data_tbs01資料檔案受損丟失,資料庫處於開啟狀態,使用者訪問資料庫出錯。
SQL> select * from BUSINESS.ACCMAINVOUCHERERR;
select * from BUSINESS.ACCMAINVOUCHERERR
*
第 1 行出現錯誤:
ORA-01116: 開啟資料庫檔案 6 時出錯
ORA-01110: 資料檔案 6: '/ywzkr_db/ywzkr/hx_data_tbs01.dbf'
ORA-27041: 無法開啟檔案
HPUX-ia64 Error: 2: No such file or directory
Additional information: 3
輸入操作:
方法一:
將備份從磁帶恢復資料到磁碟
rman target / catalog rman/rman_ywcw@cwyy
RMAN> list backupset;
RMAN> sql "alter database datafile 6 offline";
RMAN> Restore datafile 6;
RMAN> Recover datafile 6;
RMAN> sql "alter database datafile 6 online";
方法二:
將備份從磁帶恢復資料到磁碟
rman target / catalog rman/rman_ywcw@cwyy
RMAN> list backupset;
RMAN> sql "alter tablespace hx_data_tbs offline immediate";
RMAN> Restore datafile 6;
RMAN> Recover tablespace hx_data_tbs;
RMAN> sql "alter tablespace hx_data_tbs online";
期望結果:
恢復成功。
實際輸出結果:
方法一:
$ rman target / catalog rman/rman_ywcw@cwyy
恢復管理器: Release 10.2.0.4.0 - Production on 星期四 4月 16 11:10:05 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
已連線到目標資料庫: YWZKR (DBID=734179557, 未開啟)
連線到恢復目錄資料庫
RMAN> list backupset;
……
720 Full 1.08G DISK 00:00:30 2009-04-16 10:31:31
BP 關鍵字: 725 狀態: AVAILABLE 已壓縮: NO 標記: YWZKR_FULL
段名:/ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp
備份集 720 中的資料檔案列表
檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ------------------- ----
1 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/system01.dbf
2 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/undotbs01.dbf
6 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_data_tbs01.dbf
8 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_data_tbs03.dbf
10 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_index_tbs01.dbf
……
RMAN> sql "alter database datafile 6 offline";
sql 語句: alter database datafile 6 offline
RMAN> restore datafile 6;
啟動 restore 於 2009-04-16 16:12:47
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00006還原到/ywzkr_db/ywzkr/hx_data_tbs01.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:00:35
完成 restore 於 2009-04-16 16:13:23
RMAN> recover datafile 6;
啟動 recover 於 2009-04-16 16:13:29
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:03
完成 recover 於 2009-04-16 16:13:32
正在啟動全部恢復目錄的 resync
完成全部 resync
RMAN> sql "alter database datafile 6 online";
sql 語句: alter database datafile 6 online
結論:恢復成功。
方法二:
$ rman target / catalog rman/rman_ywcw@cwyy
恢復管理器: Release 10.2.0.4.0 - Production on 星期四 4月 16 11:10:05 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
已連線到目標資料庫: YWZKR (DBID=734179557, 未開啟)
連線到恢復目錄資料庫
RMAN> list backupset;
……
720 Full 1.08G DISK 00:00:30 2009-04-16 10:31:31
BP 關鍵字: 725 狀態: AVAILABLE 已壓縮: NO 標記: YWZKR_FULL
段名:/ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp
備份集 720 中的資料檔案列表
檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ------------------- ----
1 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/system01.dbf
2 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/undotbs01.dbf
6 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_data_tbs01.dbf
8 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_data_tbs03.dbf
10 Full 17813259 2009-04-16 10:31:01 /ywzkr_db/ywzkr/hx_index_tbs01.dbf
……
RMAN> sql "alter tablespace hx_data_tbs offline immediate";
sql 語句: alter tablespace hx_data_tbs offline immediate
RMAN> restore datafile 6;
啟動 restore 於 2009-04-16 16:15:23
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00006還原到/ywzkr_db/ywzkr/hx_data_tbs01.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:00:36
完成 restore 於 2009-04-16 16:16:00
RMAN> recover tablespace hx_data_tbs;
啟動 recover 於 2009-04-16 16:16:31
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:00
完成 recover 於 2009-04-16 16:16:32
正在啟動全部恢復目錄的 resync
完成全部 resync
RMAN> sql "alter tablespace hx_data_tbs online";
sql 語句: alter tablespace hx_data_tbs online
結論:恢復成功。
Case 3:資料庫整個資料表空間的損壞與恢復
測試場景:
Ywzkr資料庫中hx_data_tbs表空間中多個或全部資料檔案損壞後丟失,可以逐個按照Case 2中的方法進行恢復,不過為了減少操作的繁雜程度,可以進行整個表空間的恢復。
輸入操作:
將備份從磁帶恢復資料到磁碟
rman target / catalog rman/rman_ywcw@cwyy
RMAN> list backupset;
RMAN> sql "alter tablespace hx_data_tbs offline immediate";
RMAN> Restore tablespace hx_data_tbs;
RMAN> Recover tablespace hx_data_tbs;
RMAN> sql "alter tablespace hx_data_tbs online";
期望結果:
恢復成功。
實際輸出結果:
RMAN> sql "alter tablespace hx_data_tbs offline immediate";
sql 語句: alter tablespace hx_data_tbs offline immediate
RMAN> restore tablespace hx_data_tbs;
啟動 restore 於 2009-04-16 16:28:05
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00007還原到/ywzkr_db/ywzkr/hx_data_tbs02.dbf
正將資料檔案00009還原到/ywzkr_db/ywzkr/hx_data_tbs04.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_51_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_51_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:00:56
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00006還原到/ywzkr_db/ywzkr/hx_data_tbs01.dbf
正將資料檔案00008還原到/ywzkr_db/ywzkr/hx_data_tbs03.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684325861_50_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:00:56
完成 restore 於 2009-04-16 16:29:59
RMAN> recover tablespace hx_data_tbs;
啟動 recover 於 2009-04-16 16:30:26
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:01
完成 recover 於 2009-04-16 16:30:27
正在啟動全部恢復目錄的 resync
完成全部 resync
RMAN> sql "alter tablespace hx_data_tbs online";
sql 語句: alter tablespace hx_data_tbs online
結論:恢復成功。
Case 4:全庫損壞與恢復
測試場景:
Ywzkr資料庫災難性損壞,重灌了資料庫軟體,需要取磁帶中的備份進行全庫恢復。
輸入操作:
將備份從磁帶恢復資料到磁碟
sqlplus / as sysdba
SQL> startup nomount
rman target / catalog rman/rman_ywcw@cwyy
RMAN> restore spfile;
SQL> shutdown immediate;
SQL> startup nomount;
rman target / catalog rman/rman_ywcw@cwyy
RMAN> restore controlfile;
RMAN> sql "alter database mount";
SQL> select group#,sequence#,status from v$log;
GROUP# SEQUENCE# STATUS
---------- ---------- ----------------
1 1 CURRENT
2 0 UNUSED
5 0 UNUSED
4 0 UNUSED
3 0 UNUSED
RMAN> restore database until sequence 2;
RMAN> recover database until sequence 2;
RMAN> sql "alter database open resetlogs";
最後再進行一個資料庫的完整備份。
期望結果:
恢復成功。
實際輸出結果:
$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on 星期四 4月 16 17:52:57 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
已連線到空閒例程。
SQL> startup nomount
ORACLE 例程已經啟動。
Total System Global Area 6442450944 bytes
Fixed Size 2065792 bytes
Variable Size 3858762368 bytes
Database Buffers 2566914048 bytes
Redo Buffers 14708736 bytes
$ rman target / catalog rman/rman_ywcw@cwyy
恢復管理器: Release 10.2.0.4.0 - Production on 星期四 4月 16 17:55:21 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連線到目標資料庫: ywzkr (未裝載)
連線到恢復目錄資料庫
RMAN> restore spfile;
啟動 restore 於 2009-04-16 17:55:29
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=871 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 還原 SPFILE
輸出檔名=/ywzkr_ora/product/10.2.0/dbs/spfileywzkr.ora
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_ora/product/10.2.0/dbs/c-734179557-20090416-00
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_ora/product/10.2.0/dbs/c-734179557-20090416-00 標記 = TAG20090416T173909
通道 ORA_DISK_1: 還原完成, 用時: 00:00:01
完成 restore 於 2009-04-16 17:55:30
SQL> shutdown immediate;
ORA-01507: 未裝載資料庫
ORACLE 例程已經關閉。
SQL> startup nomount
ORACLE 例程已經啟動。
Total System Global Area 6442450944 bytes
Fixed Size 2065792 bytes
Variable Size 3875539584 bytes
Database Buffers 2550136832 bytes
Redo Buffers 14708736 bytes
$ rman target / catalog rman/rman_ywcw@cwyy
恢復管理器: Release 10.2.0.4.0 - Production on 星期四 4月 16 17:58:44 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連線到目標資料庫: ywzkr (未裝載)
連線到恢復目錄資料庫
RMAN> restore controlfile;
啟動 restore 於 2009-04-16 17:58:52
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=870 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在還原控制檔案
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_ora/product/10.2.0/dbs/c-734179557-20090416-00
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_ora/product/10.2.0/dbs/c-734179557-20090416-00 標記 = TAG20090416T173909
通道 ORA_DISK_1: 還原完成, 用時: 00:00:01
輸出檔名=/ywzkr_db/ywzkr/control01.ctl
輸出檔名=/ywzkr_db/ywzkr/control02.ctl
輸出檔名=/ywzkr_db/ywzkr/control03.ctl
完成 restore 於 2009-04-16 17:58:54
RMAN> sql "alter database mount";
sql 語句: alter database mount
RMAN> restore database until sequence 2;
啟動 restore 於 2009-04-16 18:01:51
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=874 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00001還原到/ywzkr_db/ywzkr/system01.dbf
正將資料檔案00002還原到/ywzkr_db/ywzkr/undotbs01.dbf
正將資料檔案00006還原到/ywzkr_db/ywzkr/hx_data_tbs01.dbf
正將資料檔案00008還原到/ywzkr_db/ywzkr/hx_data_tbs03.dbf
正將資料檔案00010還原到/ywzkr_db/ywzkr/hx_index_tbs01.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684351508_63_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684351508_63_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:01:35
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00003還原到/ywzkr_db/ywzkr/sysaux01.dbf
正將資料檔案00004還原到/ywzkr_db/ywzkr/users01.dbf
正將資料檔案00005還原到/ywzkr_db/ywzkr/example01.dbf
正將資料檔案00007還原到/ywzkr_db/ywzkr/hx_data_tbs02.dbf
正將資料檔案00009還原到/ywzkr_db/ywzkr/hx_data_tbs04.dbf
正將資料檔案00011還原到/ywzkr_db/ywzkr/hx_index_tbs02.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684351508_64_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684351508_64_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:01:25
完成 restore 於 2009-04-16 18:04:52
SQL> select group#,sequence#,status from v$log;
GROUP# SEQUENCE# STATUS
---------- ---------- ----------------
1 1 CURRENT
2 0 UNUSED
5 0 UNUSED
4 0 UNUSED
3 0 UNUSED
RMAN> recover database until sequence 2;
啟動 recover 於 2009-04-16 18:14:27
使用通道 ORA_DISK_1
正在開始介質的恢復
存檔日誌檔名 =/ywzkr_arch/archive/arch_2bc2b0e5_1_684349818_1.log 執行緒 =1 序列 =1
介質恢復完成, 用時: 00:00:03
完成 recover 於 2009-04-16 18:14:33
RMAN> sql "alter database open resetlogs";
sql 語句: alter database open resetlogs
在恢復目錄中註冊的資料庫的新原型
正在啟動全部恢復目錄的 resync
完成全部 resync
RMAN> exit
恢復管理器完成。
結論:恢復成功。
Case 5:基於時間點的恢復(恢復使用者錯誤等)
測試場景:
Ywzkr資料庫由於使用者的錯誤操作刪除了某個表,需要執行不完全恢復到刪除表之前的時間點。
輸入操作:
將備份從磁帶恢復資料到磁碟(7天內的備份存在於磁碟上,不需要從磁帶上進行恢復)
$sqlplus business/yw090414
SQL> set time on;
SQL> create table test_rec as select * from all_users;
呼叫備份指令碼進行一個全庫備份
$ /ywzkr_arch/dbbackup/rmanbackup/sh/startrman.sh
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> $
SQL> drop table test_rec;
SQL> select count(*) from test_rec;
$ rman target / catalog rman/rman_ywcw@cwyy
RMAN> run {
2> shutdown immediate;
3> startup mount;
4> sql “alter session set nls_date_format=’’yyyy-mm-dd hh24:mi:ss’’”;
5> set until time ‘2009-##-## ##:##:##’;
6> restore database;
7> recover database;
8> alter database open resetlogs;}
進行一個資料庫的完整備份。
SQL> select count(*) from test_rec;
SQL> drop table test_rec;
最後再進行一個資料庫的完整備份,恢復資料庫測試前狀態。
期望結果:
恢復成功。
實際輸出結果:
$ sqlplus business/yw090414
SQL*Plus: Release 10.2.0.4.0 - Production on 星期五 4月 17 10:01:22 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> set time on;
10:01:28 SQL> create table test_rec as select * from all_users;
表已建立。
10:02:05 SQL>
$ ./startrman.sh
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> $
10:02:05 SQL> drop table test_rec;
表已刪除。
10:06:52 SQL>
$ rman target / catalog rman/rman_ywcw@cwyy
恢復管理器: Release 10.2.0.4.0 - Production on 星期五 4月 17 10:09:33 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連線到目標資料庫: YWZKR (DBID=734179557)
連線到恢復目錄資料庫
RMAN> run {
2> shutdown immediate;
3> startup mount;
4> sql "alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''";
5> set until time '2009-04-17 10:06:50';
6> restore database;
7> recover database;
8> alter database open resetlogs;}
資料庫已關閉
資料庫已卸裝
Oracle 例項已關閉
已連線到目標資料庫 (未啟動)
Oracle 例項已啟動
資料庫已裝載
系統全域性區域總計 6442450944 位元組
Fixed Size 2065792 位元組
Variable Size 3875539584 位元組
Database Buffers 2550136832 位元組
Redo Buffers 14708736 位元組
sql 語句: alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''
正在執行命令: SET until clause
啟動 restore 於 2009-04-17 10:14:16
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=872 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00003還原到/ywzkr_db/ywzkr/sysaux01.dbf
正將資料檔案00004還原到/ywzkr_db/ywzkr/users01.dbf
正將資料檔案00005還原到/ywzkr_db/ywzkr/example01.dbf
正將資料檔案00007還原到/ywzkr_db/ywzkr/hx_data_tbs02.dbf
正將資料檔案00009還原到/ywzkr_db/ywzkr/hx_data_tbs04.dbf
正將資料檔案00011還原到/ywzkr_db/ywzkr/hx_index_tbs02.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684410565_86_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684410565_86_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:01:16
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
正將資料檔案00001還原到/ywzkr_db/ywzkr/system01.dbf
正將資料檔案00002還原到/ywzkr_db/ywzkr/undotbs01.dbf
正將資料檔案00006還原到/ywzkr_db/ywzkr/hx_data_tbs01.dbf
正將資料檔案00008還原到/ywzkr_db/ywzkr/hx_data_tbs03.dbf
正將資料檔案00010還原到/ywzkr_db/ywzkr/hx_index_tbs01.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684410565_85_1.bkp
通道 ORA_DISK_1: 已還原備份片段 1
段控制程式碼 = /ywzkr_arch/dbbackup/rmanbackup/backupset/full_YWZKR_684410565_85_1.bkp 標記 = YWZKR_FULL
通道 ORA_DISK_1: 還原完成, 用時: 00:01:26
完成 restore 於 2009-04-17 10:16:59
啟動 recover 於 2009-04-17 10:17:00
使用通道 ORA_DISK_1
正在開始介質的恢復
介質恢復完成, 用時: 00:00:03
完成 recover 於 2009-04-17 10:17:03
資料庫已開啟
在恢復目錄中註冊的資料庫的新原型
正在啟動全部恢復目錄的 resync
完成全部 resync
$ sqlplus business/yw090414
SQL*Plus: Release 10.2.0.4.0 - Production on 星期五 4月 17 10:18:17 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select count(*) from test_rec;
COUNT(*)
----------
33
SQL> select group#,sequence#,status from v$log;
GROUP# SEQUENCE# STATUS
---------- ---------- ----------------
1 1 CURRENT
2 0 UNUSED
3 0 UNUSED
4 0 UNUSED
5 0 UNUSED
$ ./startrman.sh
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> $
到此,恢復完成。
刪除測試Table,進行一個全備份恢復到測試前狀態
SQL> drop table test_rec;
$ ./startrman.sh
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> $
結論:恢復成功。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-733417/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle RMAN恢復測試Oracle
- oracle備份與恢復測試(五)Oracle
- SQLSERVER恢復測試SQLServer
- Oracle常規恢復的實驗測試Oracle
- oracle誤drop/update資料恢復測試Oracle資料恢復
- rman 恢復機制與恢復測試
- Oracle DG從庫 Rman備份恢復測試Oracle
- oracle刪除使用者後的恢復測試Oracle
- 控制檔案恢復測試
- mysql備份恢復測試MySql
- Oracle資料恢復顧問(DRA)使用測試 (之二)Oracle資料恢復
- Oracle資料恢復顧問(DRA)使用測試 (之一)Oracle資料恢復
- 【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(三)
- 【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(二)
- 【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(一)
- PDM測試資料庫恢復資料庫
- rman備份恢復-rman恢復資料檔案測試
- rman恢復控制檔案測試--log
- DB2備份恢復測試DB2
- 【Mysql】xtrabackup 備份和恢復測試MySql
- RMAN備份恢復測試指令碼指令碼
- 【MYSQL備庫恢復速度測試 半同步速度測試】MySql
- Oracle資料庫的熱備份與完整恢復測試 (2)Oracle資料庫
- Oracle資料庫的熱備份與完整恢復測試 (1)Oracle資料庫
- 使用RMAN實現災難恢復測試
- abmr:塊恢復特性測試自己主動
- mysql備份和恢復測試(一)--xtrabackupMySql
- oracle 學習總結篇四:不完全恢復測試用例Oracle
- 一次恢復oracle的嘗試(轉)Oracle
- 測試恢復5==使用2進位制形式檔案恢復控制檔案
- 【PG備份恢復】pg_dump命令測試
- 生產系統恢復到異機測試
- 定時做資料庫恢復測試sqlserver資料庫SQLServer
- 【恩墨學院】Oracle DG測試failover和後續恢復報告OracleAI
- 【管理篇備份恢復】rman恢復測試(一) 表空間資料檔案
- 測試恢復3==當資料庫處於開啟狀態時的恢復資料庫
- NBU恢復oracleOracle
- mysql效能測試庫的一次CRASH恢復MySql