rman備份丟失控制檔案恢復

sky850623發表於2015-11-01
1.備份控制檔案
RMAN> backup database format 'f:\backup_dir\%U';


啟動 backup 於 25-10月-15
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=142 devtype=DISK
通道 ORA_DISK_1: 啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00004 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
輸入資料檔案 fno=00001 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
輸入資料檔案 fno=00018 name=F:\ORADATA\CLOUD_CMS01.DBF
輸入資料檔案 fno=00003 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
輸入資料檔案 fno=00002 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
輸入資料檔案 fno=00017 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\PERFSTAT01.DBF
輸入資料檔案 fno=00006 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TBS_TEST01.DBF
輸入資料檔案 fno=00012 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TBS_TEST02.DBF
輸入資料檔案 fno=00014 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EAMCS01.DBF
輸入資料檔案 fno=00013 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TESTING.DBF
輸入資料檔案 fno=00007 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST_UNIFORM01.DBF
輸入資料檔案 fno=00008 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF
通道 ORA_DISK_1: 正在啟動段 1 於 25-10月-15
通道 ORA_DISK_1: 已完成段 1 於 25-10月-15
段控制程式碼=F:\BACKUP_DIR\33QKK6V9_1_1 標記=TAG20151025T190057 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:01:45
通道 ORA_DISK_1: 啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
備份集中包括當前控制檔案
在備份集中包含當前的 SPFILE
通道 ORA_DISK_1: 正在啟動段 1 於 25-10月-15
通道 ORA_DISK_1: 已完成段 1 於 25-10月-15
段控制程式碼=F:\BACKUP_DIR\34QKK72J_1_1 標記=TAG20151025T190057 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:02
完成 backup 於 25-10月-15


RMAN>


SQL> select * from v$log;  --檢視當前日誌檔案


    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------
         1          1       3556    5242880          1 YES INACTIVE               5669691 25-10月-15
         2          1       3555    5242880          1 YES INACTIVE               5661163 15-10月-99
         3          1       3557    5242880          1 NO  CURRENT                5670416 25-10月-15
2.建立測試表
SQL> create table t (id  int,name varchar(2)) tablespace users;


表已建立。


SQL> insert into t values(1,'a');


已建立 1 行。


SQL> commit;


提交完成。


SQL> alter system switch logfile;


系統已更改。


SQL> insert into t values(2,'b');


已建立 1 行。


SQL> commit;


提交完成。


SQL> alter system switch logfile;


系統已更改。


SQL> insert into t values(3,'b');


已建立 1 行。


SQL> commit;


提交完成。


SQL> alter system switch logfile;


系統已更改。


SQL> insert into t values(4,'d');


已建立 1 行。


SQL> commit;


提交完成。


SQL> alter system switch logfile;


系統已更改。


SQL> insert into t values(5,'e');


已建立 1 行。


SQL> commit;


提交完成。


SQL> alter system switch logfile;


系統已更改。


SQL> insert into t values(6,'f');


已建立 1 行。


SQL> commit;


提交完成。


SQL> alter system switch logfile;


系統已更改。


SQL> insert into t values(7,'g');


已建立 1 行。


SQL> commit;


提交完成。


SQL> alter system switch logfile;


系統已更改。


SQL> insert into t values(8,'h');


已建立 1 行。


SQL> commit;


提交完成。


SQL> select * from v$logfile;


    GROUP# STATUS  TYPE    MEMBER                                                       IS_
---------- ------- ------- ------------------------------------------------------------ ---
         1         ONLINE  E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG             NO
         2         ONLINE  E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG             NO
         3         ONLINE  E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG             NO


SQL> select * from v$log;


    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
         1          1       3562    5242880          1 YES ACTIVE                 5671463 25-10月-15
         2          1       3564    5242880          1 NO  CURRENT                5671480 25-10月-15
         3          1       3563    5242880          1 YES ACTIVE                 5671473 25-10月-15
3.備份歸檔
RMAN> backup archivelog all;


