Oracle手工不完全恢復(二):使用備份控制檔案
相關連線:
Oracle手工完全恢復案例
Oracle手工不完全恢復(一):使用當前控制檔案
示例一:冷備份所有資料檔案--->新建表空間--->備份控制檔案(日誌檔案完好)
實驗環境:
當前的控制檔案損壞,新建立的表空間損壞,冷備的資料檔案中沒有該資料檔案的備份,但是控制檔案和聯機日誌中有相關的記錄;由於控制檔案損壞,只能使用備份的控制檔案來做恢復。
-
--檢視資料庫中已有的表空間
-
SYS@seiang11g>select * from v$tablespace;
-
-
TS# NAME INC BIG FLA ENC
-
---------- -------------------------------------------------- --- --- --- ---
-
0 SYSTEM YES NO YES
-
1 SYSAUX YES NO YES
-
2 UNDOTBS1 YES NO YES
-
4 USERS YES NO YES
-
3 TEMP NO NO YES
-
6 EXAMPLE YES NO YES
-
7 RMAN_CATALOG YES NO YES
-
8 SEIANG YES NO YES
-
9 WJQ YES NO YES
-
10 WJQBEST YES NO YES
-
-
--檢視當前日誌的序列號為3
-
SYS@seiang11g>select group#,sequence#,status from v$log;
-
-
GROUP# SEQUENCE# STATUS
-
---------- ---------- ----------------
-
1 1 INACTIVE
-
2 2 INACTIVE
-
3 3 CURRENT
-
-
-
--新建立一個表空間test
-
SYS@seiang11g>create tablespace test datafile '/u01/app/oracle/oradata/OraDB11g/test01.dbf' size 5M;
-
Tablespace created.
-
-
-
--表空間建立完成之後,備份控制檔案
-
SYS@seiang11g>alter database backup controlfile to '/u01/app/oracle/oradata/OraDB11g/control.bak';
-
Database altered.
-
-
--檢視資料庫中控制檔案的多元化路徑
-
SYS@seiang11g>show parameter control
-
-
NAME TYPE VALUE
-
------------------------------------ ----------- ------------------------------
-
control_file_record_keep_time integer 14
-
control_files string /u01/app/oracle/oradata/OraDB1
-
1g/control01.ctl, /u01/app/ora
-
cle/fast_recovery_area/OraDB11
-
g/control02.ctl
-
control_management_pack_access string DIAGNOSTIC+TUNING
-
-
-
--4在seiang使用者下建立一張表test4,隸屬於test表空間
-
SYS@seiang11g>create table seiang.test4(ID number,name varchar2(30)) tablespace test;
-
Table created.
-
-
-
--在test4表中插入兩條資料,並提交
-
SYS@seiang11g>insert into seiang.test4 values(1001,'wjq');
-
1 row created.
-
-
SYS@seiang11g>insert into seiang.test4 values(1002,'seiang');
-
1 row created.
-
-
SYS@seiang11g>commit;
-
Commit complete.
-
-
--執行日誌切換,剛插入的表中的記錄資訊已歸檔
-
SYS@seiang11g>alter system switch logfile;
-
System altered.
-
-
--檢視當前的日誌序列號為4
-
SYS@seiang11g>select group#,sequence#,status from v$log;
-
-
GROUP# SEQUENCE# STATUS
-
---------- ---------- ----------------
-
1 4 CURRENT
-
2 2 INACTIVE
-
3 3 ACTIVE
-
-
--再在test4表中插入兩條資料,但後兩條插入的資料記錄在當前日誌檔案1中
-
SYS@seiang11g>insert into seiang.test4 values(1003,'wjqgood');
-
1 row created.
-
-
SYS@seiang11g>insert into seiang.test4 values(1004,'wjqbest');
-
1 row created.
-
-
SYS@seiang11g>commit;
-
Commit complete.
-
-
--檢視test4表中資料的內容
-
SYS@seiang11g>select * from seiang.test4;
-
-
ID NAME
-
---------- --------------------------------------------------
-
1001 wjq
-
1002 seiang
-
1003 wjqgood
-
1004 wjqbest
-
-
-
--模擬test表空間中資料檔案損壞或丟失,以及控制檔案損壞
-
SYS@seiang11g>host rm /u01/app/oracle/oradata/OraDB11g/test01.dbf
-
SYS@seiang11g>host rm /u01/app/oracle/oradata/OraDB11g/control01.ctl
-
-
SYS@seiang11g>host rm /u01/app/oracle/fast_recovery_area/OraDB11g/control02.ctl
-
-
-
--資料庫已經當機,無法訪問
-
SYS@seiang11g>select * from seiang.test4;
-
select * from seiang.test4
-
*
-
ERROR at line 1:
-
ORA-03135: connection lost contact
-
Process ID: 17679
- Session ID: 34 Serial number: 531
-
--還原所有的資料檔案和控制檔案,準備做不完全恢復
SYS@seiang11g>host cp /u01/app/oracle/UMAN_Backup/*.dbf /u01/app/oracle/oradata/OraDB11g/
SYS@seiang11g>host cp /u01/app/oracle/oradata/OraDB11g/control.bak /u01/app/oracle/oradata/OraDB11g/control01.ctl
SYS@seiang11g>host cp /u01/app/oracle/oradata/OraDB11g/control.bak /u01/app/oracle/fast_recovery_area/OraDB11g/control02.ctl
-
--檢視控制檔案和資料檔案頭所記錄的SCN,發現test01.dbf資料檔案頭沒有記錄
-
SYS@seiang11g>select file#,checkpoint_change#,name from v$datafile;
-
-
FILE# CHECKPOINT_CHANGE# NAME
-
---------- ------------------ --------------------------------------------------
-
1 1981768 /u01/app/oracle/oradata/OraDB11g/system01.dbf
-
2 1981768 /u01/app/oracle/oradata/OraDB11g/sysaux01.dbf
-
3 1981768 /u01/app/oracle/oradata/OraDB11g/undotbs01.dbf
-
4 1981768 /u01/app/oracle/oradata/OraDB11g/users01.dbf
-
5 1981768 /u01/app/oracle/oradata/OraDB11g/example01.dbf
-
6 1981768 /u01/app/oracle/oradata/OraDB11g/rman01.dbf
-
7 1981768 /u01/app/oracle/oradata/OraDB11g/seiang01.dbf
-
8 1981768 /u01/app/oracle/oradata/OraDB11g/wjq01.dbf
-
9 1981768 /u01/app/oracle/oradata/OraDB11g/wjqbest01.dbf
-
10 1986000 /u01/app/oracle/oradata/OraDB11g/test01.dbf
-
-
SYS@seiang11g>
-
SYS@seiang11g>select file#,checkpoint_change#,name from v$datafile_header;
-
-
FILE# CHECKPOINT_CHANGE# NAME
-
---------- ------------------ --------------------------------------------------
-
1 1913765 /u01/app/oracle/oradata/OraDB11g/system01.dbf
-
2 1913765 /u01/app/oracle/oradata/OraDB11g/sysaux01.dbf
-
3 1913765 /u01/app/oracle/oradata/OraDB11g/undotbs01.dbf
-
4 1913765 /u01/app/oracle/oradata/OraDB11g/users01.dbf
-
5 1913765 /u01/app/oracle/oradata/OraDB11g/example01.dbf
-
6 1913765 /u01/app/oracle/oradata/OraDB11g/rman01.dbf
-
7 1913765 /u01/app/oracle/oradata/OraDB11g/seiang01.dbf
-
8 1913765 /u01/app/oracle/oradata/OraDB11g/wjq01.dbf
-
9 1913765 /u01/app/oracle/oradata/OraDB11g/wjqbest01.dbf
-
10 0
-
-
-
可以看出:
-
① file10在控制檔案裡記錄是test01.dbf,而與之對應的資料檔案10是不存在的,
-
② 備份的資料備份的SCN比控制檔案SCN還老。
-
-
-
--檢視需要恢復的資料檔案
-
SYS@seiang11g>select * from v$recover_file;
-
-
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
-
---------- ------- ------- ----------------------------------------------------------------- ---------- ---------
-
1 ONLINE ONLINE UNKNOWN ERROR 1913765 02-AUG-17
-
2 ONLINE ONLINE UNKNOWN ERROR 1913765 02-AUG-17
-
3 ONLINE ONLINE UNKNOWN ERROR 1913765 02-AUG-17
-
4 ONLINE ONLINE UNKNOWN ERROR 1913765 02-AUG-17
-
5 ONLINE ONLINE UNKNOWN ERROR 1913765 02-AUG-17
-
6 ONLINE ONLINE UNKNOWN ERROR 1913765 02-AUG-17
-
7 ONLINE ONLINE UNKNOWN ERROR 1913765 02-AUG-17
-
8 ONLINE ONLINE UNKNOWN ERROR 1913765 02-AUG-17
-
9 ONLINE ONLINE UNKNOWN ERROR 1913765 02-AUG-17
-
10 ONLINE ONLINE FILE NOT FOUND 0
-
-
-
--嘗試做完全恢復,提示使用備份的控制檔案來恢復
-
SYS@seiang11g>recover database;
-
ORA-00283: recovery session canceled due to errors
-
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done
-
-
-
--使用備份的控制檔案來做恢復,出現報錯
-
SYS@seiang11g>recover database using backup controlfile;
-
ORA-00283: recovery session canceled due to errors
-
ORA-01110: data file 10: '/u01/app/oracle/oradata/OraDB11g/test01.dbf'
-
ORA-01157: cannot identify/lock data file 10 - see DBWR trace file
-
ORA-01110: data file 10: '/u01/app/oracle/oradata/OraDB11g/test01.dbf'
-
-
此錯是因為老備份裡沒有abcd表空間,但只要控制檔案裡記錄了abcd就好辦,方法是建一個datafile的空檔案,而其中內容可由日誌檔案recover(前滾)時填補出來。
-
-
-
--新建一個資料檔案
-
SYS@seiang11g>alter database create datafile '/u01/app/oracle/oradata/OraDB11g/test01.dbf';
-
Database altered.
-
-
-
--再次檢視控制檔案和資料檔案頭中做記錄的SCN
-
SYS@seiang11g>select file#,checkpoint_change#,name from v$datafile;
-
-
FILE# CHECKPOINT_CHANGE# NAME
-
---------- ------------------ --------------------------------------------------
-
1 1981768 /u01/app/oracle/oradata/OraDB11g/system01.dbf
-
2 1981768 /u01/app/oracle/oradata/OraDB11g/sysaux01.dbf
-
3 1981768 /u01/app/oracle/oradata/OraDB11g/undotbs01.dbf
-
4 1981768 /u01/app/oracle/oradata/OraDB11g/users01.dbf
-
5 1981768 /u01/app/oracle/oradata/OraDB11g/example01.dbf
-
6 1981768 /u01/app/oracle/oradata/OraDB11g/rman01.dbf
-
7 1981768 /u01/app/oracle/oradata/OraDB11g/seiang01.dbf
-
8 1981768 /u01/app/oracle/oradata/OraDB11g/wjq01.dbf
-
9 1981768 /u01/app/oracle/oradata/OraDB11g/wjqbest01.dbf
-
10 1986000 /u01/app/oracle/oradata/OraDB11g/test01.dbf
-
-
10 rows selected.
-
-
SYS@seiang11g>
-
SYS@seiang11g>select file#,checkpoint_change#,name from v$datafile_header;
-
-
FILE# CHECKPOINT_CHANGE# NAME
-
---------- ------------------ --------------------------------------------------
-
1 1913766 /u01/app/oracle/oradata/OraDB11g/system01.dbf
-
2 1913766 /u01/app/oracle/oradata/OraDB11g/sysaux01.dbf
-
3 1913766 /u01/app/oracle/oradata/OraDB11g/undotbs01.dbf
-
4 1913766 /u01/app/oracle/oradata/OraDB11g/users01.dbf
-
5 1913766 /u01/app/oracle/oradata/OraDB11g/example01.dbf
-
6 1913766 /u01/app/oracle/oradata/OraDB11g/rman01.dbf
-
7 1913766 /u01/app/oracle/oradata/OraDB11g/seiang01.dbf
-
8 1913766 /u01/app/oracle/oradata/OraDB11g/wjq01.dbf
-
9 1913766 /u01/app/oracle/oradata/OraDB11g/wjqbest01.dbf
-
10 1985999 /u01/app/oracle/oradata/OraDB11g/test01.dbf
-
-
-
--再次使用備份的控制檔案來做恢復
-
SYS@seiang11g>recover database using backup controlfile;
-
ORA-00279: change 1913766 generated at 08/02/2017 11:12:22 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950971495_1.log
-
ORA-00280: change 1913766 for thread 1 is in sequence #1
-
-
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
-
auto (因為需要的日誌已經歸檔,所以選擇auto)
-
ORA-00279: change 1914386 generated at 08/02/2017 14:48:59 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950971495_2.log
-
ORA-00280: change 1914386 for thread 1 is in sequence #2
-
ORA-00278: log file '/u01/app/oracle/arch/arch_1_950971495_1.log' no longer needed for this recovery
-
-
-
ORA-00279: change 1914402 generated at 08/02/2017 14:59:56 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950972396_1.log
-
ORA-00280: change 1914402 for thread 1 is in sequence #1
-
-
-
ORA-00279: change 1936446 generated at 08/02/2017 15:39:52 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950972396_2.log
-
ORA-00280: change 1936446 for thread 1 is in sequence #2
-
ORA-00278: log file '/u01/app/oracle/arch/arch_1_950972396_1.log' no longer needed for this recovery
-
-
-
ORA-00279: change 1937042 generated at 08/02/2017 15:49:42 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950972396_3.log
-
ORA-00280: change 1937042 for thread 1 is in sequence #3
-
ORA-00278: log file '/u01/app/oracle/arch/arch_1_950972396_2.log' no longer needed for this recovery
-
-
-
ORA-00279: change 1937100 generated at 08/02/2017 15:51:34 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950972396_4.log
-
ORA-00280: change 1937100 for thread 1 is in sequence #4
-
ORA-00278: log file '/u01/app/oracle/arch/arch_1_950972396_3.log' no longer needed for this recovery
-
-
-
ORA-00279: change 1937111 generated at 08/02/2017 16:23:53 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950977433_1.log
-
ORA-00280: change 1937111 for thread 1 is in sequence #1
-
-
-
ORA-00279: change 1955524 generated at 08/02/2017 22:00:32 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950977433_2.log
-
ORA-00280: change 1955524 for thread 1 is in sequence #2
-
ORA-00278: log file '/u01/app/oracle/arch/arch_1_950977433_1.log' no longer needed for this recovery
-
-
-
ORA-00279: change 1981768 generated at 08/03/2017 08:19:54 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950977433_3.log
-
ORA-00280: change 1981768 for thread 1 is in sequence #3
-
ORA-00278: log file '/u01/app/oracle/arch/arch_1_950977433_2.log' no longer needed for this recovery
-
-
-
ORA-00279: change 1986580 generated at 08/03/2017 10:00:19 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950977433_4.log
-
ORA-00280: change 1986580 for thread 1 is in sequence #4
-
ORA-00278: log file '/u01/app/oracle/arch/arch_1_950977433_3.log' no longer needed for this recovery
-
-
-
ORA-00308: cannot open archived log '/u01/app/oracle/arch/arch_1_950977433_4.log'
-
ORA-27037: unable to obtain file status
-
Linux-x86_64 Error: 2: No such file or directory
-
Additional information: 3
-
-
出現此錯誤,因為當前的當前的日誌檔案尚未歸檔,所以出現錯誤,所以接下來使用當前的日誌檔案來做恢復
-
-
SYS@seiang11g>recover database using backup controlfile;
-
ORA-00279: change 1986580 generated at 08/03/2017 10:00:19 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950977433_4.log
-
ORA-00280: change 1986580 for thread 1 is in sequence #4
-
-
-
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
-
/u01/app/oracle/oradata/OraDB11g/redo01.log (當前日誌檔案)
-
Log applied.
-
Media recovery complete.
-
SYS@seiang11g>
-
-
-
--恢復完成,使用resetlogs開啟資料庫
-
SYS@seiang11g>alter database open resetlogs;
-
Database altered.
-
-
--檢視控制檔案和資料檔案頭記錄的SCN一致
-
SYS@seiang11g>select file#,checkpoint_change# from v$datafile;
-
-
FILE# CHECKPOINT_CHANGE#
-
---------- ------------------
-
1 1986883
-
2 1986883
-
3 1986883
-
4 1986883
-
5 1986883
-
6 1986883
-
7 1986883
-
8 1986883
-
9 1986883
-
10 1986883
-
-
SYS@seiang11g>select file#,checkpoint_change# from v$datafile_header;
-
-
FILE# CHECKPOINT_CHANGE#
-
---------- ------------------
-
1 1986883
-
2 1986883
-
3 1986883
-
4 1986883
-
5 1986883
-
6 1986883
-
7 1986883
-
8 1986883
-
9 1986883
-
10 1986883
-
-
--確認test4表中的資料全部恢復成功
-
SYS@seiang11g>select * from seiang.test4;
-
-
ID NAME
-
---------- --------------------------------------------------
-
1001 wjq
-
1002 seiang
-
1003 wjqgood
- 1004 wjqbest
示例二:冷備份所有資料檔案--->備份控制檔案--->新建表空間(日誌檔案完好)
實驗環境:
當前的控制檔案損壞,新建立的表空間損壞,冷備的資料檔案中沒有該資料檔案的備份,控制檔案中也沒有該表空間的記錄,但是聯機日誌中有相關的記錄;由於控制檔案損壞,只能使用備份的控制檔案來做恢復。
-
--檢視資料庫中已存在的表空間
-
SYS@seiang11g>select * from v$tablespace;
-
-
TS# NAME INC BIG FLA ENC
-
---------- -------------------------------------------------- --- --- --- ---
-
0 SYSTEM YES NO YES
-
1 SYSAUX YES NO YES
-
2 UNDOTBS1 YES NO YES
-
4 USERS YES NO YES
-
3 TEMP NO NO YES
-
6 EXAMPLE YES NO YES
-
7 RMAN_CATALOG YES NO YES
-
8 SEIANG YES NO YES
-
9 WJQ YES NO YES
-
10 WJQBEST YES NO YES
-
-
-
--備份控制檔案
-
SYS@seiang11g>alter database backup controlfile to '/u01/app/oracle/oradata/OraDB11g/control.bak1';
-
Database altered.
-
-
-
-建立表空間comsys該表空間記錄在當前的日誌redo01.log中
-
SYS@seiang11g>create tablespace comsys datafile '/u01/app/oracle/oradata/OraDB11g/comsys01.dbf' size 5M;
-
Tablespace created.
-
-
-
--在seiang使用者下建立一張表test4,隸屬於comsys表空間
-
SYS@seiang11g>create table seiang.test4(age number,address varchar2(10)) tablespace comsys;
-
Table created.
-
-
--在test4表中插入兩條資料,並提交
-
SYS@seiang11g>insert into seiang.test4 values(23,'beijing');
-
1 row created.
-
-
SYS@seiang11g>insert into seiang.test4 values(25,'shanghai');
-
1 row created.
-
-
SYS@seiang11g>commit;
-
Commit complete.
-
-
SYS@seiang11g>select * from seiang.test4;
-
-
AGE ADDRESS
-
---------- ----------
-
23 beijing
-
25 shanghai
-
-
-
--檢視當前日誌的序列號為1
-
SYS@seiang11g>select group#,sequence#,status from v$log;
-
-
GROUP# SEQUENCE# STATUS
-
---------- ---------- ----------------
-
1 1 CURRENT
-
2 0 UNUSED
-
3 0 UNUSED
-
-
-
--模擬comsys01.dbf資料檔案丟失或損壞,控制檔案損壞
-
SYS@seiang11g>host rm /u01/app/oracle/oradata/OraDB11g/comsys01.dbf
-
-
SYS@seiang11g>shutdown abort
-
ORACLE instance shut down.
-
-
--從備份的檔案中還原控制檔案和資料檔案
-
SYS@seiang11g>host cp /u01/app/oracle/oradata/OraDB11g/control.bak1 /u01/app/oracle/oradata/OraDB11g/control01.ctl
-
-
SYS@seiang11g>host cp /u01/app/oracle/oradata/OraDB11g/control.bak1 /u01/app/oracle/fast_recovery_area/OraDB11g/control02.ctl
-
-
SYS@seiang11g>host cp /u01/app/oracle/UMAN_Backup/*.dbf /u01/app/oracle/oradata/OraDB11g
-
SYS@seiang11g>startup
-
ORACLE instance started.
-
-
Total System Global Area 1252663296 bytes
-
Fixed Size 2252824 bytes
-
Variable Size 788533224 bytes
-
Database Buffers 452984832 bytes
-
Redo Buffers 8892416 bytes
-
Database mounted.
-
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
-
-
-
--檢視控制檔案和資料檔案頭,發現並沒有comsys表空間的相關記錄
-
SYS@seiang11g>select file#,checkpoint_change#,name from v$datafile;
-
-
FILE# CHECKPOINT_CHANGE# NAME
-
---------- ------------------ --------------------------------------------------
-
1 1986883 /u01/app/oracle/oradata/OraDB11g/system01.dbf
-
2 1986883 /u01/app/oracle/oradata/OraDB11g/sysaux01.dbf
-
3 1986883 /u01/app/oracle/oradata/OraDB11g/undotbs01.dbf
-
4 1986883 /u01/app/oracle/oradata/OraDB11g/users01.dbf
-
5 1986883 /u01/app/oracle/oradata/OraDB11g/example01.dbf
-
6 1986883 /u01/app/oracle/oradata/OraDB11g/rman01.dbf
-
7 1986883 /u01/app/oracle/oradata/OraDB11g/seiang01.dbf
-
8 1986883 /u01/app/oracle/oradata/OraDB11g/wjq01.dbf
-
9 1986883 /u01/app/oracle/oradata/OraDB11g/wjqbest01.dbf
-
-
-
SYS@seiang11g>select file#,checkpoint_change#,name from v$datafile_header;
-
-
FILE# CHECKPOINT_CHANGE# NAME
-
---------- ------------------ --------------------------------------------------
-
1 1913765 /u01/app/oracle/oradata/OraDB11g/system01.dbf
-
2 1913765 /u01/app/oracle/oradata/OraDB11g/sysaux01.dbf
-
3 1913765 /u01/app/oracle/oradata/OraDB11g/undotbs01.dbf
-
4 1913765 /u01/app/oracle/oradata/OraDB11g/users01.dbf
-
5 1913765 /u01/app/oracle/oradata/OraDB11g/example01.dbf
-
6 1913765 /u01/app/oracle/oradata/OraDB11g/rman01.dbf
-
7 1913765 /u01/app/oracle/oradata/OraDB11g/seiang01.dbf
-
8 1913765 /u01/app/oracle/oradata/OraDB11g/wjq01.dbf
-
9 1913765 /u01/app/oracle/oradata/OraDB11g/wjqbest01.dbf
-
-
-
--嘗試完全恢復,提示使用備份的控制檔案做恢復
-
SYS@seiang11g>recover database;
-
ORA-00283: recovery session canceled due to errors
-
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done
-
-
-
--使用備份的控制檔案做恢復
-
SYS@seiang11g>recover database using backup controlfile;
-
ORA-00279: change 1913766 generated at 08/02/2017 11:12:22 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950971495_1.log
-
ORA-00280: change 1913766 for thread 1 is in sequence #1
-
-
-
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
-
auto (該日誌已歸檔,所以選擇auto)
-
ORA-00279: change 1914386 generated at 08/02/2017 14:48:59 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950971495_2.log
-
ORA-00280: change 1914386 for thread 1 is in sequence #2
-
ORA-00278: log file '/u01/app/oracle/arch/arch_1_950971495_1.log' no longer needed for this recovery
-
-
-
ORA-00279: change 1914402 generated at 08/02/2017 14:59:56 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950972396_1.log
-
ORA-00280: change 1914402 for thread 1 is in sequence #1
-
-
-
ORA-00279: change 1936446 generated at 08/02/2017 15:39:52 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950972396_2.log
-
ORA-00280: change 1936446 for thread 1 is in sequence #2
-
ORA-00278: log file '/u01/app/oracle/arch/arch_1_950972396_1.log' no longer needed for this recovery
-
-
-
ORA-00279: change 1937042 generated at 08/02/2017 15:49:42 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950972396_3.log
-
ORA-00280: change 1937042 for thread 1 is in sequence #3
-
ORA-00278: log file '/u01/app/oracle/arch/arch_1_950972396_2.log' no longer needed for this recovery
-
-
-
ORA-00279: change 1937100 generated at 08/02/2017 15:51:34 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950972396_4.log
-
ORA-00280: change 1937100 for thread 1 is in sequence #4
-
ORA-00278: log file '/u01/app/oracle/arch/arch_1_950972396_3.log' no longer needed for this recovery
-
-
-
ORA-00279: change 1937111 generated at 08/02/2017 16:23:53 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950977433_1.log
-
ORA-00280: change 1937111 for thread 1 is in sequence #1
-
-
-
ORA-00279: change 1955524 generated at 08/02/2017 22:00:32 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950977433_2.log
-
ORA-00280: change 1955524 for thread 1 is in sequence #2
-
ORA-00278: log file '/u01/app/oracle/arch/arch_1_950977433_1.log' no longer needed for this recovery
-
-
-
ORA-00279: change 1981768 generated at 08/03/2017 08:19:54 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950977433_3.log
-
ORA-00280: change 1981768 for thread 1 is in sequence #3
-
ORA-00278: log file '/u01/app/oracle/arch/arch_1_950977433_2.log' no longer needed for this recovery
-
-
-
ORA-00279: change 1986580 generated at 08/03/2017 10:00:19 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_950977433_4.log
-
ORA-00280: change 1986580 for thread 1 is in sequence #4
-
ORA-00278: log file '/u01/app/oracle/arch/arch_1_950977433_3.log' no longer needed for this recovery
-
-
-
ORA-00279: change 1986880 generated at 08/03/2017 10:33:47 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_951042827_1.log
-
ORA-00280: change 1986880 for thread 1 is in sequence #1
-
-
-
ORA-00308: cannot open archived log '/u01/app/oracle/arch/arch_1_951042827_1.log'
-
ORA-27037: unable to obtain file status
-
Linux-x86_64 Error: 2: No such file or directory
-
Additional information: 3
-
-
出現此錯誤,因為當前的日誌檔案尚未歸檔,所以出現錯誤,所以接下來使用當前的日誌檔案來做恢復
-
-
-
SYS@seiang11g>recover database using backup controlfile;
-
ORA-00279: change 1986880 generated at 08/03/2017 10:33:47 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_951042827_1.log
-
ORA-00280: change 1986880 for thread 1 is in sequence #1
-
-
-
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
-
/u01/app/oracle/oradata/OraDB11g/redo01.log (當前的日誌檔案)
-
ORA-00283: recovery session canceled due to errors
-
ORA-01244: unnamed datafile(s) added to control file by media recovery
-
ORA-01110: data file 10: '/u01/app/oracle/oradata/OraDB11g/comsys01.dbf'
-
(從當前的日誌檔案中,我們發現了關於comsys表空間的相關記錄)
-
-
ORA-01112: media recovery not started
-
-
-
當再次使用備份的控制檔案做恢復時,出現如下的錯誤提示
-
SYS@seiang11g>recover database using backup controlfile;
-
ORA-00283: recovery session canceled due to errors
-
ORA-01111: name for data file 10 is unknown - rename to correct file
-
ORA-01110: data file 10: '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00010'
-
ORA-01157: cannot identify/lock data file 10 - see DBWR trace file
-
ORA-01111: name for data file 10 is unknown - rename to correct file
-
ORA-01110: data file 10: '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00010'
-
-
--檢視控制檔案和資料檔案頭,有了關於comsys表空間的相關記錄
-
SYS@seiang11g>select file#,checkpoint_change#,name from v$datafile;
-
-
FILE# CHECKPOINT_CHANGE# NAME
-
---------- ------------------ --------------------------------------------------
-
1 1986883 /u01/app/oracle/oradata/OraDB11g/system01.dbf
-
2 1986883 /u01/app/oracle/oradata/OraDB11g/sysaux01.dbf
-
3 1986883 /u01/app/oracle/oradata/OraDB11g/undotbs01.dbf
-
4 1986883 /u01/app/oracle/oradata/OraDB11g/users01.dbf
-
5 1986883 /u01/app/oracle/oradata/OraDB11g/example01.dbf
-
6 1986883 /u01/app/oracle/oradata/OraDB11g/rman01.dbf
-
7 1986883 /u01/app/oracle/oradata/OraDB11g/seiang01.dbf
-
8 1986883 /u01/app/oracle/oradata/OraDB11g/wjq01.dbf
-
9 1986883 /u01/app/oracle/oradata/OraDB11g/wjqbest01.dbf
-
10 1988334 /u01/app/oracle/product/11.2.0/dbhome_1/dbs/UNNAME
-
D00010
-
-
-
SYS@seiang11g>select file#,checkpoint_change#,name from v$datafile_header;
-
-
FILE# CHECKPOINT_CHANGE# NAME
-
---------- ------------------ --------------------------------------------------
-
1 1988336 /u01/app/oracle/oradata/OraDB11g/system01.dbf
-
2 1988336 /u01/app/oracle/oradata/OraDB11g/sysaux01.dbf
-
3 1988336 /u01/app/oracle/oradata/OraDB11g/undotbs01.dbf
-
4 1988336 /u01/app/oracle/oradata/OraDB11g/users01.dbf
-
5 1988336 /u01/app/oracle/oradata/OraDB11g/example01.dbf
-
6 1988336 /u01/app/oracle/oradata/OraDB11g/rman01.dbf
-
7 1988336 /u01/app/oracle/oradata/OraDB11g/seiang01.dbf
-
8 1988336 /u01/app/oracle/oradata/OraDB11g/wjq01.dbf
-
9 1988336 /u01/app/oracle/oradata/OraDB11g/wjqbest01.dbf
-
10 0
-
-
--建立資料檔案,並對控制檔案中記錄未知的資料檔案重新命名
-
SYS@seiang11g>alter database create datafile '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00010'
-
2 as '/u01/app/oracle/oradata/OraDB11g/comsys01.dbf';
-
Database altered.
-
-
(當前的日誌檔案)
-
SYS@seiang11g>select file#,checkpoint_change#,name from v$datafile;
-
-
FILE# CHECKPOINT_CHANGE# NAME
-
---------- ------------------ --------------------------------------------------
-
1 1986883 /u01/app/oracle/oradata/OraDB11g/system01.dbf
-
2 1986883 /u01/app/oracle/oradata/OraDB11g/sysaux01.dbf
-
3 1986883 /u01/app/oracle/oradata/OraDB11g/undotbs01.dbf
-
4 1986883 /u01/app/oracle/oradata/OraDB11g/users01.dbf
-
5 1986883 /u01/app/oracle/oradata/OraDB11g/example01.dbf
-
6 1986883 /u01/app/oracle/oradata/OraDB11g/rman01.dbf
-
7 1986883 /u01/app/oracle/oradata/OraDB11g/seiang01.dbf
-
8 1986883 /u01/app/oracle/oradata/OraDB11g/wjq01.dbf
-
9 1986883 /u01/app/oracle/oradata/OraDB11g/wjqbest01.dbf
-
10 1988334 /u01/app/oracle/oradata/OraDB11g/comsys01.dbf
-
-
-
--再次檢視控制檔案和資料檔案頭
-
SYS@seiang11g>select file#,checkpoint_change#,name from v$datafile_header;
-
-
FILE# CHECKPOINT_CHANGE# NAME
-
---------- ------------------ --------------------------------------------------
-
1 1988336 /u01/app/oracle/oradata/OraDB11g/system01.dbf
-
2 1988336 /u01/app/oracle/oradata/OraDB11g/sysaux01.dbf
-
3 1988336 /u01/app/oracle/oradata/OraDB11g/undotbs01.dbf
-
4 1988336 /u01/app/oracle/oradata/OraDB11g/users01.dbf
-
5 1988336 /u01/app/oracle/oradata/OraDB11g/example01.dbf
-
6 1988336 /u01/app/oracle/oradata/OraDB11g/rman01.dbf
-
7 1988336 /u01/app/oracle/oradata/OraDB11g/seiang01.dbf
-
8 1988336 /u01/app/oracle/oradata/OraDB11g/wjq01.dbf
-
9 1988336 /u01/app/oracle/oradata/OraDB11g/wjqbest01.dbf
-
10 1988334 /u01/app/oracle/oradata/OraDB11g/comsys01.dbf
-
-
-
--再次使用備份的控制檔案和當前日誌做恢復
-
SYS@seiang11g>recover database using backup controlfile;
-
ORA-00279: change 1988334 generated at 08/03/2017 10:53:39 needed for thread 1
-
ORA-00289: suggestion : /u01/app/oracle/arch/arch_1_951042827_1.log
-
ORA-00280: change 1988334 for thread 1 is in sequence #1
-
-
-
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
-
/u01/app/oracle/oradata/OraDB11g/redo01.log
-
Log applied.
-
Media recovery complete.
-
-
-
--恢復完成後,使用resetlogs開啟資料庫
-
SYS@seiang11g>alter database open resetlogs;
-
Database altered.
-
-
-
--檢視控制檔案和資料檔案頭SCN一致
-
SYS@seiang11g>select file#,checkpoint_change#,name from v$datafile;
-
-
FILE# CHECKPOINT_CHANGE# NAME
-
---------- ------------------ --------------------------------------------------
-
1 1989738 /u01/app/oracle/oradata/OraDB11g/system01.dbf
-
2 1989738 /u01/app/oracle/oradata/OraDB11g/sysaux01.dbf
-
3 1989738 /u01/app/oracle/oradata/OraDB11g/undotbs01.dbf
-
4 1989738 /u01/app/oracle/oradata/OraDB11g/users01.dbf
-
5 1989738 /u01/app/oracle/oradata/OraDB11g/example01.dbf
-
6 1989738 /u01/app/oracle/oradata/OraDB11g/rman01.dbf
-
7 1989738 /u01/app/oracle/oradata/OraDB11g/seiang01.dbf
-
8 1989738 /u01/app/oracle/oradata/OraDB11g/wjq01.dbf
-
9 1989738 /u01/app/oracle/oradata/OraDB11g/wjqbest01.dbf
-
10 1989738 /u01/app/oracle/oradata/OraDB11g/comsys01.dbf
-
-
-
SYS@seiang11g>select file#,checkpoint_change#,name from v$datafile_header;
-
-
FILE# CHECKPOINT_CHANGE# NAME
-
---------- ------------------ --------------------------------------------------
-
1 1989738 /u01/app/oracle/oradata/OraDB11g/system01.dbf
-
2 1989738 /u01/app/oracle/oradata/OraDB11g/sysaux01.dbf
-
3 1989738 /u01/app/oracle/oradata/OraDB11g/undotbs01.dbf
-
4 1989738 /u01/app/oracle/oradata/OraDB11g/users01.dbf
-
5 1989738 /u01/app/oracle/oradata/OraDB11g/example01.dbf
-
6 1989738 /u01/app/oracle/oradata/OraDB11g/rman01.dbf
-
7 1989738 /u01/app/oracle/oradata/OraDB11g/seiang01.dbf
-
8 1989738 /u01/app/oracle/oradata/OraDB11g/wjq01.dbf
-
9 1989738 /u01/app/oracle/oradata/OraDB11g/wjqbest01.dbf
-
10 1989738 /u01/app/oracle/oradata/OraDB11g/comsys01.dbf
-
-
-
--檢視已恢復test4表中的資料記錄
-
SYS@seiang11g>select * from seiang.test4;
-
-
AGE ADDRESS
-
---------- ----------
-
23 beijing
- 25 shanghai
作者:SEian.G(苦練七十二變,笑對八十一難)
ITPUB:http://blog.itpub.net/31015730/
51CTO:http://seiang.blog.51cto.com/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31015730/viewspace-2143113/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle使用備份檔案集恢復歸檔日誌Oracle
- Oracle為什麼使用備份的控制檔案恢復後一定要resetlogsOracle
- Oracle-無備份情況下,如何手動恢復控制檔案Oracle
- ORACLE備份&恢復案例二(轉)Oracle
- 12 使用RMAN備份和恢復檔案
- G017-ORACLE-MIGRATION-01 RMAN備份異機不完全恢復Oracle
- Oracle 不完全恢復Oracle
- 【RMAN】Oracle中如何備份控制檔案?備份控制檔案的方式有哪幾種?Oracle
- Oracle 備份 與 恢復 概述Oracle
- Oracle 備份恢復之 FlashbackOracle
- ORACLE備份&恢復案例(轉)Oracle
- XFS檔案系統的備份、恢復、修復
- SqlServer備份和恢復(二)SQLServer
- 備份與恢復oracle_homeOracle
- oracle 增量備份恢復驗證Oracle
- Oracle 備份和恢復介紹Oracle
- ORACLE備份&恢復案例三(轉)Oracle
- ORACLE本地磁碟備份恢復Oracle
- 與控制檔案有關的恢復(二)
- 【ASK_ORACLE】Oracle 12c之CDB與PDB的備份與恢復(二)備份恢復之前你需要知道的Oracle
- 檔案的基本管理和XFS檔案系統備份恢復
- Oracle 12c 備份與恢復Oracle
- Oracle 備份恢復篇之RMAN catalogOracle
- ORACLE DG從庫 Rman備份恢復Oracle
- oracle 控制檔案及引數檔案何時自動備份Oracle
- Linux中XFS檔案系統的備份,恢復,修復Linux
- 如何從Active Backup for Business備份中恢復檔案
- 如何備份及恢復Linux檔案許可權Linux
- RAC備份恢復之Voting備份與恢復
- dg丟失歸檔,使用rman增量備份恢復
- MySQL入門--備份與恢復(二)MySql
- 實戰:xfs檔案系統的備份和恢復
- 備份與恢復:polardb資料庫備份與恢復資料庫
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- RMAN備份恢復典型案例——資料檔案存在壞快
- oracle冷備恢復Oracle
- mydumper備份恢復
- Mysql備份恢復MySql
- 備份和恢復