循序漸進oracle第7章:備份與恢復之RMAN映象拷貝完全恢復

mengzhaoliang發表於2008-06-06

/* 2008/06/06
*環境:Windows XP +Oracle10.2.0.1
*循序漸進oracle——資料庫管理、優化與備份恢復
*循序漸進oracle第7章:備份與恢復之RMAN映象拷貝完全恢復
*/
7 RMAN的備份與恢復
1、RMAN映象拷貝功能
RMAN> run{
2> allocate channel ch1 type disk;
3> copy
4> datafile 1 to 'e:\backup\system01.dbf',
5> current controlfile to 'e:\backup\control01.ctl';
6> }

釋放的通道: ORA_DISK_1
分配的通道: ch1
通道 ch1: sid=135 devtype=DISK

啟動 backup 於 06-6月 -08
通道 ch1: 啟動資料檔案副本
輸入資料檔案 fno=00001 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DB
F
輸出檔名 = E:\BACKUP\SYSTEM01.DBF 標記 = TAG20080606T072703 recid = 25 時間戳
= 656666869
通道 ch1: 資料檔案複製完畢, 經過時間: 00:00:55
通道 ch1: 啟動資料檔案副本
複製當前控制檔案
輸出檔名 = E:\BACKUP\CONTROL01.CTL 標記 = TAG20080606T072703 recid = 26 時間戳
 = 656666880
通道 ch1: 資料檔案複製完畢, 經過時間: 00:00:01
完成 backup 於 06-6月 -08

啟動 Control File and SPFILE Autobackup 於 06-6月 -08
段 handle=G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\AUTOBACKUP\2008_0
6_06\O1_MF_S_656666880_44JXN1D6_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 於 06-6月 -08
釋放的通道: ch1

 

2、Oracle10g開始,允許使用單條命令"backup as copy"進行資料庫拷貝
RMAN> run{
2> backup as copy tag "20080605_copy" database;
3> }

啟動 backup 於 06-6月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=135 devtype=DISK
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案 fno=00001 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DB
F
輸出檔名 = G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\DATAFILE\O1_MF
_SYSTEM_44JXWG2G_.DBF 標記 = 20080605_COPY recid = 27 時間戳 = 656667195
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:56
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案 fno=00003 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01.DB
F
輸出檔名 = G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\DATAFILE\O1_MF
_SYSAUX_44JXY57B_.DBF 標記 = 20080605_COPY recid = 28 時間戳 = 656667224
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:25
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案 fno=00002 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01.D
BF
輸出檔名 = G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\DATAFILE\O1_MF
_UNDOTBS1_44JXYYF5_.DBF 標記 = 20080605_COPY recid = 29 時間戳 = 656667233
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:07
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案 fno=00005 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF
輸出檔名 = G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\DATAFILE\O1_MF
_RISE_44JXZ5L2_.DBF 標記 = 20080605_COPY recid = 30 時間戳 = 656667238
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:03
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案 fno=00004 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.DBF

輸出檔名 = G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\DATAFILE\O1_MF
_USERS_44JXZ8TV_.DBF 標記 = 20080605_COPY recid = 31 時間戳 = 656667241
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:01
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案 fno=00006 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\MZL.DBF
輸出檔名 = G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\DATAFILE\O1_MF
_MZL_44JXZB0Z_.DBF 標記 = 20080605_COPY recid = 32 時間戳 = 656667242
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:02
完成 backup 於 06-6月 -08

啟動 Control File and SPFILE Autobackup 於 06-6月 -08
段 handle=G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\AUTOBACKUP\2008_0
6_06\O1_MF_S_656667243_44JXZD0H_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 於 06-6月 -08

RMAN>

 

3、檢視拷貝的檔案
RMAN> list copy;

說明與恢復目錄中的任何存檔日誌均不匹配

