电脑技术学习

ORACLE数据库中备份与恢复问题简介

dn001

3归档日志

Oracle要将填满的在线日志文件组归档时,则要建立归档日志,或称离线日志。其对数据库后备和恢复有下列用处:

数据库后备以及在线和归档日志文件,在操作系统或磁盘故障中可保证全部提交的事务可被恢复。

在数据库打开时和正常系统使用下,如果归档日志是永久保持,在线后备可以进行和使用。

如果用户数据库要求在任何磁盘故障的事件中不丢失任何数据,那么归档日志必须要存在。归档已填满的在线日志文件可能需要DBA执行额外的管理操作。

归档机制:决定于归档设置,归档已填满的在线日志组的机制可由Oracle后台进程ARCH自动归档或由用户进程发出语句手工地归档。当日志组变为不活动、日志开关指向下一组已完成时,ARCH可归档一组,可存取该组的任何或全部成员,完成归档组。在线日志文件归档之后才可为LGWR重用。当使用归档时,必须指定归档目标指向一存储设备,它不同于个有数据文件、在线日志文件和控制文件的设备,理想的是将归档日志文件永久地移到离线存储设备、如磁带。

数据库可运行在两种不同方式下:NOARCHIVELOG方式或ARCHIVELOG方式。数据库在NOARCHIVELOG方式下使用时,不能进行在线日志的归档。在该数据库控制文件指明填满的组不需要归档,所以一当填满的组成为活动,在日志开关的检查点完成,该组即可被LGWR重用。在该方式下仅能保护数据库实例故障,不能保护介质(磁盘)故障。利用存储在在线日志中的信息,可实现实例故障恢复。

4数据库后备

不管为ORACLE数据库设计成什么样的后备或恢复模式,数据库数据文件、日志文件和控制文件的操作系统后备是绝对需要的,它是保护介质故障的策略部分。操作系统后备有完全后备和部分后备

完全后备:一个完全后备将构成ORACLE数据库的全部数据库文件、在线日志文件和控制文件的一个操作系统后备。一个完全后备在数据库正常关闭之后进行,不能在实例故障后进行。在此时,所有构成数据库的全部文件是关闭的,并与当前点相一致。在数据库打开时不能进行完全后备。由完全后备得到的数据文件在任何类型的介质恢复模式中是有用的。

部分后备

部分后备为除完全后备外的任何操作系统后备,可在数据库打开或关闭下进行。如单个表空间中全部数据文件后备、单个数据文件后备和控制文件后备。部分后备仅对在ARCHIVELOG方式下运行数据库有用,因为存在的归档日志,数据文件可由部分后备恢复。在恢复过程中与数据库其它部分一致。

5数据库恢复

实例故障的恢复

当实例意外地(如掉电、后台进程故障等)或预料地(发出SHUTDOUM ABORT语句)中止时出现实例故障,此时需要实例恢复。实例恢复将数据库恢复一故障之前的事务一致状态。如果在在线后备发现实例故障,则需介质恢复。在其它情况Oracle在下次数据库起动时(对新实例装配和打开),自动地执行实例恢复。如果需要,从装配状态变为打开状态,自动地激发实例恢复,由下列处理:

(1)为了解恢复数据文件中没有记录的数据,进行向前滚。该数据记录在在线日志,包括对回滚段的内容恢复。

(2)回滚未提交的事务,按步1重新生成回滚段所指定的操作。

(3)释放在故障时正在处理事务所持有的资源。

(4)解决在故障时正经历一阶段提交的任何悬而未决的分布事务。