2.3.1 配置ARCHIVELOG模式
可在关闭数据库时执行一致的脱机备份。但是,如果数据库以ARCHIVELOG模式运行,而且备份的执行方法得当,就可以在数据库打开时执行数据库的物理文件备份。这些备份称为联机备份。
Oracle以循环方式写入联机重做日志文件:在填满第一个日志文件后,它开始写入第二个日志文件,在填满第二个日志文件后,它开始写入第三个日志文件,依此类推。在填满最后一个联机重做日志文件后,LGWR后台进程开始覆盖第一个重做日志文件的内容。
当Oracle以ARCHIVELOG模式运行时,ARCn后台进程会在LGWR进程完成写入后制作每个重做日志文件的副本。通常将这些归档的重做日志文件写入磁盘设备中。也可以将这些文件直接写入磁带设备,但这种做法需要执行密集的操作,对于忙碌的数据库而言,由于需要等待LGWR进程将重做日志文件写入磁带,所以速度极可能变慢。你很可能需要将归档重做日志文件写入磁盘,然后将归档的日志文件发送到磁带中,或在满足保留策略后将其删除。
要使用ARCHIVELOG功能,首先必须使数据库进入ARCHIVELOG模式。以ARCHIVELOG模式启动数据库前,务必使用以下的一种配置(按优先顺序排列):
●仅启用指向快速恢复区的归档操作。使用包含快速恢复区的磁盘上的磁盘镜像。DB_RECOVERY_FILE_DEST参数指定包含快速恢复区的文件系统位置或ASM磁盘组。
●启用对快速恢复区的归档,并至少设置一个指向快速恢复区以外的另一位置的LOG_ARCHIVE_DEST_n参数。在本章2.3.2节“利用多个归档目标”中将介绍如何利用多个归档目标。
●至少设置两个LOG_ARCHIVE_DEST_n参数,以便归档到非快速恢复区目标。
下例假设选择了最佳配置:单个镜像快速恢复区。下面的列表显示了将数据库置于ARCHIVELOG模式的步骤。首先关闭数据库,然后发出以下命令:
SQL> shutdown immediate SQL> startup mount SQL> alter database archivelog; SQL> alter database open;
提示:
要查看当前活动的联机重做日志及其序列号,请查询V$LOG动态视图。
如果启用了归档但未指定任何归档位置,那么归档的日志文件将位于与平台相关的默认位置。在Linux平台上,默认位置是$ORACLE_HOME/dbs。
每个归档重做日志文件都包含来自单个联机重做日志的数据。它们按创建顺序编号。归档重做日志文件的大小会有变化,但不会超过联机重做日志文件的大小。当联机重做日志文件达到指定的最大大小时,会将重做日志文件复制到一个新的归档日志文件中,然后循环使用此重做日志文件,供新的重做日志项重用。
如果归档重做日志文件的目标目录空间不足,则在目标目录中释放空间前,ARCn进程将停止处理联机重做日志数据,数据库将会停止。确保目标目录中有足够的空间。
可以为归档重做日志文件目标磁盘添加更多空间,或备份归档重做日志文件然后将其从此目录中删除,以此来解决这种问题。如果在为归档重做日志文件使用快速恢复区,那么,如果快速恢复区的可用空间小于15%,数据库将发出警告性警报(通过电子邮件或Enterprise Manager Cloud Control 12c主页发布);如果可用空间小于3%,将发出重要警报。
在可用空间小于15%时就采取行动,例如增加空间或更改快速恢复区的位置,如果没有失控进程(例如在生产环境中运行的未经测试的SQL代码)在使用快速恢复区中的空间,这些做法极有可能避免服务中断现象的发生。