資料檔案副本列表
關鍵字     檔案 S 完成時間   Ckp SCN    Ckp 時間   名稱
------- ---- - ---------- ---------- ---------- ----
27      1    A 06-6月 -08 944359     06-6月 -08 G:\ORACLE\PRODUCT\10.2.0\FLASH_R
ECOVERY_AREA\RISENET\DATAFILE\O1_MF_SYSTEM_44JXWG2G_.DBF
25      1    A 06-6月 -08 944125     06-6月 -08 E:\BACKUP\SYSTEM01.DBF
29      2    A 06-6月 -08 944397     06-6月 -08 G:\ORACLE\PRODUCT\10.2.0\FLASH_R
ECOVERY_AREA\RISENET\DATAFILE\O1_MF_UNDOTBS1_44JXYYF5_.DBF
28      3    A 06-6月 -08 944387     06-6月 -08 G:\ORACLE\PRODUCT\10.2.0\FLASH_R
ECOVERY_AREA\RISENET\DATAFILE\O1_MF_SYSAUX_44JXY57B_.DBF
31      4    A 06-6月 -08 944409     06-6月 -08 G:\ORACLE\PRODUCT\10.2.0\FLASH_R
ECOVERY_AREA\RISENET\DATAFILE\O1_MF_USERS_44JXZ8TV_.DBF
30      5    A 06-6月 -08 944401     06-6月 -08 G:\ORACLE\PRODUCT\10.2.0\FLASH_R
ECOVERY_AREA\RISENET\DATAFILE\O1_MF_RISE_44JXZ5L2_.DBF
32      6    A 06-6月 -08 944410     06-6月 -08 G:\ORACLE\PRODUCT\10.2.0\FLASH_R
ECOVERY_AREA\RISENET\DATAFILE\O1_MF_MZL_44JXZB0Z_.DBF

控制檔案副本列表
關鍵字     S 完成時間   Ckp SCN    Ckp 時間   名稱
------- - ---------- ---------- ---------- ----
26      A 06-6月 -08 944151     06-6月 -08 E:\BACKUP\CONTROL01.CTL

RMAN>

 

4、RMAN基於映象copy的表空間恢復
關閉資料庫,模擬硬體故障,刪除資料檔案rise.dbf檔案
SQL> shutdown immediate

刪除$oracle_home\oradata\risenet\rise.dbf檔案
SQL> startup
ORACLE 例程已經啟動。

Total System Global Area  272629760 bytes
Fixed Size                  1248476 bytes
Variable Size             100664100 bytes
Database Buffers          163577856 bytes
Redo Buffers                7139328 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 5 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 5: 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF'

SQL> select * from v$recover_file;

     FILE# ONLINE  ONLINE_ ERROR              CHANGE# TIME
---------- ------- ------- --------------- ---------- --------------
         5 ONLINE  ONLINE  FILE NOT FOUND           0


C:\>rman target/

恢復管理器: Release 10.2.0.1.0 - Production on 星期五 6月 6 07:44:11 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

已連線到目標資料庫: RISENET (DBID=2274326636, 未開啟)

RMAN> run{
2> set newname for datafile 5 to 'G:\oracle\product\10.2.0\oradata\risenet\rise.
dbf';
3> restore datafile 5;
4> switch datafile all;
5> recover datafile 5;
6> }

正在執行命令: SET NEWNAME
使用目標資料庫控制檔案替代恢復目錄

啟動 restore 於 06-6月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK

通道 ORA_DISK_1: 正在恢復資料檔案00005
輸入資料檔案副本 recid=30 stamp=656667238 檔名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_RISE_44JXZ5L2_.DBF
資料檔案 00005 的恢復目標: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF
通道 ORA_DISK_1: 已複製資料檔案 00005 的資料檔案副本
輸出檔名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF recid=33 stamp=6566
67952
完成 restore 於 06-6月 -08


啟動 recover 於 06-6月 -08
使用通道 ORA_DISK_1

正在開始介質的恢復
介質恢復完成, 用時: 00:00:02

完成 recover 於 06-6月 -08

RMAN>

RMAN> alter database open;

資料庫已開啟

 

 

5、如果資料檔案全部丟失,用rman進行完全恢復
1  插入資料
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

會話已更改。

SQL> select * from test;

        ID TIME
---------- -------------------
         3 2017-01-27 14:44:54
         1 2008-05-28 15:33:31

SQL> insert into test values(5,sysdate);

已建立 1 行。

SQL> select * from test;

        ID TIME
---------- -------------------
         5 2008-06-06 08:00:34
         3 2017-01-27 14:44:54
         1 2008-05-28 15:33:31

