oracle不一致性关闭下次,oracle的备份与恢复

提示:在使用部分数据库联机备份时,应该尽量缩短执行alter tablespace ..begin backup和alter tablespace ..end backup语句之间的时间间隔。因为在这段时间内,备份表空间的脏缓冲区块将被写到联机重做日志中,可能会对数据库的性能产生影响。

5.备份控制文件

由于数据库的结构信息存储在控制文件中,所以控制文件的备份和恢复在数据库的备份恢复过程中十分关键。

备份控制文件的实现主要有以下3种方法:

1.使用操作系统copy命令,在数据库关闭时对控制文件进行复制。

2.利用alter database backup controlfile to语句,将控制文件备份到二进制文件中。

alter database backup controlfile to location;location指定控制文件备份副本的目标位置和文件名。

例如,对控制文件control01.dbf进行备份,如下:

alter database backup controlfile to 'F:\Oracle11g\11gsetup\oradata\orcl\control\control01.ctl';

3.利用alter database backup controlfile to trace语句,将控制文件备份到后台跟踪文件中。

该语法不带任何参数

alter database backup controlfile to trace

技巧:通过这种方式备份控制文件,备份文件中存放的是创建控制文件的脚本,可以用记事本等文本编辑器打开,通过这个脚本可以重新创建控制文件。

提示:oracle推荐使用第二种方法来备份控制文件。第一种方法备份的控制文件,一般用于全库一致性恢复。而第三种方法会丢失归档日志的历史信息、脱机表空间信息等。

用户管理的完全恢复

使用完全数据库恢复方法可以将数据库恢复到失败点,这时丢失的所有数据都被恢复。根据数据库文件的破坏情况不同,使用不同的方法。例如,如果数据库运行在归档模式下,可以考虑使用归档模式下的完全恢复;如果数据文件被物理破坏,而数据库还处于打开状态,可以进行脱机的表空间恢复。

1.用户管理的完全恢复机制

用户管理的完全恢复是指当数据文件出现介质失败时,使用操作系统命令转储数据文件,并使用SQL恢复命令执行重做日志和归档日志,最终将数据文件恢复到失败点之前的状态。对数据库进行完全恢复大致分为以下两个步骤:

1.当发生介质故障后,利用备份文件来修复损坏或丢失的数据文件。

2.修复数据文件后,因为被修复的数据文件与其他数据文件相比要“旧”,所以这时数据库中的数据文件并不同步(文件头部信息中的检查点号SCN不同)。由于数据文件之间不一致,数据库仍然无法打开,这时就需要通过SQL命令,使用归档日志对数据库进行恢复。

技巧:归档日志恢复过程又包含两个主要步骤:缓存恢复和事务恢复。在缓存恢复完成后,数据库即可打开。但此时数据库中可能含有提交的事务,因此使用事务恢复将提交所有的事务,使数据库文件达到一致状态。

2.非归档模式下的数据库恢复

如果数据库运行在非归档模式下,这时某一个数据文件被破坏,则数据库不能启动,对其恢复时,就需要使用非归档模式下的数据库恢复。

恢复非归档模式的数据库,必须恢复所有备份的数据库文件,恢复过程只需要DBA从最后一个有效的数据库备份中复制文件并覆盖当前文件,然后启动数据库即可。

注意:恢复非归档模式的数据库,即使只损坏或丢失其中一个数据文件,也必须恢复所有备份的数据文件。如果恢复过程没有包括某一个备份的数据文件,数据库就处于一种不一致的状态,就会产生一个错误信息。

下面介绍非归档模式下的数据库恢复。首先模拟需要使用非归档模式恢复数据库的情况,这里通过删除(或移动)一个数据文件实现,然后使用非归档模式执行恢复。

1.实现数据文件损坏

a.登录数据库,并启用SYSDBA权限,如下:

connect /as sysdbab.关闭数据库,对数据库文件进行脱机备份

c.重新启动数据库,并在USERS表空间中创建一个表backuptest,如下:

create table backuptest(

id number(4),

name varchar2(40)

)

tablespace users;

commit;d.使用shutdown immediate语句关闭数据库,然后删除(或移动)数据文件USERS01.DBF

e.重新启动数据库,数据库无法找到USERS01.DBF

2.使用非归档模式的恢复

由于缺少数据文件USERS01.DBF,数据库无法重新启动,接下来进行数据库恢复操作。如果只恢复被损坏的文件,数据文件之间不同步,那么数据库仍然无法启动,只有对全部备份数据库文件都实行操作,才能达到恢复的结果,具体步骤如下:

a.关闭数据库,然后将备份文件中的USERS01.DBF复制到数据库目录中,如下:

shutdown immediate;

host copy f:\oracle11g\11gsetup\oradata\users01.dbf

f:\oracle11g\11gsetup\oradata\orcl\users01.dbf;b.在启动数据库时,由于被修复的数据文件与其他文件不同步,那么系统将要求对数据库进行介质恢复,表示使用单个数据文件不足以恢复数据库

提示:介质恢复需要使用归档的重做日志文件来使所恢复的数据文件处于一致的状态。因为数据库是在noarchivelog模式中运行的,所以无法对USERS01.DBF文件来执行介质恢复。

恢复数据库的唯一方法是从脱机备份中恢复所有数据文件,这个备份集中包含了处于一致状态的数据库,但是新创建的表backuptest不会存在。

c.使用操作系统命令,恢复在脱机备份中创建的所有数据库文件

d.使用startup命令打开数据库

e.使用select命令查看表backuptest,确认该表不存在

3.归档模式下的数据文件恢复

恢复归档模式下的数据库,实现过程是将备份的数据文件的副本放在数据库数据文件夹中,然后重新启动数据库,这将启动实例并打开控制文件,然后可以使用recover命令,并重新应用归档的重做日志中的事务。

提示:当数据文件出现介质损坏时,在执行SQL命令恢复数据库之前,必须通过操作系统命令修复数据文件。如果数据文件被误删除,那么只需将备份文件放回原位置即可。

如果是数据文件所在磁盘出现损坏,那么需要将数据文件复制到其他磁盘,并且还需要修改控制文件,定位该数据文件。

当数据库处于MOUNT状态时,DBA可以改变任何数据文件的位置,但主要改变SYSTEM表空间数据文件的位置。

当数据库处于OPEN状态下,DBA可以改变除SYSTEM表空间外的数据文件的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值