備份控制文件之後,添加數據文件,數據文件無備份丟失後的恢復

Oracle document:
Re-Creating Datafiles When Backups Are Unavailable: Scenario
If a datafile is damaged and no backup of the file is available, then you can still recover the datafile if:
1 .All archived log files written after the creation of the original datafile are available
2. The control file contains the name of the damaged file (that is, the control file is current,
    or is a backup taken after the damaged datafile was added to the database)
如果不滿足第二個條件會怎麼樣呢:
測試過程:
備份控制文件:
SQL> alter database backup controlfile to 'D:\oracle\product\10.2.0\exper_data\w
rite4.ctl'
  2  /
數據庫已更改。
爲表空間添加數據文件
SQL> alter tablespace users add datafile size 5m;
表空間已更改。
SQL> create table test(name varchar2(20)) tablespace users;
表已創建。
SQL> shutdown immediate
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
刪除剛纔添加的數據文件(這是OMF方法,找到5M大小的那個,其他的都大),
並恢復備份的控制文件。
SQL> startup
ORACLE 例程已經啓動。
Total System Global Area  603979776 bytes
Fixed Size                  1298112 bytes
Variable Size             163578176 bytes
Database Buffers          432013312 bytes
Redo Buffers                7090176 bytes
數據庫裝載完畢。
ORA-01589: 要打開數據庫則必須使用 RESETLOGS 或 NORESETLOGS 選項

SQL> recover database using backup controlfile
ORA-00279: 更改 891467 (在 07/20/2010 22:47:57 生成) 對於線程 1 是必需的
ORA-00289: 建議: D:\ORACLE\PRODUCT\10.2.0\ARCH02\ARC00001_0724891677.001
ORA-00280: 更改 891467 (用於線程 1) 在序列 #1 中

指定日誌: {<RET>=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\PRIMARY\ONLINELOG\O1_MF_1_63XPWQ0D_.LOG
ORA-00283: 恢復會話因錯誤而取消
ORA-01244: 未命名的數據文件由介質恢復添加至控制文件
ORA-01110: 數據文件 6:
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CH5VWS_.DBF'

ORA-01112: 未啓動介質恢復

SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_SYSTEM_63XPX1S6_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_UNDOTBS1_63XPXGWY_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_SYSAUX_63XPXMOL_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_63XPXTN1_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CF8DGN_.DBF
D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00006
已選擇6行。
更改文件名:
SQL> alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED0
0006' to 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CH5VWS
_.DBF'
  2  /
alter database rename file 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00006'
 to 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CH5VWS_.DBF
'
*
第 1 行出現錯誤:
ORA-01511: 重命名日誌/數據文件時出錯
ORA-01141: 重命名數據文件 6 時出錯 - 未找到新文件
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CH5VWS_.DBF'
ORA-01111: 數據文件 6 名稱未知 - 請重命名以更正文件
ORA-01110: 數據文件 6: 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00006'
ORA-27041: 無法打開文件
OSD-04002: 無法打開文件
O/S-Error: (OS 2) 系統找不到指定的文件。
SQL> alter database create datafile 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNA
MED00006' as 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CH
5VWS_.DBF'
  2  /
alter database create datafile 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00
006' as 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CH5VWS_
.DBF'
*
第 1 行出現錯誤:
ORA-01276: 無法添加文件
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CH5VWS_.DBF。相
應文件具有一個 Oracle Managed Files 文件名。
提示文件具有一個 Oracle Managed Files 文件名,按三思的說法改一下文件名:
SQL> alter database create datafile 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNA
MED00006' as 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS.DBF'
2  /
數據庫已更改。
SQL> recover database using backup controlfile
ORA-00279: 更改 892717 (在 07/20/2010 23:11:56 生成) 對於線程 1 是必需的
ORA-00289: 建議: D:\ORACLE\PRODUCT\10.2.0\ARCH02\ARC00001_0724891677.001
ORA-00280: 更改 892717 (用於線程 1) 在序列 #1 中

指定日誌: {<RET>=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\PRIMARY\ONLINELOG\O1_MF_3_63XPWZ47_.LOG
ORA-00339: 歸檔日誌未包含任何重做
ORA-00334: 歸檔日誌:
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\ONLINELOG\O1_MF_3_63XPWZ47_.LOG'

SQL> recover database using backup controlfile
ORA-00279: 更改 892717 (在 07/20/2010 23:11:56 生成) 對於線程 1 是必需的
ORA-00289: 建議: D:\ORACLE\PRODUCT\10.2.0\ARCH02\ARC00001_0724891677.001
ORA-00280: 更改 892717 (用於線程 1) 在序列 #1 中

指定日誌: {<RET>=suggested | filename | AUTO | CANCEL}
D:\oracle\product\10.2.0\oradata\PRIMARY\ONLINELOG\O1_MF_1_63XPWOSS_.LOG
已應用的日誌。
完成介質恢復。
SQL> alter database open resetlogs
  2  /
alter database open resetlogs
*
第 1 行出現錯誤:
ORA-01153: 激活了不兼容的介質恢復
文檔上說:ORA-01153, Attempted to start an incompatible media recovery or open resetlogs
 during media recovery or RMAN backup.這裏怎麼用有另外進程呢,我只打開一個窗口.
waiting再打開:
SQL> alter database open resetlogs
  2  /
alter database open resetlogs
*
第 1 行出現錯誤:
ORA-01153: 激活了不兼容的介質恢復
錯誤一樣.試着關閉再打開:
SQL> shutdown immediate;
ORA-01109: 數據庫未打開

已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啓動。
Total System Global Area  603979776 bytes
Fixed Size                  1298112 bytes
Variable Size             163578176 bytes
Database Buffers          432013312 bytes
Redo Buffers                7090176 bytes
數據庫裝載完畢。
ORA-01589: 要打開數據庫則必須使用 RESETLOGS 或 NORESETLOGS 選項

SQL> alter database open resetlogs
  2  /
數據庫已更改。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_SYSTEM_63XPX1S6_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_UNDOTBS1_63XPXGWY_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_SYSAUX_63XPXMOL_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_63XPXTN1_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS_64CF8DGN_.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\PRIMARY\DATAFILE\O1_MF_USERS.DBF
已選擇6行。
完成恢復.
在這裏ORA-01153是什麼原因呢,大夥指點一下.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章