使用備份的控制檔案恢復資料庫
-- 備份控制檔案,備份系統表空間會自動備份控制檔案
RMAN> backup tablespace system;
Starting backup at 29-SEP-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=38 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/system01.dbf
channel ORA_DISK_1: starting piece 1 at 29-SEP-13
channel ORA_DISK_1: finished piece 1 at 29-SEP-13
piece handle=/u01/app/oracle/flash_recovery_area/WAILON/backupset/2013_09_29/o1_mf_nnndf_TAG20130929T164720_94ht8s6l_.bkp tag=TAG20130929T164720 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:26
Finished backup at 29-SEP-13
Starting Control File and SPFILE Autobackup at 29-SEP-13
piece handle=/u01/app/oracle/flash_recovery_area/WAILON/autobackup/2013_09_29/o1_mf_s_827426866_94ht9mkz_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 29-SEP-13
-- 模擬資料產生並切換日誌
16:48:37 SCOTT@wailon> create table a tablespace wailon as select * from tab;
Table created.
16:48:56 SCOTT@wailon> select * from a;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
A TABLE
BONUS TABLE
CHECKPOINT TABLE
CHECKPOINT_LOX TABLE
DEPT TABLE
EMP TABLE
GGS_DDL_COLUMNS TABLE
GGS_DDL_HIST TABLE
GGS_DDL_HIST_ALT TABLE
GGS_DDL_LOG_GROUPS TABLE
GGS_DDL_OBJECTS TABLE
GGS_DDL_PARTITIONS TABLE
GGS_DDL_PRIMARY_KEYS TABLE
GGS_DDL_RULES TABLE
GGS_DDL_RULES_LOG TABLE
GGS_MARKER TABLE
GGS_SETUP TABLE
GGS_STICK TABLE
GGS_TEMP_COLS TABLE
GGS_TEMP_UK TABLE
OB TABLE
SALGRADE TABLE
SYS_EXPORT_SCHEMA_01 TABLE
23 rows selected.
16:49:01 SCOTT@wailon> alter system switch logfile;
System altered.
16:49:08 SCOTT@wailon> create table b tablespace wailon as select * from a;
Table created.
16:49:32 SCOTT@wailon> alter system switch logfile;
System altered.
16:50:08 SCOTT@wailon> alter system checkpoint;
System altered.
-- 確認當前日誌序號
16:50:20 SCOTT@wailon> select group#,sequence#,status from v$log;
GROUP# SEQUENCE# STATUS
---------- --------------- ----------------
1 244 INACTIVE
3 246 CURRENT
2 245 INACTIVE
16:50:30 SYS@wailon> select group#,member from v$logfile;
GROUP# MEMBER
---------- --------------------------------------------------
2 /u01/app/oracle/oradata/wailon/redo02.log
1 /u01/app/oracle/oradata/wailon/redo01.log
3 /u01/app/oracle/oradata/wailon/redo03.log
16:50:52 SCOTT@wailon> col name for a50
16:51:02 SCOTT@wailon> select * from v$controlfile;
STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- -------------------------------------------------- --- ---------- --------------
/u01/app/oracle/oradata/wailon/control01.ctl NO 16384 596
/u01/app/oracle/oradata/wailon/control02.ctl NO 16384 596
-- 模擬系統意外斷電,並且控制檔案丟失
16:51:17 SYS@wailon> shutdown abort;
ORACLE instance shut down.
16:51:31 SYS@wailon> host rm /u01/app/oracle/oradata/wailon/control*.ctl
16:51:38 SYS@wailon> host ls -ls /u01/app/oracle/oradata/wailon/control*
ls: cannot access /u01/app/oracle/oradata/wailon/control*: No such file or directory
-- 嘗試啟動資料庫,找不到控制檔案報錯
16:51:49 SYS@wailon> startup
ORACLE instance started.
Total System Global Area 417546240 bytes
Fixed Size 2228944 bytes
Variable Size 343936304 bytes
Database Buffers 62914560 bytes
Redo Buffers 8466432 bytes
ORA-00205: error in identifying control file, check alert log for more info
[oracle@dg ~(16:54:08)]$ cd /u01/app/oracle/diag/rdbms/wailon/wailon/trace/
[oracle@dg trace(16:54:40)]$ tail -20 alert_wailon.log
Sun Sep 29 16:51:59 2013
MMNL started with pid=16, OS id=17782
starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
starting up 1 shared server(s) ...
ORACLE_BASE from environment = /u01/app/oracle
Sun Sep 29 16:51:59 2013
ALTER DATABASE MOUNT
ORA-00210: ???????????
ORA-00202: ????: ''/u01/app/oracle/oradata/wailon/control02.ctl''
ORA-27037: ????????
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00210: ???????????
ORA-00202: ????: ''/u01/app/oracle/oradata/wailon/control01.ctl''
ORA-27037: ????????
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-205 signalled during: ALTER DATABASE MOUNT...
Sun Sep 29 16:52:00 2013
Checker run found 2 new persistent data failures
-- 恢復之前備份的控制檔案
[oracle@dg trace(16:54:49)]$ rman target /
Recovery Manager: Release 11.2.0.3.0 - Production on Sun Sep 29 16:55:07 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: WAILON (not mounted)
RMAN> restore controlfile from '/u01/app/oracle/flash_recovery_area/WAILON/autobackup/2013_09_29/o1_mf_s_827426866_94ht9mkz_.bkp';
Starting restore at 29-SEP-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=10 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/u01/app/oracle/oradata/wailon/control01.ctl
output file name=/u01/app/oracle/oradata/wailon/control02.ctl
Finished restore at 29-SEP-13
-- 檢視系統啟動狀態及日誌序號,日誌序號已變成舊的
16:56:10 SYS@wailon> select status from v$instance;
STATUS
------------------------
STARTED
16:56:20 SYS@wailon> alter database mount;
Database altered.
16:56:29 SYS@wailon> select group#,sequence#,status from v$log;
GROUP# SEQUENCE# STATUS
---------- --------------- --------------------------------
1 244 CURRENT
3 243 INACTIVE
2 242 INACTIVE
-- 嘗試恢復資料庫,提示需要使用BACKUP CONTROLFILE
-- 兩種情況需要使用BACKUP CONTROLFILE恢復資料
-- 1. 使用備份的控制檔案
-- 2. 使用resetlogs重建控制檔案
16:57:47 SYS@wailon> recover database;
ORA-00283: 恢復會話因錯誤而取消 ORA-01610:
使用 BACKUP CONTROLFILE 選項的恢復必須已完成
-- 提示輸入歸檔日誌時,直接按Enter鍵會自動查詢相應的歸檔日誌;如果找不到,就從聯機日誌檔案裡面找
16:59:13 SYS@wailon> recover database using backup controlfile;
ORA-00279: change 3001398 generated at 09/29/2013 16:49:08 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/flash_recovery_area/WAILON/archivelog/2013_09_29/o1_mf_1_245_94htf3fq_.arc
ORA-00280: change 3001398 for thread 1 is in sequence #245
16:59:18 Specify log: {
-- 找到一個歸檔日誌並應用成功,找另外一個歸檔日誌時沒有找到,需要從聯機日誌中找
ORA-00279: change 3001442 generated at 09/29/2013 16:49:39 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/flash_recovery_area/WAILON/archivelog/2013_09_29/o1_mf_1_246_%u_.arc
ORA-00280: change 3001442 for thread 1 is in sequence #246
ORA-00278: log file '/u01/app/oracle/flash_recovery_area/WAILON/archivelog/2013_09_29/o1_mf_1_245_94htf3fq_.arc' no
longer needed for this recovery
16:59:22 Specify log: {
ORA-00308: 無法開啟歸檔日誌 '/u01/app/oracle/flash_recovery_area/WAILON/archivelog/2013_09_29/o1_mf_1_246_%u_.arc'
ORA-27037: 無法獲得檔案狀態
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
16:59:57 SYS@wailon> recover database using backup controlfile;
ORA-00279: change 3001442 generated at 09/29/2013 16:49:39 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/flash_recovery_area/WAILON/archivelog/2013_09_29/o1_mf_1_246_%u_.arc
ORA-00280: change 3001442 for thread 1 is in sequence #246
-- 輸入正確的聯機日誌後,恢復成功
17:00:03 Specify log: {
Log applied.
Media recovery complete.
-- 雖然是完全恢復,沒有資料丟失,但由於使用了BACKUP CONTROLFILE必須使用OPEN RESETLOGS開啟資料庫
17:00:05 SYS@wailon> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
-- 使用OPEN RESETLOGS開啟資料庫的情況
-- 1. 使用備份的控制檔案
-- 2. 不完全恢復(介質恢復)
17:00:21 SYS@wailon> alter database open resetlogs;
Database altered.
-- 使用OPEN RESETLOGS後,聯機日誌序號重新從1開始編號
17:00:50 SYS@wailon> select group#,sequence#,status from v$log;
GROUP# SEQUENCE# STATUS
---------- --------------- ------------------------------------------------
1 1 CURRENT
3 0 UNUSED
2 0 UNUSED
-- 驗證資料恢復
17:01:50 SYS@wailon> col tname for a30
17:01:58 SYS@wailon> select * from scott.a;
TNAME TABTYPE CLUSTERID
------------------------------ --------------------- ----------
A TABLE
BONUS TABLE
CHECKPOINT TABLE
CHECKPOINT_LOX TABLE
DEPT TABLE
EMP TABLE
GGS_DDL_COLUMNS TABLE
GGS_DDL_HIST TABLE
GGS_DDL_HIST_ALT TABLE
GGS_DDL_LOG_GROUPS TABLE
GGS_DDL_OBJECTS TABLE
GGS_DDL_PARTITIONS TABLE
GGS_DDL_PRIMARY_KEYS TABLE
GGS_DDL_RULES TABLE
GGS_DDL_RULES_LOG TABLE
GGS_MARKER TABLE
GGS_SETUP TABLE
GGS_STICK TABLE
GGS_TEMP_COLS TABLE
GGS_TEMP_UK TABLE
OB TABLE
SALGRADE TABLE
SYS_EXPORT_SCHEMA_01 TABLE
23 rows selected.
17:01:59 SYS@wailon> select * from scott.b;
TNAME TABTYPE CLUSTERID
------------------------------ --------------------- ----------
A TABLE
BONUS TABLE
CHECKPOINT TABLE
CHECKPOINT_LOX TABLE
DEPT TABLE
EMP TABLE
GGS_DDL_COLUMNS TABLE
GGS_DDL_HIST TABLE
GGS_DDL_HIST_ALT TABLE
GGS_DDL_LOG_GROUPS TABLE
GGS_DDL_OBJECTS TABLE
GGS_DDL_PARTITIONS TABLE
GGS_DDL_PRIMARY_KEYS TABLE
GGS_DDL_RULES TABLE
GGS_DDL_RULES_LOG TABLE
GGS_MARKER TABLE
GGS_SETUP TABLE
GGS_STICK TABLE
GGS_TEMP_COLS TABLE
GGS_TEMP_UK TABLE
OB TABLE
SALGRADE TABLE
SYS_EXPORT_SCHEMA_01 TABLE
23 rows selected.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/429786/viewspace-777152/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- rman恢復資料庫--用備份的控制檔案資料庫
- Oracle資料庫控制檔案在備份恢復中的作用Oracle資料庫
- 備份與恢復--利用備份的控制檔案恢復
- 使用舊的控制檔案備份來恢復控制檔案
- 【備份恢復】利用 備份控制檔案到指定目錄下的控制檔案 恢復控制檔案
- 備份與恢復--重建控制檔案後資料檔案損壞的恢復
- rman備份-(1) 利用備份級恢復資料檔案和控制檔案
- 利用備份的控制檔案恢復
- 控制檔案的備份和恢復
- 【恢復】使用控制檔案的trace備份恢復因異常斷電導致所有控制檔案損壞的資料庫故障資料庫
- 備份與恢復系列 十一 控制檔案的備份與恢復
- RMAN備份恢復之控制檔案的恢復(三)
- RMAN備份恢復之控制檔案的恢復(二)
- RMAN備份恢復之控制檔案的恢復(一)
- 【備份恢復】從備份恢復資料庫資料庫
- Oracle備份與恢復系列(四)複製資料庫 使用原有的控制檔案Oracle資料庫
- 備份與恢復--重新控制檔案資料字典和控制檔案不一致的恢復
- 【備份恢復】 控制檔案多路徑
- 備份與恢復--重建控制檔案
- 【備份恢復】所有控制檔案丟失後 利用trace中的控制檔案備份執行恢復
- 【備份恢復】noarchive模式下使用增量備份恢復資料庫Hive模式資料庫
- 【備份與恢復】控制檔案的恢復(不完全恢復)
- 使用備份的控制檔案(db物理結構已經變化)來恢復資料庫!資料庫
- 【備份恢復】無備份線上恢復非關鍵資料檔案
- Oracle備份與恢復【丟失控制檔案的恢復】Oracle
- 無備份丟失部分資料檔案和控制檔案恢復 [轉]
- 使用RMAN備份集和過時的控制檔案進行資料庫的恢復(2/2)資料庫
- 使用RMAN備份集和過時的控制檔案進行資料庫的恢復(1/2)資料庫
- 資料庫備份與恢復(使用歸檔後滾)資料庫
- RMAN資料庫恢復 之歸檔模式有(無)備份-丟失資料檔案的恢復資料庫模式
- Oracle備份與恢復【丟失資料檔案的恢復】Oracle
- rman備份丟失控制檔案恢復
- 使用NORESETLOGS重建控制檔案恢復資料庫資料庫
- 使用RESETLOGS重建控制檔案恢復資料庫資料庫
- 【備份與恢復】恢復受損的複用控制檔案
- rman備份恢復-rman恢復資料檔案測試
- 歸檔模式有備份丟失控制檔案和資料檔案後恢復模式
- 不完全恢復(資料檔案備份--新建表空間--控制檔案備份--日誌歸檔檔案)