啟動 backup 於 25-10月-15
當前日誌已存檔
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在啟動存檔日誌備份集
通道 ORA_DISK_1: 正在指定備份集中的存檔日誌
輸入存檔日誌執行緒 =1 序列 =809 記錄 ID=1064 時間戳=879783737
輸入存檔日誌執行緒 =1 序列 =810 記錄 ID=1065 時間戳=879783745
輸入存檔日誌執行緒 =1 序列 =811 記錄 ID=1066 時間戳=879783770
輸入存檔日誌執行緒 =1 序列 =812 記錄 ID=1067 時間戳=879783894
輸入存檔日誌執行緒 =1 序列 =3244 記錄 ID=1068 時間戳=887482381
輸入存檔日誌執行緒 =1 序列 =3556 記錄 ID=1069 時間戳=894049103
輸入存檔日誌執行緒 =1 序列 =3557 記錄 ID=1070 時間戳=894049726
輸入存檔日誌執行緒 =1 序列 =3558 記錄 ID=1071 時間戳=894049741
輸入存檔日誌執行緒 =1 序列 =3559 記錄 ID=1072 時間戳=894049765
輸入存檔日誌執行緒 =1 序列 =3560 記錄 ID=1073 時間戳=894049784
輸入存檔日誌執行緒 =1 序列 =3561 記錄 ID=1074 時間戳=894049796
輸入存檔日誌執行緒 =1 序列 =3562 記錄 ID=1075 時間戳=894049810
輸入存檔日誌執行緒 =1 序列 =3563 記錄 ID=1076 時間戳=894049828
輸入存檔日誌執行緒 =1 序列 =3564 記錄 ID=1077 時間戳=894050311
通道 ORA_DISK_1: 正在啟動段 1 於 25-10月-15
通道 ORA_DISK_1: 已完成段 1 於 25-10月-15
段控制程式碼=E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2015_10_25\O1
_MF_ANNNN_TAG20151025T191831_C2SGN94W_.BKP 標記=TAG20151025T191831 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:05
完成 backup 於 25-10月-15


4.刪除控制檔案
5.啟動資料庫
SQL> startup
ORACLE 例程已經啟動。


Total System Global Area  167772160 bytes
Fixed Size                  1247900 bytes
Variable Size              79693156 bytes
Database Buffers           83886080 bytes
Redo Buffers                2945024 bytes
ORA-00205: ?????????, ??????, ???????


檢視日誌檔案
ALTER DATABASE   MOUNT
Sun Oct 25 19:24:30 2015
ORA-00202: control file: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL'
ORA-27041: unable to open file
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。


Sun Oct 25 19:24:33 2015
ORA-205 signalled during: ALTER DATABASE   MOUNT...


找不到控制檔案,資料庫只能起在nomount狀態
SQL> select status from v$instance;


STATUS
------------------------
STARTED


6.恢復
C:\>rman target /


恢復管理器: Release 10.2.0.1.0 - Production on 星期日 10月 25 19:29:57 2015


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


連線到目標資料庫: orcl (未裝載)


RMAN> restore controlfile from autobackup;  --之前沒有開啟自動備份,所以找不到控制檔案自動備份


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


恢復區域目標: E:\oracle\product\10.2.0\flash_recovery_area
用於搜尋的資料庫名 (或資料庫的唯一名稱): TEST
通道 ORA_DISK_1: 在恢復區域中未找到自動備份
由於未設定 DBID 而未嘗試在恢復區域之外搜尋自動備份


之前有備份了一個控制檔案,只能指定備份控制檔案具體位置來恢復.
RMAN> restore controlfile from 'F:\backup_dir\34QKK72J_1_1';  --不是自動備份恢復不需要設定dbid


啟動 restore 於 25-10月-15
使用通道 ORA_DISK_1


通道 ORA_DISK_1: 正在復原控制檔案
通道 ORA_DISK_1: 恢復完成, 用時: 00:00:03
輸出檔名=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL
輸出檔名=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL
輸出檔名=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL
完成 restore 於 25-10月-15


控制元件檔案還原到引數檔案指定的位置


7.啟動資料庫到mount
SQL> alter database mount;


資料庫已更改。
C:\>rman target /


恢復管理器: Release 10.2.0.1.0 - Production on 星期日 10月 25 19:40:40 2015


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


