非歸檔模式下恢復資料庫兩例

husthxd發表於2004-10-23

加了一天班,現在在等著hp的工程師完工,心血來潮做了兩個實驗。

1.非歸檔模式下丟失所有的聯機日誌、有控制檔案和資料檔案備份的情況下恢復資料庫

2.非歸檔模式使用資料檔案冷備份執行不完全恢復


1. 非歸檔模式下丟失所有的聯機日誌、有控制檔案和資料檔案備份的情況下恢復資料庫

這幾天看了個帖子,內容是在儲存除重做日誌外的其他檔案的冷備份的情況下如何恢復資料庫,今天做了一個實驗,在把控制檔案、資料檔案還原後直接openresetlogs即可;

 

SQL> shutdown immediate;

資料庫已經關閉。

已經解除安裝資料庫。

ORACLE 例程已經關閉。

SQL> startup mount

ORACLE 例程已經啟動。

 

Total System Global Area  171966464 bytes

Fixed Size                   787988 bytes

Variable Size             145488364 bytes

Database Buffers           25165824 bytes

Redo Buffers                 524288 bytes

資料庫裝載完畢。

SQL> alter database noarchivelog;

 

資料庫已更改。

 

SQL> alter database open;

 

資料庫已更改。

 

SQL> shutdown immediate;

資料庫已經關閉。

已經解除安裝資料庫。

ORACLE 例程已經關閉。

SQL>

SQL>

 

n       做冷備份

 

n       刪除所有的控制檔案/資料檔案/聯機重做日誌

 

SQL> startup

ORACLE instance started.

 

Total System Global Area  171966464 bytes

Fixed Size                   787988 bytes

Variable Size             145488364 bytes

Database Buffers           25165824 bytes

Redo Buffers                 524288 bytes

ORA-00205: error in identifying controlfile, check alert log for more info

 

 

SQL>

 

-- alert.log中的錯誤:

ALTER DATABASE   MOUNT

Sat Oct 23 16:14:10 2004

ORA-00202: ????: 'F:ORACLEPRODUCT10.1.0ORADATATESTCONTROL01.CTL'

ORA-27041: ??????

OSD-04002: 無法開啟檔案

O/S-Error: (OS 2) 系統找不到指定的檔案。

 

Sat Oct 23 16:14:10 2004

Controlfile identified with block size 0

Sat Oct 23 16:14:13 2004

ORA-205 signalled during: ALTER DATABASE   MOUNT...

 

n       把資料檔案、控制檔案還原

n       重啟資料庫

 

SQL> shutdown immediate;

ORA-01507: database not mounted

 

 

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

 

Total System Global Area  171966464 bytes

Fixed Size                   787988 bytes

Variable Size             145488364 bytes

Database Buffers           25165824 bytes

Redo Buffers                 524288 bytes

Database mounted.

ORA-00313: open failed for members of log group 1 of thread 1

ORA-00312: online log 1 thread 1:

'F:ORACLEPRODUCT10.1.0ORADATATESTREDO01.LOG'

 

SQL>

 

SQL>

SQL>

SQL> recover database until cancel;

Media recovery complete.

SQL> alter database open resetlogs;

 

Database altered.

 

SQL> archive log list;

Database log mode              No Archive Mode

Automatic archival             Disabled

Archive destination            e:archivetest

Oldest online log sequence     1

Current log sequence           1

SQL>

 

 

2.非歸檔模式使用資料檔案冷備份執行不完全恢復

 

SQL> set time on

18:08:15 SQL> set timing on

18:08:17 SQL> startup

ORACLE 例程已經啟動。

 

Total System Global Area  171966464 bytes

Fixed Size                   787988 bytes

Variable Size             145488364 bytes

Database Buffers           25165824 bytes

Redo Buffers                 524288 bytes

資料庫裝載完畢。

資料庫已經開啟。

18:08:39 SQL> archive log list

資料庫日誌模式             非存檔模式

自動存檔             禁用

存檔終點            e:archivetest

最早的聯機日誌序列     1

當前日誌序列           2

 

18:08:43 SQL> shutdown immediate;

資料庫已經關閉。

已經解除安裝資料庫。

ORACLE 例程已經關閉。

18:09:21 SQL>

 

n       這裡執行冷備份

n       輸入測試資料

 

18:09:21 SQL> startup

ORACLE 例程已經啟動。

 

Total System Global Area  171966464 bytes

Fixed Size                   787988 bytes

Variable Size             145488364 bytes

Database Buffers           25165824 bytes

Redo Buffers                 524288 bytes

資料庫裝載完畢。

資料庫已經開啟。

18:14:46 SQL>

18:14:54 SQL>

18:14:55 SQL> conn test/test

已連線。

18:15:00 SQL> create table t1 (c1 number);

 

表已建立。

 

已用時間:  00: 00: 00.23

18:15:58 SQL> insert into t1 values(1);

 

已建立 1 行。

 

已用時間:  00: 00: 00.03

18:16:03 SQL> commit;

 

提交完成。

 

已用時間:  00: 00: 00.01

18:16:08 SQL>

18:16:43 SQL>

18:17:11 SQL> drop table t1;

 

表已刪除。

 

已用時間:  00: 00: 00.15

18:17:17 SQL> conn / as sysdba

已連線。

18:17:24 SQL> shutdown immediate;

資料庫已經關閉。

已經解除安裝資料庫。

ORACLE 例程已經關閉。

18:17:52 SQL>

 

n       還原資料檔案冷備份(不還原控制檔案和聯機重做日誌)

n       進行不完全恢復

 

18:17:52 SQL>

18:23:39 SQL> startup mount

ORACLE 例程已經啟動。

 

Total System Global Area  171966464 bytes

Fixed Size                   787988 bytes

Variable Size             145488364 bytes

Database Buffers           25165824 bytes

Redo Buffers                 524288 bytes

資料庫裝載完畢。

18:23:52 SQL> recover database until time '2004-10-23 18:17:00';

完成介質恢復。

18:24:27 SQL> alter database open resetlogs;

 

資料庫已更改。

 

已用時間:  00: 00: 21.57

18:24:55 SQL> conn test/test

已連線。

18:25:01 SQL> select *From t1;

 

        C1

----------

         1

 

已用時間:  00: 00: 00.07

18:25:06 SQL>

 

恢復成功。

 

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

相關文章