利用rman做資料檔案丟失的恢復實驗

paulyibinyi發表於2008-09-23

利用rman做資料檔案丟失的恢復實驗
1.首先備份全庫  實驗環境 windows xp+oracle 9.2.0.1
C:\Documents and Settings\paulyi>rman target /

恢復管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

連線到目標資料庫: TEST (DBID=1964268543)

RMAN> backup full database;

啟動 backup 於 23-9月 -08
正在使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在啟動 full 資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00001 name=D:\ORACLE\ORADATA\TEST\SYSTEM01.DBF
輸入資料檔案 fno=00002 name=D:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF
輸入資料檔案 fno=00005 name=D:\ORACLE\ORADATA\TEST\EXAMPLE01.DBF
輸入資料檔案 fno=00010 name=D:\ORACLE\ORADATA\TEST\XDB01.DBF
輸入資料檔案 fno=00006 name=D:\ORACLE\ORADATA\TEST\INDX01.DBF
輸入資料檔案 fno=00009 name=D:\ORACLE\ORADATA\TEST\USERS01.DBF
輸入資料檔案 fno=00003 name=D:\ORACLE\ORADATA\TEST\CWMLITE01.DBF
輸入資料檔案 fno=00004 name=D:\ORACLE\ORADATA\TEST\DRSYS01.DBF
輸入資料檔案 fno=00007 name=D:\ORACLE\ORADATA\TEST\ODM01.DBF
輸入資料檔案 fno=00008 name=D:\ORACLE\ORADATA\TEST\TOOLS01.DBF
通道 ORA_DISK_1: 正在啟動段 1 於 23-9月 -08
通道 ORA_DISK_1: 已完成段 1 於 23-9月 -08
段 handle=D:\BACKUP\BACKUP_0IJRABD7_1_1 comment=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:01:06
完成 backup 於 23-9月 -08

啟動 Control File and SPFILE Autobackup 於 23-9月 -08
段 handle=D:\BACKUP\C-1964268543-20080923-07 comment=NONE
完成 Control File and SPFILE Autobackup 於 23-9月 -08

RMAN>exit


SQL> select tablespace_name from user_tables where table_name='TEST';

TABLESPACE_NAME
------------------------------
TOOLS
SQL>select count(*) from test;
    count(*)
     236096
    
SQL> insert into test select * from test;    --產生資料

已建立236096行。

SQL> /

已建立472192行。

SQL> /

已建立944384行。

SQL> alter system switch logfile;

系統已更改。

SQL> select count(*) from test;

  COUNT(*)
----------
   1888768 


這個時候從作業系統刪除資料檔案tools01.dbf

下面利用rman在資料庫mount的狀態來恢復

SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> exit
從Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中斷開

C:\Documents and Settings\paulyi>d:

D:\>cd oracle\oradata\test

D:\oracle\oradata\test>dir
 驅動器 D 中的卷是 software
 卷的序列號是 3C2B-605D

 D:\oracle\oradata\test 的目錄

2008-09-23  10:50   

          .
2008-09-23  10:50              ..
2008-09-23  11:32         2,023,424 CONTROL01.CTL
2008-09-23  11:32         2,023,424 CONTROL02.CTL
2008-09-23  11:32         2,023,424 CONTROL03.CTL
2008-09-23  10:49        20,979,712 CWMLITE01.DBF
2008-09-23  10:49        20,979,712 DRSYS01.DBF
2008-09-23  10:50       156,639,232 EXAMPLE01.DBF
2008-09-23  10:49        26,222,592 INDX01.DBF
2008-09-23  10:49        20,979,712 ODM01.DBF
2008-09-23  11:29       104,858,112 REDO01.LOG
2008-09-23  11:30       104,858,112 REDO02.LOG
2008-09-23  11:32       104,858,112 REDO03.LOG
2008-09-23  11:32       419,438,592 SYSTEM01.DBF
2008-09-23  11:32        31,465,472 TOOLS01.DBF
2008-09-23  11:32       209,723,392 UNDOTBS01.DBF
2008-09-23  10:49        26,222,592 USERS01.DBF
2008-09-23  10:49        39,985,152 XDB01.DBF
              16 個檔案  1,293,280,768 位元組
               2 個目錄  7,935,217,664 可用位元組

D:\oracle\oradata\test>del TOOLS01.DBF

D:\oracle\oradata\test>dir
 驅動器 D 中的卷是 software
 卷的序列號是 3C2B-605D

 D:\oracle\oradata\test 的目錄

2008-09-23  11:33   

          .
