oracle實驗記錄(恢復-丟失未備份資料檔案)

fufuh2o發表於2009-08-20

SQL> archive log list;
資料庫日誌模式            存檔模式
自動存檔             啟用
存檔終點            USE_DB_RECOVERY_FILE_DEST
最早的聯機日誌序列     7
下一個存檔日誌序列   9
當前日誌序列           9

SQL> select tablespace_name,file_name from dba_data_files;

TABLESPACE_NAME      FILE_NAME
-------------------- ----------------------------------------
USERS                F:\ORACLE\PRODUCT\10.2.0\ORADATA\XHTEST\
                     USERS01.DBF

SYSAUX               F:\ORACLE\PRODUCT\10.2.0\ORADATA\XHTEST\
                     SYSAUX01.DBF

UNDOTBS1             F:\ORACLE\PRODUCT\10.2.0\ORADATA\XHTEST\
                     UNDOTBS01.DBF

SYSTEM               F:\ORACLE\PRODUCT\10.2.0\ORADATA\XHTEST\
                     SYSTEM01.DBF

TABLESPACE_NAME      FILE_NAME
-------------------- ----------------------------------------

EXAMPLE              F:\ORACLE\PRODUCT\10.2.0\ORADATA\XHTEST\
                     EXAMPLE01.DBF

TEST                 D:\DATAFILE\TEST.DBF~~~~~~~~~~~~~

已選擇6行。

SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host del D:\DATAFILE\TEST.DBF~~~~~~~~~~~~~~~~~~刪除 無備份

SQL> startup
ORACLE 例程已經啟動。

Total System Global Area  289406976 bytes
Fixed Size                  1248576 bytes
Variable Size             134218432 bytes
Database Buffers          146800640 bytes
Redo Buffers                7139328 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 6 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 6: 'D:\DATAFILE\TEST.DBF'


SQL> select * from v$recover_file;

     FILE# ONLINE  ONLINE_
---------- ------- -------
ERROR                                                                CHANGE#
----------------------------------------------------------------- ----------
TIME
--------------
         6 ONLINE  ONLINE
FILE NOT FOUND      0

SQL> alter database create datafile 'D:\DATAFILE\TEST.DBf';~~~建立一個

資料庫已更改。

SQL> recover datafile 'D:\DATAFILE\TEST.DBf';~~~可以恢復create database 以來建立的datafile 但要求自DATAFILE 建立以來所有redo archivelog都存在(中間resetlogs也

不行了,resetlogs後 之前的archivelog就無用了,oracle 自己最初建立的datafile無法恢復(沒有建立時候的記錄資訊 無法恢復)),要求create datafile的目錄與名字與

controlfile中記錄的一樣
完成介質恢復。
SQL> alter database open;

資料庫已更改。


SQL> select file#,name ,status from v$datafile_header;

     FILE# NAME                           STATUS
---------- ------------------------------ -------
         1 F:\ORACLE\PRODUCT\10.2.0\ORADA ONLINE
           TA\XHTEST\SYSTEM01.DBF

         2 F:\ORACLE\PRODUCT\10.2.0\ORADA ONLINE
           TA\XHTEST\UNDOTBS01.DBF

         3 F:\ORACLE\PRODUCT\10.2.0\ORADA ONLINE~~~~~~~~~~~~~~~~ORACLE 自己建立的datafile
           TA\XHTEST\SYSAUX01.DBF

         4 F:\ORACLE\PRODUCT\10.2.0\ORADA ONLINE
           TA\XHTEST\USERS01.DBF

     FILE# NAME                           STATUS
---------- ------------------------------ -------

         5 F:\ORACLE\PRODUCT\10.2.0\ORADA ONLINE
           TA\XHTEST\EXAMPLE01.DBF

         6 D:\DATAFILE\TEST.DBF           ONLINE

已選擇6行。

RMAN> backup datafile 3;

啟動 backup 於 20-8月 -09
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=144 devtype=DISK
通道 ORA_DISK_1: 啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00003 name=F:\ORACLE\PRODUCT\10.2.0\ORADATA\XHTEST\SYSAUX01.DBF

通道 ORA_DISK_1: 正在啟動段 1 於 20-8月 -09
通道 ORA_DISK_1: 已完成段 1 於 20-8月 -09
段控制程式碼=F:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XHTEST\BACKUPSET\2009_08_20\
O1_MF_NNNDF_TAG20090820T223422_58TQQHG5_.BKP 標記=TAG20090820T223422 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:01:30
完成 backup 於 20-8月 -09
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host del F:\ORACLE\PRODUCT\10.2.0\ORADATA\XHTEST\SYSAUX01.DBF

SQL> startup
ORACLE 例程已經啟動。
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 3 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 3: 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\XHTEST\SYSAUX01.DBF'**********************
SQL> alter database create datafile 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\XHTEST\SYS
AUX01.DBF';
alter database create datafile 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\XHTEST\SYSAUX01
.DBF'
*
第 1 行出現錯誤:
ORA-01178: 檔案 3 在最後一個 CREATE CONTROLFILE 之前建立, 無法重新建立~~~~~~~~~~~**************************


ORA-01110: 資料檔案 3: 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\XHTEST\SYSAUX01.DBF'
RMAN> run {restore datafile 3 ;
2> recover datafile 3 ;};

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

通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00003恢復到F:\ORACLE\PRODUCT\10.2.0\ORADATA\XHTEST\SYSAUX01.DBF
通道 ORA_DISK_1: 正在讀取備份段 F:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XHT
EST\BACKUPSET\2009_08_20\O1_MF_NNNDF_TAG20090820T223422_58TQQHG5_.BKP
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = F:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XHTEST\BACKUPSET\2009_08_2
0\O1_MF_NNNDF_TAG20090820T223422_58TQQHG5_.BKP 標記 = TAG20090820T223422
通道 ORA_DISK_1: 恢復完成, 用時: 00:07:28
完成 restore 於 20-8月 -09

啟動 recover 於 20-8月 -09
使用通道 ORA_DISK_1

正在開始介質的恢復
介質恢復完成, 用時: 00:00:02

完成 recover 於 20-8月 -09


SQL> alter database open;

資料庫已更改。

*****************
修改到別的位置(原位置不可用)
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host del D:\DATAFILE\TEST.DBF

SQL> startup
ORACLE 例程已經啟動。

Total System Global Area  289406976 bytes
Fixed Size                  1248576 bytes
Variable Size             142607040 bytes
Database Buffers          138412032 bytes
Redo Buffers                7139328 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 6 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 6: 'D:\DATAFILE\TEST.DBF'


SQL> alter database create datafile  3 as 'e:\datafile\test.dbf'; as 到 new destination
alter database create datafile  3 as 'e:\datafile\test.dbf'
*
第 1 行出現錯誤:
ORA-01178: 檔案 3 在最後一個 CREATE CONTROLFILE 之前建立, 無法重新建立
ORA-01110: 資料檔案 3: 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\XHTEST\SYSAUX01.DBF'


SQL> alter database create datafile  6 as 'e:\datafile\test.dbf';~~~可以用檔案號

資料庫已更改。

SQL> recover datafile 6
完成介質恢復。
SQL> alter database open;

資料庫已更改。

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

相關文章