SQL> commit;

提交完成。

2   關閉,刪除全部資料檔案,然後重起
SQL> startup
ORACLE 例程已經啟動。

Total System Global Area  272629760 bytes
Fixed Size                  1248476 bytes
Variable Size             104858404 bytes
Database Buffers          159383552 bytes
Redo Buffers                7139328 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 1 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 1: 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DBF'


SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
risenet          MOUNTED


SQL> select * from v$recover_file;

     FILE# ONLINE  ONLINE_ ERROR              CHANGE# TIME
---------- ------- ------- --------------- ---------- --------------
         1 ONLINE  ONLINE  FILE NOT FOUND           0
         2 ONLINE  ONLINE  FILE NOT FOUND           0
         3 ONLINE  ONLINE  FILE NOT FOUND           0
         5 ONLINE  ONLINE  FILE NOT FOUND           0
         6 ONLINE  ONLINE  FILE NOT FOUND           0


3 恢復資料檔案
C:\>rman target/

恢復管理器: Release 10.2.0.1.0 - Production on 星期五 6月 6 08:05:31 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

已連線到目標資料庫: RISENET (DBID=2274326636, 未開啟)

RMAN> restore database;

啟動 restore 於 06-6月 -08
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK

通道 ORA_DISK_1: 正在恢復資料檔案00001
輸入資料檔案副本 recid=27 stamp=656667195 檔名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_SYSTEM_44JXWG2G_.DBF
資料檔案 00001 的恢復目標: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DBF

通道 ORA_DISK_1: 已複製資料檔案 00001 的資料檔案副本
輸出檔名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DBF recid=34 stamp=
656669190
通道 ORA_DISK_1: 正在恢復資料檔案00002
輸入資料檔案副本 recid=29 stamp=656667233 檔名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_UNDOTBS1_44JXYYF5_.DBF
資料檔案 00002 的恢復目標: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01.DB
F
通道 ORA_DISK_1: 已複製資料檔案 00002 的資料檔案副本
輸出檔名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01.DBF recid=35 stamp
=656669203
通道 ORA_DISK_1: 正在恢復資料檔案00003
輸入資料檔案副本 recid=28 stamp=656667224 檔名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_SYSAUX_44JXY57B_.DBF
資料檔案 00003 的恢復目標: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01.DBF

通道 ORA_DISK_1: 已複製資料檔案 00003 的資料檔案副本
輸出檔名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01.DBF recid=36 stamp=
656669222
通道 ORA_DISK_1: 正在恢復資料檔案00004
輸入資料檔案副本 recid=31 stamp=656667241 檔名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_USERS_44JXZ8TV_.DBF
資料檔案 00004 的恢復目標: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.DBF
通道 ORA_DISK_1: 已複製資料檔案 00004 的資料檔案副本
輸出檔名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.DBF recid=37 stamp=6
56669228
通道 ORA_DISK_1: 正在恢復資料檔案00005
輸入資料檔案副本 recid=30 stamp=656667238 檔名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_RISE_44JXZ5L2_.DBF
資料檔案 00005 的恢復目標: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF
通道 ORA_DISK_1: 已複製資料檔案 00005 的資料檔案副本
輸出檔名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF recid=38 stamp=6566
69230
通道 ORA_DISK_1: 正在恢復資料檔案00006
輸入資料檔案副本 recid=32 stamp=656667242 檔名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_MZL_44JXZB0Z_.DBF
資料檔案 00006 的恢復目標: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\MZL.DBF
通道 ORA_DISK_1: 已複製資料檔案 00006 的資料檔案副本
輸出檔名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\MZL.DBF recid=39 stamp=65666
9230
完成 restore 於 06-6月 -08

RMAN> recover database;

啟動 recover 於 06-6月 -08
使用通道 ORA_DISK_1

正在開始介質的恢復
介質恢復完成, 用時: 00:00:02

完成 recover 於 06-6月 -08

RMAN> alter database open;

資料庫已開啟

SQL> select * from test;

        ID TIME
---------- -------------------
         5 2008-06-06 08:00:34
         3 2017-01-27 14:44:54
         1 2008-05-28 15:33:31

 


 

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

相關文章