oracle物理备份

ORACLE热备份恢复手册

1.   概要

1.1. 本文的目的

为了模拟测试oracle热备份的各种恢复情况,同时给以后工程人员一些实施借鉴,特地整理了本文档,在其中记录各种恢复的情况,以方便恢复时使用。

1.2. 系统概况

系统环境:hp unix11 oracle 9201

数据情况:一个系统文件、3个联机日志、一个回滚段表空、一个undo表空间、其他的数据文件,数据库当前使用undo

备份方式:热备份

备份文件:数据文件、归档日志、控制文件、初始化文件。

2.   恢复情况介绍

2.1. 模拟回滚表空间损坏丢失

当初设计时系统就同时并存了两种回滚段管理模式,目的就是当其中的一个出现问题的话,就可以立刻恢复。Undo8i时回滚段比,它的优势是自动管理回滚段,简化了管理工作。

下面介绍回滚表空间数据文件损坏时的恢复方式:

假设在undo表空间数据文件损坏时拥有所有的备份,系统存在回滚段表空间。

在数据库运行状态下删除undo表空间数据文件。

此时如果向数据库中写入数据,会出现如下错误:

SQL> exec sp_insert_del;
BEGIN sp_insert_del; END;

*
ERROR at line 1:
ORA-01116: error in opening database file 4
ORA-01110: data file 4: '/opt/oradata/openview/RBS2_1.dbf'
ORA-27041: unable to open file
HP-UX Error: 2: No such file or directory
Additional information: 3
ORA-06512: at "DBBACKUP.SP_INSERT_DEL", line 9
ORA-06512: at line 1

此时需要作的是修改数据库初始化参数,将他修改成为使用rollback_segment,同时将数据库加载,

SQL>startup mount pfile ='/opt/oracle/admin/openview/initopenview.ora'

然后删除回滚表空间的数据文件

SQL>alter database defile 4 offline off;

SQL>alter database open;

但是数据库启动后,察看如下信息,发现有大量属于回滚表空间的回滚段

SQL>select * from dba_rollback_segs;

此时如果想恢复原来的回滚表空间,需要修改初始化文件,在其中加入隐含参数_CORRUPTED_ROLLBACK_SEGMENTS,在其中加入回滚表空间的回滚段后,重新启动数据库,然后删除回滚表空间

SQL>drop tablespace undo2 INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;

重新创建回滚表空间后,修改初始化参数后,然后重新启动数据库即可。

总结:当回滚表空间发生损坏时,需要将系统重新启动,这是必须的,对于24小时系统来说,这无疑是极为不利的一种情况,在这种情况下,需要的是双机热备的系统来保证系统24小时不间断运行。当出现系统崩溃的情况时,毫无疑问,需要备份机立即切换来保证系统运行,然后及时恢复生产系统。

2.2. 模拟非系统数据文件丢失

当非系统数据文件损坏时,有三种恢复方式,一种是拥有数据文件备份、归档日志备份以及其他的相关文件,此时可以做到的是完全的恢复;一种是有数据文件备份,但是归档日志不全;一种是没有数据文件备份,此时就需要将系统down下,然后恢复。

下面介绍第一种情况的恢复:

在数据库运行状态下删除数据文件,如果此时系统没有down机,那么采用以下方式恢复

SQL> alter database datafile '/opt/oradata/openview/ts_iptool_1.dbf' offline;

Database altered.

将备份文件拷贝回来,将数据文件online,提示需要恢复数据文件。

SQL> alter database datafile '/opt/oradata/openview/ts_iptool_1.dbf' online;
alter database datafile '/opt/oradata/openview/ts_iptool_1.dbf' online
*
ERROR at line 1:
ORA-01113: file 19 needs media recovery
ORA-01110: data file 19: '/opt/oradata/openview/ts_iptool_1.dbf'

执行媒体恢复,可以将数据文件online,由于有所有的归档日志和联机日志都存在,因此没有数据丢失。

SQL> recover datafile '/opt/oradata/openview/ts_iptool_1.dbf';
Media recovery complete.
SQL> alter database datafile '/opt/oradata/openview/ts_iptool_1.dbf' online;

Database altered.

总结:在数据库运行状态下,如果有数据文件损坏不能读取时,数据库不至于down下,此时如果发现的话,在拥有所有备份和归档日志、联机日志的情况下,可以及时恢复。

当数据库已经宕下时,需要在数据加载时恢复,将数据文件拷贝到正确的位置后,恢复步骤如下:

SQL> startup mount

SQL> recover database;

SQL>alter database open;

总结:在这种情况下,对于24小时系统来说是一个损失,为了保证系统的正确运行,需要双机备份来保证系统的高可用性。

仅仅拥有数据文件和部分归档日志的恢复:

如果数据库处于打开状态时,先将数据文件offline

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值