已連線到目標資料庫: ORCL (DBID=1380721776, 未開啟)
RMAN> list backup;   


歸檔檔案沒有包含在這之中,因為歸檔是在備份控制檔案之後備份。


8.recover
RMAN> recover database;


啟動 recover 於 25-10月-15
啟動 implicit crosscheck backup 於 25-10月-15
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=158 devtype=DISK
已交叉檢驗的 2 物件
完成 implicit crosscheck backup 於 25-10月-15


啟動 implicit crosscheck copy 於 25-10月-15
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 於 25-10月-15


搜尋恢復區域中的所有檔案
正在編制檔案目錄...
目錄編制完畢


已列入目錄的檔案的列表
=======================
檔名: E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2015_10_25\O
1_MF_ANNNN_TAG20151025T191831_C2SGN94W_.BKP


使用通道 ORA_DISK_1


正在開始介質的恢復


存檔日誌執行緒 1 序列 3563 已作為檔案 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03
.LOG 存在於磁碟上
存檔日誌執行緒 1 序列 3564 已作為檔案 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02
.LOG 存在於磁碟上
存檔日誌執行緒 1 序列 3565 已作為檔案 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01
.LOG 存在於磁碟上
通道 ORA_DISK_1: 正在啟動到預設目標的存檔日誌恢復
通道 ORA_DISK_1: 正在恢復存檔日誌
存檔日誌執行緒 =1 序列=3557
通道 ORA_DISK_1: 正在恢復存檔日誌
存檔日誌執行緒 =1 序列=3558
通道 ORA_DISK_1: 正在恢復存檔日誌
存檔日誌執行緒 =1 序列=3559
通道 ORA_DISK_1: 正在恢復存檔日誌
存檔日誌執行緒 =1 序列=3560
通道 ORA_DISK_1: 正在恢復存檔日誌
存檔日誌執行緒 =1 序列=3561
通道 ORA_DISK_1: 正在恢復存檔日誌
存檔日誌執行緒 =1 序列=3562
通道 ORA_DISK_1: 正在讀取備份段 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TES
T\BACKUPSET\2015_10_25\O1_MF_ANNNN_TAG20151025T191831_C2SGN94W_.BKP
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2015_10_25\
O1_MF_ANNNN_TAG20151025T191831_C2SGN94W_.BKP 標記 = TAG20151025T191831
通道 ORA_DISK_1: 恢復完成, 用時: 00:00:02
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3557_C2SJ4C3F_.ARC 執行緒 =1 序列 =3557
通道 default: 正在刪除存檔日誌
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3557_C2SJ4C3F_.ARC 記錄 ID=1074 時間戳 =894051851
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3558_C2SJ4CC7_.ARC 執行緒 =1 序列 =3558
通道 default: 正在刪除存檔日誌
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3558_C2SJ4CC7_.ARC 記錄 ID=1078 時間戳 =894051851
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3559_C2SJ4C5V_.ARC 執行緒 =1 序列 =3559
通道 default: 正在刪除存檔日誌
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3559_C2SJ4C5V_.ARC 記錄 ID=1075 時間戳 =894051851
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3560_C2SJ4C7B_.ARC 執行緒 =1 序列 =3560
通道 default: 正在刪除存檔日誌
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3560_C2SJ4C7B_.ARC 記錄 ID=1076 時間戳 =894051851
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3561_C2SJ4CB8_.ARC 執行緒 =1 序列 =3561
通道 default: 正在刪除存檔日誌
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3561_C2SJ4CB8_.ARC 記錄 ID=1077 時間戳 =894051851
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3562_C2SJ4C4W_.ARC 執行緒 =1 序列 =3562
通道 default: 正在刪除存檔日誌
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3562_C2SJ4C4W_.ARC 記錄 ID=1073 時間戳 =894051851
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG 執行緒 =1 序列 =3
563
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG 執行緒 =1 序列 =3
564
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG 執行緒 =1 序列 =3
565
介質恢復完成, 用時: 00:00:01
完成 recover 於 25-10月-15
9.開啟資料庫
RMAN> alter database open resetlogs;


資料庫已開啟


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

相關文章