目標:丟失所以控制文件,數據庫文件,redo文件。只有rman全備的和所有歸檔的恢復
1. 創建測試表
2. rman全備
3. 模擬丟失所以控制文件,數據庫文件,redo文件
4. 開始恢復
測試步驟
1. 創建測試表
C:/Documents and Settings/Administrator>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.4.0 - Production on 星期二 11月 2 11:36:44 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
連接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> create table skate tablespace users as select * from dba_objects;
表已創建。
SQL> select count(1) from skate;
COUNT(1)
----------
50031
SQL>
2. rman全備
C:/Documents and Settings/Administrator>rman target /
恢復管理器: Release 10.2.0.4.0 - Production on 星期二 11月 2 11:39:00 2010
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連接到目標數據庫: AIBO (DBID=831121923)
RMAN> backup database;
啓動 backup 於 02-11月-10
使用目標數據庫控制文件替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK
通道 ORA_DISK_1: 啓動全部數據文件備份集
通道 ORA_DISK_1: 正在指定備份集中的數據文件
輸入數據文件 fno=00001 name=E:/ORACLE/PRODUCT/10.2.0/ORADATA/AIBO/SYSTEM01.DBF
輸入數據文件 fno=00003 name=E:/ORACLE/PRODUCT/10.2.0/ORADATA/AIBO/SYSAUX01.DBF
輸入數據文件 fno=00002 name=E:/ORACLE/PRODUCT/10.2.0/ORADATA/AIBO/UNDOTBS01.DBF
輸入數據文件 fno=00004 name=E:/ORACLE/PRODUCT/10.2.0/ORADATA/AIBO/USERS01.DBF
通道 ORA_DISK_1: 正在啓動段 1 於 02-11月-10
通道 ORA_DISK_1: 已完成段 1 於 02-11月-10
段句柄=E:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/AIBO/BACKUPSET/2010_11_02/O1
_MF_NNNDF_TAG20101102T113914_6DZ1Z38S_.BKP 標記=TAG20101102T113914 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:01:05
通道 ORA_DISK_1: 啓動全部數據文件備份集
通道 ORA_DISK_1: 正在指定備份集中的數據文件
備份集中包括當前控制文件
在備份集中包含當前的 SPFILE
通道 ORA_DISK_1: 正在啓動段 1 於 02-11月-10
通道 ORA_DISK_1: 已完成段 1 於 02-11月-10
段句柄=E:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/AIBO/BACKUPSET/2010_11_02/O1
_MF_NCSNF_TAG20101102T113914_6DZ2153F_.BKP 標記=TAG20101102T113914 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:03
完成 backup 於 02-11月-10
RMAN>
rman全備已經ok,現在模擬所有的數據文件和redo丟失
3. 模擬丟失所以控制文件,數據庫文件,redo文件
關閉數據庫:
SQL> shutdown immediate;
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
未丟失前:
E:/oracle/product/10.2.0/oradata/aibo 的目錄
2010-11-02 10:54 <DIR> .
2010-11-02 10:54 <DIR> ..
2010-11-02 11:38 7,061,504 CONTROL01.CTL
2010-11-02 11:38 7,061,504 CONTROL02.CTL
2010-11-02 11:38 7,061,504 CONTROL03.CTL
2010-11-02 11:36 52,429,312 REDO01.LOG
2010-11-02 11:36 52,429,312 REDO02.LOG
2010-11-02 11:36 52,429,312 REDO03.LOG
2010-11-02 11:36 262,152,192 SYSAUX01.DBF
2010-11-02 11:36 503,324,672 SYSTEM01.DBF
2010-11-02 10:54 20,979,712 TEMP01.DBF
2010-11-02 11:36 26,222,592 UNDOTBS01.DBF
2010-11-02 11:38 7,872,512 USERS01.DBF
11 個文件 999,024,128 字節
2 個目錄 42,864,582,656 可用字節
E:/oracle/product/10.2.0/oradata/aibo>
我更改了文件名稱“E:/oracle/product/10.2.0/oradata/aibo” 改爲“E:/oracle/product/10.2.0/oradata/aibo3”
當前場景分析:
模擬所有的數據文件和redo丟失,只有rman的全備份的所有歸檔
4. 開始恢復
開始恢復:
SQL> startup nomount
ORACLE 例程已經啓動。
Total System Global Area 574619648 bytes
Fixed Size 1297944 bytes
Variable Size 159384040 bytes
Database Buffers 406847488 bytes
Redo Buffers 7090176 bytes
SQL>
C:/Documents and Settings/Administrator>rman target /
恢復管理器: Release 10.2.0.4.0 - Production on 星期二 11月 2 11:48:53 2010
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連接到目標數據庫: aibo (未裝載)
從指定備份集中恢復控制文件
RMAN> restore controlfile from 'E:/oracle/product/10.2.0/flash_recovery_area/AIB
O/BACKUPSET/2010_11_02/O1_MF_NNNDF_TAG20101102T113914_6DZ1Z38S_.BKP';
啓動 restore 於 02-11月-10
使用目標數據庫控制文件替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 正在還原控制文件
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 11/02/2010 11:50:15 上) 失敗
ORA-19697: 在備份集中找不到備用控制文件
說明控制文件沒在這個備份集中
RMAN> restore controlfile from 'E:/oracle/product/10.2.0/flash_recovery_area/AIB
O/BACKUPSET/2010_11_02/O1_MF_NCSNF_TAG20101102T113914_6DZ2153F_.BKP';
啓動 restore 於 02-11月-10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在還原控制文件
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 11/02/2010 11:50:39 上) 失敗
ORA-19870: 讀取備份段 E:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/AIBO/BACKUPSE
T/2010_11_02/O1_MF_NCSNF_TAG20101102T113914_6DZ2153F_.BKP 時出錯
ORA-19504: 無法創建文件"E:/ORACLE/PRODUCT/10.2.0/ORADATA/AIBO/CONTROL01.CTL"
ORA-27040: 文件創建錯誤, 無法創建文件
OSD-04002: 無法打開文件
O/S-Error: (OS 3) 系統找不到指定的路徑。
這個是因爲沒有創建文件夾的權限,我創建文件夾“E:/oracle/product/10.2.0/oradata/aibo”,問題就解決
RMAN> restore controlfile from 'E:/oracle/product/10.2.0/flash_recovery_area/AIB
O/BACKUPSET/2010_11_02/O1_MF_NCSNF_TAG20101102T113914_6DZ2153F_.BKP';
啓動 restore 於 02-11月-10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在還原控制文件
通道 ORA_DISK_1: 還原完成, 用時: 00:00:02
輸出文件名=E:/ORACLE/PRODUCT/10.2.0/ORADATA/AIBO/CONTROL01.CTL
輸出文件名=E:/ORACLE/PRODUCT/10.2.0/ORADATA/AIBO/CONTROL02.CTL
輸出文件名=E:/ORACLE/PRODUCT/10.2.0/ORADATA/AIBO/CONTROL03.CTL
完成 restore 於 02-11月-10
RMAN>
RMAN> alter database mount;
數據庫已裝載
釋放的通道: ORA_DISK_1
RMAN> restore database;
啓動 restore 於 02-11月-10
啓動 implicit crosscheck backup 於 02-11月-10
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
已交叉檢驗的 3 對象
完成 implicit crosscheck backup 於 02-11月-10
啓動 implicit crosscheck copy 於 02-11月-10
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 於 02-11月-10
搜索恢復區中的所有文件
正在編制文件目錄...
目錄編制完畢
已列入目錄的文件的列表
=======================
文件名: E:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/AIBO/BACKUPSET/2010_11_02/O
1_MF_NCSNF_TAG20101102T113914_6DZ2153F_.BKP
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始恢復數據文件備份集
通道 ORA_DISK_1: 正在指定從備份集還原的數據文件
正將數據文件00001還原到E:/ORACLE/PRODUCT/10.2.0/ORADATA/AIBO/SYSTEM01.DBF
正將數據文件00002還原到E:/ORACLE/PRODUCT/10.2.0/ORADATA/AIBO/UNDOTBS01.DBF
正將數據文件00003還原到E:/ORACLE/PRODUCT/10.2.0/ORADATA/AIBO/SYSAUX01.DBF
正將數據文件00004還原到E:/ORACLE/PRODUCT/10.2.0/ORADATA/AIBO/USERS01.DBF
通道 ORA_DISK_1: 正在讀取備份片段 E:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/A
IBO/BACKUPSET/2010_11_02/O1_MF_NNNDF_TAG20101102T113914_6DZ1Z38S_.BKP
通道 ORA_DISK_1: 已還原備份片段 1
段句柄 = E:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/AIBO/BACKUPSET/2010_11_02/
O1_MF_NNNDF_TAG20101102T113914_6DZ1Z38S_.BKP 標記 = TAG20101102T113914
通道 ORA_DISK_1: 還原完成, 用時: 00:01:05
完成 restore 於 02-11月-10
RMAN> recover database;
啓動 recover 於 02-11月-10
使用通道 ORA_DISK_1
正在開始介質的恢復
無法找到存檔日誌
存檔日誌線程 =1 序列=1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 11/02/2010 12:01:33 上) 失敗
RMAN-06054: 介質恢復正請求未知的日誌: 線程 1 seq 1 lowscn 582659
RMAN> recover database until scn 582659;
啓動 recover 於 02-11月-10
使用通道 ORA_DISK_1
正在開始介質的恢復
無法找到存檔日誌
存檔日誌線程 =1 序列=1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 11/02/2010 12:01:33 上) 失敗
RMAN-06054: 介質恢復正請求未知的日誌: 線程 1 seq 1 lowscn 582659
RMAN> alter database open resetlogs;
數據庫已打開
RMAN>
到此數據庫已經open,驗證數據是否丟失!!!
C:/Documents and Settings/Administrator>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.4.0 - Production on 星期二 11月 2 12:04:30 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
連接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select count(1) from skate;
COUNT(1)
----------
50031
SQL>
數據存在,到此恢復過程已經成功結束!!!
------end---