DYNAMIC_LOGS 及其对日志记录的影响

动态日志文件分配功能可防止由于数据库服务器未用完日志空间而由长事务回滚导致的挂起问题。DYNAMIC_LOGS 配置参数指定动态日志文件分配功能是关闭还是开启,或者使服务器暂停以允许手动添加逻辑日志文件。

动态日志分配使您能够执行以下操作:
DYNAMIC_LOGS 配置参数的缺省值为 2,这表示当数据库服务器检测到包含打开的事务的下一个日志文件时,它自动在当前日志文件之后分配新的逻辑日志文件。数据库服务器自动检查在以下时刻位于当前日志之后的日志是否仍然包含打开的事务:
当使用 DYNAMIC_LOGS 的缺省值 2 时,数据库服务器为您确定新逻辑日志的位置和大小:
如果要控制附加日志文件的位置和大小,那么将 DYNAMIC_LOGS 设置为 1。当数据库服务器切换日志文件时,它仍会检查下一个活动的日志是否包含打开的事务。如果在下一个活动的日志中的确发现了打开的事务,那么数据库服务器执行以下操作:

可以编写将在警报事件 27 发生时执行的脚本,执行带有要用于新日志的位置的 onparams -a -i。您的脚本还可以执行 onstat -d 命令,以检查是否有足够的空间,并执行带有足够空间的位置的 onparams -a -i 命令。必须使用 -i 选项在当前日志文件之后添加新的日志。

如果将 DYNAMIC_LOGS 设置为 0,那么数据库服务器仍检查在切换日志文件时下一个活动的日志是否包含打开的事务。如果在下一个活动的日志中的确找到了打开的事务,那么数据库服务器发出以下警告:
警告:最旧逻辑日志文件 (%d) 包含来自打开的事务 (0x%p) 的记录,但是动态日志文件
功能已关闭。