用冷備份+歸檔日誌執行不完全恢復一例

husthxd發表於2004-10-21

用冷備份+歸檔日誌執行不完全恢復一例


本文可以任意轉載,轉載時請務必以超連結形式標明文章原始出處和作者資訊及本宣告

http://blog.itpub.net/post/11/3523

用冷備份+歸檔日誌執行不完全恢復一例

 

windows 2000

oracle 10.1.0.2

 

有冷備份,歸檔日誌,當前的控制檔案和聯機重做日誌均已丟失.需要把資料庫恢復到指定的時間點上.

 

SQL> select *from v$version;

 

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Prod

PL/SQL Release 10.1.0.2.0 - Production

CORE    10.1.0.2.0      Production

TNS for 32-bit Windows: Version 10.1.0.2.0 - Production

NLSRTL Version 10.1.0.2.0 - Production

 

SQL>

SQL> set time on

14:00:33 SQL> shutdown immediate;

資料庫已經關閉。

已經解除安裝資料庫。

ORACLE 例程已經關閉。

14:00:57 SQL>

 

-- 在這裡進行冷備份

 

-- 重新啟動資料庫,輸入測試資料

14:00:57 SQL> set timing on

14:06:09 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

資料庫裝載完畢。

資料庫已經開啟。

14:06:31 SQL> conn test/test

已連線。

14:06:38 SQL> create table t2 (n1 number,n2 number);

 

表已建立。

 

已用時間:  00: 00: 00.81

14:06:57 SQL> insert into t2 values(1,1);

 

已建立 1 行。

 

已用時間:  00: 00: 00.01

14:07:07 SQL> insert into t2 values(2,2);

 

已建立 1 行。

 

已用時間:  00: 00: 00.01

14:07:11 SQL> commit;

 

提交完成。

 

已用時間:  00: 00: 00.09

14:07:12 SQL>

 

-- 執行日誌切換

-- 14:10分資料庫資料檔案/控制檔案/線上重做日誌全部丟失,

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

Thu Oct 21 14:13:52 2004

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

ORA-27041: ??????

OSD-04002: 無法開啟檔案

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

 

Thu Oct 21 14:13:52 2004

Controlfile identified with block size 0

Thu Oct 21 14:13:55 2004

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

 

-- 現需要用冷備份+歸檔日誌把資料庫恢復到14:08:00

以下為操作步驟:

1.         還原資料檔案冷備份(注意:無需還原冷備份備份的控制檔案和聯機重做日誌檔案)

2.         建立控制檔案

D:>set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

D:>sqlplus / as sysdba

 

SQL*Plus: Release 10.1.0.2.0 - Production on Thu Oct 21 14:13:36 2004

 

Copyright (c) 1982, 2004, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production

With the Partitioning, OLAP and Data Mining options

SQL> shutdown immediate;

ORA-01507: database not mounted

 

 

ORACLE instance shut down.

SQL> startup nomount

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

SQL> CREATE CONTROLFILE REUSE DATABASE "TEST" RESETLOGS  ARCHIVELOG

  2      MAXLOGFILES 16

  3      MAXLOGMEMBERS 3

  4      MAXDATAFILES 100

  5      MAXINSTANCES 8

  6      MAXLOGHISTORY 454

  7  LOGFILE

  8    GROUP 1 'F:ORACLEPRODUCT10.1.0ORADATATESTREDO01.LOG'  SIZE 10M,

  9    GROUP 2 'F:ORACLEPRODUCT10.1.0ORADATATESTREDO02.LOG'  SIZE 10M,

 10    GROUP 3 'F:ORACLEPRODUCT10.1.0ORADATATESTREDO03.LOG'  SIZE 10M

 11  -- STANDBY LOGFILE

 12  DATAFILE

 13    'F:ORACLEPRODUCT10.1.0ORADATATESTSYSTEM01.DBF',

 14    'F:ORACLEPRODUCT10.1.0ORADATATESTUNDOTBS01.DBF',

 15    'F:ORACLEPRODUCT10.1.0ORADATATESTSYSAUX01.DBF',

 16    'F:ORACLEPRODUCT10.1.0ORADATATESTUSERS01.DBF',

 17    'F:ORACLEPRODUCT10.1.0ORADATATESTTEST.DBF'

 18  CHARACTER SET ZHS16GBK

 19  ;

 

Control file created.

 

SQL>

3.         執行資料庫恢復

SQL> RECOVER DATABASE USING BACKUP CONTROLFILE until time '2004-10-21 14:08:00';

 

ORA-00279: change 423708 generated at 10/21/2004 14:00:53 needed for thread 1

ORA-00289: suggestion : E:ARCHIVETESTTEST_18_1_539975300.ARC

ORA-00280: change 423708 for thread 1 is in sequence #18

 

 

Specify log: {=suggested | filename | AUTO | CANCEL}

auto

Log applied.

Media recovery complete.

SQL> alter database open resetlogs;

 

Database altered.

 

4.         檢驗恢復是否成功

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            e:archivetest

Oldest online log sequence     0

Next log sequence to archive   1

Current log sequence           1

 

SQL> conn test/test

Connected.

SQL> select *From t2;

 

        N1         N2

---------- ----------

         1          1

         2          2

 

SQL>

 

至此,成功完成資料庫不完全恢復.

 

 

 

 

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

相關文章