2

LOG_CHECKPOINT_INTERVAL 和 LOG_CHECKPOINT_TIMEOUT 有什么区别?我需要清楚地了解基于体积的间隔和基于时间的间隔。LOG_CHECKPOINT_TIMEOUT、LOG_CHECKPOINT_INTERVAL 和 FAST_START_IO_TARGET 之间有什么关系?

4

1 回答 1

6

检查点是数据库将缓冲区高速缓存中的脏块与数据文件同步时。也就是说,它将更改的数据写入磁盘。您提到的两个 LOG_CHECKPOINT 参数控制此活动发生的频率。

问题的核心是:如果检查点不经常发生,那么在发生崩溃时恢复数据库将需要更长的时间,因为它必须从重做日志中应用大量数据。另一方面,如果检查点出现过于频繁,则数据库可能会因为各种后台进程成为瓶颈而被占用。

两者的区别在于 INTERVAL 指定检查点之间可以存在的最大重做块数量,而 TIMEOUT 指定检查点之间的最大秒数。我们需要设置这两个参数以适应繁重活动的峰值。请注意,LOG_CHECKPOINT_INTERVAL 是在操作系统块而不是数据库块中测量的。

FAST_START_IO_TARGET 是一个不同的主张。它指定恢复数据库所需的 I/O 数量的目标。然后数据库智能地管理其检查点以实现此目标。同样,这是恢复时间和后台活动量之间的权衡,尽管对正常处理的影响应该小于错误设置的 LOG_CHECKPOINT 参数。此参数仅适用于企业版。它在 9i 中被弃用,取而代之的是FAST_START_MTTR_TARGET,Oracle 在 10g 中将其删除。有一个视图V$MTTR_TARGET_ADVICE,呃,它提供有关设置 FAST_START_MTTR_TARGET 的建议。

我们应该设置 FAST_START%TARGET 或 LOG_CHECKPOINT_% 参数,但不能同时设置。设置 LOG_CHECKPOINT_INTERVAL 将覆盖 FAST_START_MTTR_TARGET 的设置。

于 2010-08-29T08:48:44.830 回答