Oracle数据库的备份及恢复策略研究(1)
文章作者 100test 发表时间 2007:03:14 13:43:11
来源 100Test.Com百考试题网
引言
随着信息系统在各种商务活动中重要性的不断增强,维护系统数据的可用性已成为当前一个十分重要的课题。为了有效地保持健康的信息系统,必须采取一定的措施防止在由介质、操作系统、软件和其它事件导致重要数据库文件严重损坏的情况下影响rdbms(关系数据库管理系统),进而影响信息系统的正常运行。这就需要在此类系统失败的情况履芄患笆薄⒂行у亟性帜鸦指础;指炊у氖菘馕募诤艽蟪潭壬先【鲇谒捎玫谋阜莶呗裕蚨疚亩阅壳傲餍械腛racle8数据库的备份及恢复策略进行了探讨。
数据库备份、恢复的基本规则
1、多工联机重作日志文件
每个数据库实例都有其自己的联机重作日志组,在操作数据库时,oracle首先将数据库的全部改变保存在重作日志缓冲区中,随后日志记录器进程(lgwr)将数据从系统共用区sga(system global area)的重作日志缓冲区写入联机重作日志文件,在磁盘崩溃或实例失败时,可以通过与之相关的联机重作日志来保护数据库,将损失降至最低,但oracle在默认的方式下只创建一组重作日志文件(每一组只有一个项目文件),为了减少丢失这些重要的重作日志文件的危险,因此需要对其进行镜像拷贝。
在oracle级多工联机重作日志文件,即增加多个文件到每个组以便镜像数据,这样i/o故障或写丢失只损坏一个拷贝,从而保证了lgwr后台进程至少能够向一个成员写入信息,数据库仍然可以继续运行。同时应保证日志组的成员不应驻存在同一物理设备上,因为这将削弱多重日志文件的作用。
2、镜像拷贝控制文件
控制文件描述通用的数据库结构,它存储了大量数据库状态信息,包括物理结构和联机重作日志文件在当时的名称、位置、状态。控制文件在数据库启动时被oracle实例读取,保持打开并随着操作而文件内容更新,直到实例关闭为止。在它打开的过程中能够同步需要恢复的信息,包括检查点信息,因此若损坏或丢失了控制文件,oracle将不能继续工作,因此应在系统中保持控制文件的多个拷贝,且这些拷贝应置于安装于不同磁盘控制器下的不同磁盘设备中。
由于oracle没有提供对控制文件多工的完整支持,因此应在对控制文件使用操作系统或硬件镜像,即在修改初始化文件的control_files参数后重新启动数据库前,应将控制文件复制到定义的新位置,否则数据库启动时将会出错。
3、激活归档进程
当数据库运行于noarchivelog模式下时,只能在完全关闭数据库后进行数据库的一致备份,并且同时禁用了联机重作日志的存档,这样在oracle实例失败时只能将数据库修复到最近的完整数据库备份时的那一点上,不能在失效点处对实例进行恢复。而在archivelog模式下,数据库不仅可以进行一致备份,还可以在数据库打开的情况下进行联机备份。通过数据库的备份和联机与存档的重作日志文件,用户可以恢复所有已提交的事务,并允许将数据库恢复到指定的时间、scn或日志系列号处,增大了恢复的灵活性,减少了故障时的数据丢失。因此数据库应运行于archivelog模式。