ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 用冷备份+归档日志执行不完全恢复一例

用冷备份+归档日志执行不完全恢复一例

原创 Linux操作系统 作者:husthxd 时间:2004-10-21 00:00:00 0 删除 编辑

用冷备份+归档日志执行不完全恢复一例


本文可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明

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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
ITPUB数据库版块资深版主,对Oracle、PostgreSQL有深入研究。

注册时间:2007-12-28

  • 博文量
    1559
  • 访问量
    4230616