首先,什么是FAST_START_MTTR_TARGET。参数FAST_START_MTTR_TARGET是指允许DBA指定数据库进行崩溃恢复需要的秒数。MTTR(mean time to restoration)指平均恢复时间。
恢复时间取决于读取log files的时间和处理需要恢复的数据块的时间。参数log_checkpoint_interval设定了恢复过程中将要被读的重做记录的数目。 fast_start_io_target控制了需要被恢复的数据块数目。然而,DBA可以通过单独设置参数来设置基于秒级的恢复时间限制。 LOG_CHECKPOINT_TIMEOUT限制了上一检查点和最近的重做记录之间的秒数。但他对于设置恢复时间限制来说都是不够精确的!
所以Oracle10r2后有了FAST_START_MTTR_TARGET,实际上这个参数被转化为设置参数FAST_START_IO_TARGET,LOG_CHECKPOINT_INTERVAL两个参数。这个特性大大简化了限定数据库恢复时间,并增加了准确性。ast_start_mttr_target是一个动态参数,可以在线修改。例如: alter system set fast_start_mttr_target =60;
数据库的恢复有两个步骤,Cache Recovery和Transaction Recovery。首先进行Cache Recovery,相当于一个Rolling Forward的过程。即oracle会应用redo log文件中所有已经提交或在当机时还未提交的变化(因为所有变化在写入数据文件前都会先记录到redo log文件中)。然后进行Transaction Recovery,相当于一个Rolling Back的过程。即为了使数据库达到一致性要求,Oracle会回退undo tablespace(Oracle10g中取消了rollback segments,因为回滚段管理起来太复杂)中的所有未提交事务。
Oracle会周期性的记录检查点(checkpoint)。关于checkpoint:
“A checkpoint is the highest system change number (SCN) such that all data blocks less than or equal to that SCN are known to be written out to the data files. If a failure occurs, then only the redo records containing changes at SCNs higher than the checkpoint need to be applied during recovery. The duration of cache recovery processing is determined by two factors: the number of data blocks that have changes at SCNs higher than the SCN of the checkpoint, and the number of log blocks that need to be read to find those changes.”
因为checkpoint会促使后台进程DBWn将脏数据写入数据文件,所以频繁的checkpointing writes有利于大大缩短数据库的恢复时间。但如此频繁的写入操作也会降低数据库的运行性能。如上面所说,这个频度由参数FAST_START_MTTR_TARGET决定。当FAST_START_MTTR_TARGET >0时,将会激活Fast-Start Fault Recovery 功能。关于Fast-Start Fault Recovery:
“The foundation of Fast-Start Fault Recovery is the Fast-Start checkpointing architecture. Instead of conventional event-driven (that is, log switching) checkpointing, which does bulk writes, fast-start checkpointing occurs incrementally. Each DBWn process periodically writes buffers to disk to advance the checkpoint position. The oldest modified blocks are written first to ensure that every write lets the checkpoint advance. Fast-Start checkpointing eliminates bulk writes and the resultant I/O spikes that occur with conventional checkpointing.”
一旦FAST_START_MTTR_TARGET被设定成实际可行的值时,那么你的数据库的平均恢复时间会尽量达到该值设定的大小。但有几点需要注意:
1. 当你设定FAST_START_MTTR_TARGET时必须禁用或者删除FAST_START_IO_TARGET, LOG_CHECKPOINT_INTERVAL, LOG_CHECKPOINT_TIMEOUT这三个参数。因为这三个参数将会和FAST_START_MTTR_TARGET互相干扰。
2. FAST_START_MTTR_TARGET的最大值是3600秒,当你设定的值超过3600秒,Oracle会按照3600秒来运行。
3. 请为FAST_START_MTTR_TARGET设置一个实际可行的值。原则上FAST_START_MTTR_TARGET的最小值是1秒(先不讨论0的情况),但是把数值设的很低并不意味着你可以达成这个目标,因为最低的MTTR TARGET是有限制的,它依赖于你数据库的启动时间等因素。你数据库实际能达到的MTTR TARGET称为effective MTTR target。你可以通过查询V$INSTANCE_RECOVERY视图的TARGET_MTTR列来查看该值。所以假如你将FAST_START_MTTR_TARGET设置过低不仅没有什么作用,反而还会因为频繁的checkpointing writes操作降低了数据库的性能。同样假如你将FAST_START_MTTR_TARGET设置过高,他也不会比在你数据库最遭情况下(整个缓存中都是脏数据)花的时间更长。(原文:If you set FAST_START_MTTR_TARGET to a time longer than the practical range, the MTTR target will be no better than the worst-case situation.)
相关推荐
Oracle 参数FAST_START_MTTR_TARGET的详细介绍
- 如果FAST_START_MTTR_TARGET设置为0,MTTR顾问将被禁用。 3. 关于外部表 - 外部表不支持所有DML操作(例如,不能更新)。 - 外部表支持ORACLE_DATAPUMP访问驱动。 - 外部表可以有扩展。 - 外部表可以存储在...
Oracle数据库从10gR2版本开始引入了一项名为FAST_START_MTTR_TARGET的参数,用于优化数据库的恢复时间,确保MTTR保持在一个可接受的范围内。 自动调整的检查点是Oracle 10gR2中引入的一个关键特性。传统的检查点...
在Oracle数据库中,当设置FAST_START_MTTR_TARGET参数时,数据库会调整日志写入频率和检查点间隔,从而尽可能地缩短实例恢复时间。 选项A表明,FAST_START_MTTR_TARGET不仅适用于ARCHIVELOG模式,而且也可以在...
日志切换可以通过ALTER SYSTEM SWITCH LOGFILE命令强制执行,而checkpoint可以通过设置FAST_START_MTTR_TARGET参数或使用ALTER SYSTEM CHECKPOINT命令实现。 为了提高数据安全性,Oracle推荐使用多路复用重做日志,...
- `fast_start_mttr_target`: 0 - `memory_max_target`: 0 - `memory_target`: 0 - `pga_aggregate_target`: 90M - `sga_target`: 272M 2. **查询PGA最大值**:通过查询`V$PGA_STAT`视图来确定当前数据库实例...
`ALTER SYSTEM SWITCH LOGFILE`命令用于强制切换日志,而`ALTER SYSTEM CHECKPOINT`或设置`FAST_START_MTTR_TARGET`参数可触发检查点,以提高故障恢复速度。 `ARCHIVE_LAG_TARGET`参数允许用户设置一个目标值,以...
fast_start_mttr_target integer 0 memory_max_target big integer 0 memory_target big integer 0 pga_aggregate_target big integer 90M sga_target big integer 272M ``` - 上述结果显示 `MEMORY_TARGET` ...
最后,关于FAST_START_MTTR_TARGET参数,它是Oracle数据库快速启动平均时间目标的设定,用于控制数据库启动和实例恢复的速度。这个参数关联的四个主要设置包括: 1. LOG_CHECKPOINTS_TO_ALERT:设置是否在alert log...
8. **初始化参数的作用**:如`FAST_START_MTTR_TARGET`参数,可以影响检查点的频率和数据库的快速启动时间。设置合适的参数值有助于平衡恢复速度和写入性能。 总之,理解并熟练掌握Oracle数据库中的重做日志文件...
当 FAST_START_MTTR_TARGET 设置为 0 时,意味着不考虑 MTTR(平均恢复时间),从而禁用了 MTTR 顾问的功能。 ### 3. 关于外部表的陈述 **题目**: Which two are true about external tables? **选项解释**: - ...
- `FAST_START_MTTR_TARGET`: 设置目标快速启动实例恢复时间,用于快速恢复数据库。 - `DB_RECOVERY_FILE_DEST`: 指定Fast Recovery Area的位置,存放归档日志和联机重做日志。 8. **文件系统参数** - `DB_...
为了优化实例恢复效率,可以调整检查点频率,通过调整`log_checkpoint_internal`、`fast_start_io_target`和`fast_start_mttr_target`等参数,减少实例恢复时的前滚操作量。同时,启用并行恢复机制,通过设置`...
- **选项C**:FAST_START_MTTR_TARGET 参数用于控制数据库的自动检查点调整策略。通过设置此参数,可以让Oracle自动调整检查点间隔,以达到目标平均恢复时间(MTTR),从而在性能和可恢复性之间取得平衡。 #### 问题2...
* `FAST_START_MTTR_TARGET`:设置快速启动目标,以提高数据库的性能。 * `STREAMS_POOL_SIZE`:设置流池的大小,以提高数据库的性能。 * `ARCHIVE_LAG_TARGET`:设置归档延迟目标,以避免归档延迟。 在设置完毕后...
*.fast_start_mttr_target=300 *.hash_join_enabled=TRUE *.job_queue_processes=2 *.large_pool_size=3145728 *.pga_aggregate_target=51200000 *.processes=100 *.remote_login_passwordfile='exclusive' ...
2. **定时 Checkpoint**:根据 `LOG_CHECKPOINT_TIMEOUT`、`LOG_CHECKPOINT_INTERVAL`、`fast_start_io_target` 和 `fast_start_mttr_target` 参数的设置,定时触发 Checkpoint。 3. **手动触发**:通过执行 `...
5. 当由初始化参数FAST_START_MTTR_TARGET指定的值被超过时,这通常与快速启动MTTR(Mean Time To Recovery)目标有关,旨在控制数据库恢复时间。 过多的检查点会导致不必要的I/O操作,影响数据库性能,而过少的...