2008-09-23  11:33              ..
2008-09-23  11:32         2,023,424 CONTROL01.CTL
2008-09-23  11:32         2,023,424 CONTROL02.CTL
2008-09-23  11:32         2,023,424 CONTROL03.CTL
2008-09-23  10:49        20,979,712 CWMLITE01.DBF
2008-09-23  10:49        20,979,712 DRSYS01.DBF
2008-09-23  10:50       156,639,232 EXAMPLE01.DBF
2008-09-23  10:49        26,222,592 INDX01.DBF
2008-09-23  10:49        20,979,712 ODM01.DBF
2008-09-23  11:29       104,858,112 REDO01.LOG
2008-09-23  11:30       104,858,112 REDO02.LOG
2008-09-23  11:32       104,858,112 REDO03.LOG
2008-09-23  11:32       419,438,592 SYSTEM01.DBF
2008-09-23  11:32       209,723,392 UNDOTBS01.DBF
2008-09-23  10:49        26,222,592 USERS01.DBF
2008-09-23  10:49        39,985,152 XDB01.DBF
              15 個檔案  1,261,815,296 位元組
               2 個目錄  7,966,683,136 可用位元組

D:\oracle\oradata\test>sqlplus "/as sysdba"

SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 9月 23 11:33:40 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

已連線到空閒例程。

SQL> startup;
ORACLE 例程已經啟動。

Total System Global Area  496049552 bytes
Fixed Size                   454032 bytes
Variable Size             201326592 bytes
Database Buffers          293601280 bytes
Redo Buffers                 667648 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 8 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 8: 'D:\ORACLE\ORADATA\TEST\TOOLS01.DBF'    --資料庫啟動報錯,找不到資料檔案


SQL>

SQL> exit
從Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中斷開

D:\oracle\oradata\test>rman target /

恢復管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

連線到目標資料庫: TEST (DBID=1964268543)

RMAN> restore datafile 8;

啟動 restore 於 23-9月 -08

正在使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00008恢復到D:\ORACLE\ORADATA\TEST\TOOLS01.DBF
通道 ORA_DISK_1: 已恢復備份段 1
段 handle=D:\BACKUP\BACKUP_0IJRABD7_1_1 tag=TAG20080923T112526 params=NULL
通道 ORA_DISK_1: 恢復完成
完成 restore 於 23-9月 -08

RMAN> recover datafile 8;

啟動 recover 於 23-9月 -08
使用通道 ORA_DISK_1

正在開始介質的恢復
完成介質的恢復

完成 recover 於 23-9月 -08

RMAN> alter database open;

資料庫已開啟

RMAN> exit


恢復管理器完成。

D:\oracle\oradata\test>sqlplus "/as sysdba"

SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 9月 23 11:37:22 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


連線到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

SQL> select count(*) from test;

  COUNT(*)
----------
   1888768

SQL>

--資料沒丟失 恢復成功

利用rman在open狀態下的恢復

D:\oracle\oradata\test>sqlplus "/as sysdba"

SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 9月 23 11:40:16 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


連線到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> exit
從Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中斷開

D:\oracle\oradata\test>del TOOLS01.DBF

D:\oracle\oradata\test>sqlplus "/as sysdba"

SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 9月 23 11:40:43 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

已連線到空閒例程。

SQL> startup;
ORACLE 例程已經啟動。

Total System Global Area  496049552 bytes
Fixed Size                   454032 bytes
Variable Size             201326592 bytes
Database Buffers          293601280 bytes
Redo Buffers                 667648 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 8 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 8: 'D:\ORACLE\ORADATA\TEST\TOOLS01.DBF'


SQL> alter database datafile 'D:\ORACLE\ORADATA\TEST\TOOLS01.DBF' offline;

資料庫已更改。

SQL> alter database open;

資料庫已更改。

SQL> exit
從Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中斷開

D:\oracle\oradata\test>rman target /

恢復管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

連線到目標資料庫: TEST (DBID=1964268543)

RMAN> restore datafile 8;

啟動 restore 於 23-9月 -08

正在使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=15 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00008恢復到D:\ORACLE\ORADATA\TEST\TOOLS01.DBF
通道 ORA_DISK_1: 已恢復備份段 1
段 handle=D:\BACKUP\BACKUP_0IJRABD7_1_1 tag=TAG20080923T112526 params=NULL
通道 ORA_DISK_1: 恢復完成
完成 restore 於 23-9月 -08

RMAN> recover datafile 8;

啟動 recover 於 23-9月 -08
使用通道 ORA_DISK_1

正在開始介質的恢復
完成介質的恢復

完成 recover 於 23-9月 -08

RMAN> exit


恢復管理器完成。

D:\oracle\oradata\test>sqlplus "/as sysdba"

SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 9月 23 11:42:47 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


連線到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

SQL> alter database datafile 'D:\ORACLE\ORADATA\TEST\TOOLS01.DBF' online;

資料庫已更改。

SQL> select count(*) from test;

  COUNT(*)
----------
   1888768

SQL>

--也恢復成功

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

相關文章