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