ITPub博客

首页 > 数据库 > Oracle > ORACLE备份&恢复案例(2)

ORACLE备份&恢复案例(2)

原创 Oracle 作者:jss001 时间:2009-02-14 19:50:26 0 删除 编辑

第三章. 了解与恢复相关的信息

1、理解报警日志文件

报警日志文件一般记载了数据库的启动/关闭信息,归档信息,备份信息,恢复信息,常见错误信息,部分数据库修改记录等。一般令名规则为Alrt.log或Alrt.log,如我的测试数据库的报警日志文件的名称为testalrt.log。

报警日志文件的路径是根据初始化参数background_dump_dest来决定的,如在我的机器上,该参数值为 D:Oracleadmintestbdump,那么,你就可以在该路径下找到该文件

2、后台进程跟踪文件

后台进程跟踪文件的路径与报警日志文件的路径一致,在某些情况下,你可以通过后台跟踪文件的信息了解更多的需要恢复的信息。如在数据库需要恢复的时候,报警日志文件中常有这样的语句:

Errors in file D:OracleadmintestbdumptestDBW0.TRC:

ORA-01157: cannot identify/lock data file 1 - see DBWR trace file

通过提示的DBWR跟踪文件,可以查询到更详细的信息。

3、v$recover_file与v$recovery_log

这是两个动态性能视图,可以在mount下查看,通过这两个视图,你可以了解详细的需要恢复的数据文件与需要使用到的归档日志。

第四章. 数据库恢复案例

4.1非归档模式下的备份与恢复

备份方案:采用OS冷备份

1.连接数据库并创建测试表

SQL*Plus: Release 8.1.6.0.0 - Production on Tue May 6 13:46:32 2003

(c) Copyright 1999 Oracle Corporation. All rights reserved.

SQL> connect internal/password as sysdba;

Connected.

SQL> create table test(a int);

Table created

SQL> insert into test values(1);

1 row inserted

SQL> commit;

Commit complete

2.备份数据库

SQL> @coldbak.sql 或在DOS下 svrmgrl @coldbak.sql

3.再插入记录

SQL> insert into test values(2);

1 row inserted

SQL> commit;

Commit complete

SQL> select * from test;

A

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

1

2

4.关闭数据库

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

5.毁坏一个或多个数据文件,如删除user01.dbf

C:>del D:ORACLEORADATATESTUSERS01.DBF

模拟媒体毁坏

6.重新启动数据库,会发现如下错误

SQL> startup

ORACLE instance started.

Total System Global Area 102020364 bytes

Fixed Size 70924 bytes

Variable Size 85487616 bytes

Database Buffers 16384000 bytes

Redo Buffers 77824 bytes

Database mounted.

ORA-01157: cannot identify/lock data file 3 - see DBWR trace file

ORA-01110: data file 3: 'D:ORACLEORADATATESTUSERS01.DBF'

在报警文件中,会有更详细的信息

Errors in file D:OracleadmintestbdumptestDBW0.TRC:

ORA-01157: cannot identify/lock data file 3 - see DBWR trace file

ORA-01110: data file 3: 'D:ORACLEORADATATESTUSERS01.DBF'

ORA-27041: unable to open file

OSD-04002: unable to open file

O/S-Error: (OS 2) 系统找不到指定的文件。

7.拷贝备份复原到原来位置(restore过程)

C:>xcopy d:database*.* d:oracleoradatatest/H/R/S

8.打开数据库,检查数据

SQL> alter database open;

Database altered.

SQL> select * from test;

A

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

1

这里可以发现,数据库恢复成功,但在备份之后与崩溃之前的数据丢失了。

说明:

1、非归档模式下的恢复方案可选性很小,一般情况下只能有一种恢复方式,就是数据库的冷备份的完全恢复,仅仅需要拷贝原来的备份就可以(restore),不需要recover。

2、这种情况下的恢复,可以完全恢复到备份的点上,但是可能是丢失数据的,在备份之后与崩溃之前的数据将全部丢失。

3、不管毁坏了多少数据文件或是联机日志或是控制文件,都可以通过这个办法恢复,因为这个恢复过程是Restore所有的冷备份文件,而这个备份点上的所有文件是一致的,与最新的数据库没有关系,就好比把数据库又放到了一个以前的“点”上。

4、对于非归档模式下,最好的办法就是采用OS的冷备份,建议不要用RMAN来作冷备份,效果不好,因为RMAN不备份联机日志,restore不能根本解决问题。

5、如果没有备份联机日志,如RMAN的备份,就需要利用不完全恢复(until cancel)的方法来重新创建联机日志文件

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/18921899/viewspace-1017351/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    306
  • 访问量
    871833