一、指定日志传送模式
1、正常模式
一般正常模式是将存档文件传送到数据库服务器的另一个磁盘。
可以通过设置LOG_ARCHIVE_DEST_n或LOG_ARCHIVE_DEST参数来指定目标位置。
理想情况下,应该将已存档的重做日志文件以及相应数据库备份从本地磁盘中永久地转移到并不昂贵的脱机存储介质中,例如磁带。
2、备用传送模式
<建议在远程站点维护备用数据库,以尽量避免出现灾难性错误>
要将文件传送到备用数据库,ARCn需要:
① 识别远程位置(tnsname.ora)
② 通过RFS(远程文件服务器)进程传送已存档日志
RFS进程主要负责以下任务:
① 使用ARCn进程的网络I/O资源
② 在备用数据库上使用STANDBY_ARCHIVE_DEST参数创建文件
③ 在远程站点添加日志文件
④ 更新备用数据库的控制文件
<这样存档的文件主要用于维护备用数据库,该备用数据库是某个数据库的精确复制品>
二、管理存档目标失败
1、指定最小成功目标
指定参数 LOG_ARCHIVE_MIN_SUCCEED_DEST=n 来决定Oracle必须成功存档重做日志组的目标的最小数目,默认为1
2、指定强制目标和任选目标
使用
LOG_ARCHIVE_DEST_n参数来指定目标拥有OPTIONAL还是MANDATORY属性
① 不为目标指定MANDATORY属性和为其指定OPTIONAL属性是一样的
② 必须至少拥有一个可以声明OPTIONAL或MANDATORY属性的本地目标
③ 在至少一个本地目标上使用LOG_ARCHIVE_MIN_SUCCEED_DEST=n参数时,将按MANDATORY方式操作,因为最小值为1
④ 任何MANDATORY属性目标的失败,包括MANDATORY属性的备用目标,都和LOG_ARCHIVE_MIN_SUCCEED_DEST没有关系
⑤ LOG_ARCHIVE_MIN_SUCCEED_DEST不能比目标总数大,也不能比MANDATORY加上OPTIONAL的本地目标总和要大
⑥ 若果MANDATORY属性目标具有DEFER属性,且Oracle没有将已存档日志传送到备用站点情况下重写了联机日志,则必须手动传送
也可使用LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEXT来建立强制目标或任选目标
① 任何LOG_ARCHIVE_DEST声明的目标都是强制的
② 如果LOG_ARCHIVE_DUPLEX_DEXT=1,那么任何他来声明的目标都是任选的
③ 如果LOG_ARCHIVE_DUPLEX_DEXT=2,那么任何他来声明的目标都是强制的
3、方案举例
① 指定了3个全为OPTIONAL的本地目标位置,则LOG_ARCHIVE_MIN_SUCCEED_DEST
1---------仅在至少一个OPTIONAL目标成功的情况下,Oracle可重用日志文件
2---------仅在至少两个OPTIONAL目标成功的情况下,Oracle可重用日志文件
3---------仅在所有OPTIONAL目标成功的情况下,Oracle可重用日志文件
4+ -------出现错误:这个值大于目标总数
② 指定了2个MANDATORY、2个OPTIONAL的目标,则LOG_ARCHIVE_MIN_SUCCEED_DEST
1---------Oracle忽略这个值,并使用MANDATORY目标的数目(2)
2---------即使没有任何一个OPTIONAL成功,Oracle也可重用日志文件
3---------仅在至少一个OPTIONAL目标成功的情况下,Oracle可重用日志文件
4---------仅在两个OPTIONAL目标都成功的情况下,Oracle可重用日志文件
5+ -------出现错误:这个值大于目标的总数
4、重新存档到失败过的目标位置
设置LOG_ARCHIVE_DEST_n参数的REOPEN属性来指定重新存储到失败过的目标位置
REOPEN=n设置了ARCn打开失败过的目标所需要的最小秒数,默认为360秒,若设置为0则表示关掉REOPEN选项。
如果没有REOPEN选项,则失败后ARCn不再打开该目标
三、多个ARCn进程调整存档性能
一般来说ARCn都不会影响整个系统的性能,但是一些大型数据库站点上的存档将有一定的影响。如果ARCn运转的时间太快,则会消耗当前周期的CPU资源,而降低了系统性能,如果ARCn运转太慢,则又会让其他重做日志组等待,造成瓶颈。
可以通过设置多个ARCn进程来进行调节。Oracle可以通过LOG_ARCHIVE_MAX_PROCESSES = n来指定最多10个的ARCn进程,默认情况下参数值为1
可以使用 ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES = 2; 来限制当前进程数
另外,可通过 SELECT * FROM V$ARCHIVE_PROCESSES; 来查看每个进程的状态信息
当以下情况时,使用多个ARCn进程会比较有优势:
① 使用3个或3个以上的联机重做日志时
② 存档到不止一个目标位置时
下图说明了多个ARCn进程写入存档的逻辑:
四、跟踪存档日志进程
通过设置LOG_ARCHIVE_TRACE参数来指定trace level,具体定义如下:
0 :不允许存档日志跟踪(默认设置)
1 :跟踪重做日志文件的存档
2 :跟踪每个存档日志目标的存档状态
4 :跟踪存档操作的阶段
8 :跟踪存档日志目标的活动
16:跟踪详细的存档日志目标的活动
32:跟踪存档日志目标的参数修改
64:跟踪ARCn进程的状态活动
指定LOG_ARCHIVE_TRACE = n,这个n是各项跟踪级别的总和
例如n=12,代表跟踪4和8两项
ALTER SYSTEM SET LOG_ARCHIVE_TRACE = 12; --在下次存档操作启动时生效
五、查看已存档的重做日志信息
1、V$DATABASE :查看是否启用ARCHIVELOG模式
2、V$ARCHIVED_LOG :显示控制文件中的历史存档日志信息
3、V$ARCHIVE_DEST :描述当前的实例、所有存档目标、以及这些目标的当前值、模式、状态
4、V$ARCHIVE_PROCESSES :显示实例用到的各种存档进程的状态信息
5、V$BACKUP_REDOLOG :包含有关已存档的日志的任何备份信息
6、V$LOG :显示数据库所用的所有联机重做日志组,以及是否需要归档
7、V$LOG_HISTORY :包含日志历史信息,例如哪些已存档以及每个已存档日志的SCN范围
举例:
...
-The End-