这些主题描述了如何配置物理日志的大小和位置。
指定物理日志的位置
在数据库服务器初始化磁盘空间时,它将逻辑日志文件和物理日志放在根数据库空间中。
您对该放置没有初始控制权。要提高性能(尤其是减少对根数据库空间的写入次数以及将
GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 316 -
磁盘争用最小化),可将物理日志从根数据库空间移出至另一数据库空间(最好是不包含
活动表或逻辑日志文件的磁盘)。
建议: 找到容错存储设备上的关键数据库空间。如果物理日志所在的存储器不是容错存
储器,请对包含物理日志的数据库空间使用 GBase 8s 镜像。这将在存储设备发生故障
时保护数据库。
用于估计物理日志的大小的策略
物理日志的大小取决于两个因素:事务生成物理日志活动的速率和是否设置了
RTO_SERVER_RESTART 配置参数
事务生成物理日志活动的速率可影响检查点性能。在检查点处理期间,如果因事务持续生
成物理日志数据而导致物理日志开始变得太满,那么数据库服务器将阻塞事务以使检查点
完成,并避免物理日志溢出。
要避免事务阻塞,数据库服务器必须具有足够的物理日志空间来包含检查点处理期间出现
的所有事务活动。在物理日志填充度达到 75% 时触发检查点。在物理日志填充度达到 75%
时,必须在完成检查点处理之后才能使用剩余的 25% 的物理日志。一旦系统检测到有物理
日志溢出的可能性,就会发生事务阻塞,因为每个活动事务都可能生成一个物理日志活动。
例如,假设您具有 1 千兆字节的物理日志和 1000 个活动事务。如果每个事务同时处于临
界区,那么这 1000 个活动事务具有生成大约 80 兆字节物理日志活动的可能性。当填入
750 兆字节的物理日志时,数据库服务器将触发检查点。如果在使用 920 兆字节物理日志
时检查点仍未完成,那么将出现事务阻塞直到检查点完成。如果发生事务阻塞,那么服务
器将自动触发更频繁的检查点以避免事务阻塞。您可以禁用自动检查点的生成。
如果存在大量脏分区,那么即使物理日志填充度不到 75%,服务器也可能触发检查点,因
为将修改的分区数据清空到磁盘需要物理日志空间。
当服务器检查物理日志填充度是否达
到 75% 时,服务器还会检查以下情况是否为真:
(使用的物理日志页数 + 脏分区数量)>= ((物理日志大小 * 9)/10)
有关检查点处理和自动检查点的更多信息,请参阅检查点。
估计物理日志大小时要考虑的第二个因素取决于是否使用 RTO_SERVER_RESTART 配置参数
指定了快速恢复的目标时间量。如果无需考虑快速恢复时间,那么不需要启用
RTO_SERVER_RESTART 配置参数。如果为 RTO_SERVER_RESTART 配置参数指定值,那么事务
活动将生成附加物理日志活动。
通常,此附加物理日志活动对事务性能影响较小或没有影响。额外的日志记录用于在快速
恢复期间辅助缓冲池,以便以最佳方式执行日志重放。如果物理日志比所有缓冲池的总大
小要大很多,那么快速恢复期间将对页清空并出现缺页故障。页清空和缺页故障大幅减小
了快速恢复性能,而且数据库服务器不能维护 RTO_SERVER_RESTART 策略。
对于缓冲池空间小于 4 千兆字节的系统,物理日志的大小可定在所有缓冲池总大小的
110%。对于较大的缓冲池,以 4 千兆字节的物理日志空间开始,然后监视检查点活动。如
果检查点发生过于频繁,似乎会影响性能,请增加物理日志大小。
GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 317 -
为数据库服务器配置了较小的物理日志并且该服务器具有大量用户时,可能会出现一种称
为物理日志溢出的罕见情况。遵循上述有关大小的准则可帮助避免物理日志溢出。每当消
息日志检测到未达到最佳标准的配置时,数据库服务器将对其生成性能警告。
如果检测到未达最佳标准的配置,
那么您可以使用 onstat
-g
ckp 命令来显示配置建议。
事务日志记录关闭时物理日志溢出
如以下示例所示,如果您在事务日志记录关闭的数据库中使用简单大对象或智能大对象,
物理日志可能会溢出。
在数据库服务器处理简单大对象时,数据库服务器存储在磁盘上的简单大对象的每个部分
均可分别记录,允许线程退出各部分之间的代码临界区。但如果日志记录关闭,那么数据
库服务器必须对一个临界区中的简单大对象执行所有操作。如果该简单大对象很大,而物
理日志很小,那么该情况可能导致物理日志填满。如果发生这种情况,数据库服务器会将
以下消息发送至消息日志:
Physical log file overflow
然后数据库服务器启动关机操作。有关建议的更正操作,请参阅消息日志。