CUUG ORACLE检查点讲解

彻底理解检查点的功能、作用、原理

检查点的实际应用

 

 

检查点做什么:

    通知DBWn写脏块

    数据文件头 select name ,CHECKPOINT_CHANGE# from v$datafile_header;

    控制文件头 select name,CHECKPOINT_CHANGE# from v$datafile;

 

检查点号来源与SCN(System Change Number),
SCN是Oracle数据库中用来标识事务前后顺序的唯一序
列号。 

SCN是当 Oracle数据更新后,由 DBMS自动维护去累积递增的一个数字。当

一个事务 commit时,LGWR会将 log buffer写入 redo log file,同时也会将该事

务的 SCN同步写入到 redo log file内(wait-until-completed)。因此当你 commit

transaction时,在成功的讯息返回之前,LGWR必须先完整的完成上述行为之

后,否则你是看不到提交成功的响应讯息。

可以理解的,返回的 SCN,也是目前 redo log file最新的 SCN 纪录。因为

commit后的交易才会有 SCN,而一旦 commit就会立刻写入 redo log file中。

检查点的作用

? Checkpoints are used to determine where recovery should start
? Checkpoint position - where recovery starts
? Checkpoint queue - link list of dirty blocks

系统时间标记与 scn之间存在一张表,即 SYS下的 SMON_SCN_TIME。

每隔 5分钟,系统产生一次系统时间标记与 scn的匹配并存入

SYS.SMON_SCN_TIME表(由 SMON进程来进行 Update操作),该表中记录了

最近 1440个系统时间标记与 scn的匹配记录,由于该表只维护了最近的 1440条

记录,即最近 5天内的记录。

 

查看 SCN和 timestamp之间的对应关系:

select scn,to_char(time_dp,'yyyy-mm-dd hh24:mi:ss') from sys.smon_scn_time order

by 2;

 

查询当前的检查点号

select dbms_flashback.get_system_change_number from dual;

select current_scn from v$datafile;

 

转换

select scn_to_timestamp(4082040) from dual;

select timestamp_to_scn(to_date('2011-01-25 12:10:00','yyyy-mm-dd hh24:mi:ss'))

from dual;

 

checkpoint有两个目的:

1、确保数据一致性。

2、使数据库能快速地恢复

 

检查点类型:

全局检查点:

  关闭数据库

增量检查点:

  定期执行、只写最老的块S:

阶段性的保存操作的结果,以至于以后实例异常中断而
不要从头开始恢复(recovery),缩短实例恢复的时间,
类似于Word程序中设置了自动保存功能。

部分检查点

  和部分对象 如:TS 做检查点

 

部分检查点的作用
? 用来记录表空间何时开始备份,那么以后就从备份的点
(检查点)开始恢复(recovery),Oracle在做备份时
总是会发生一个检查点,用来记录开始备份的位置

 

部分检查点的影响
? Oracle会锁数据文件头,但是不会锁表空间,不影响
DML操作
? 把跟备份表空间相关的脏块写入数据文件
? 如果是UMAN(用户管理)备份方式,为了保证数据块
的一致性,会把被修改的数据块的镜像写入redolog,会
导致日志信息量增加

 

 

 

相关参数:

FAST_START_MTTR_TARGET 首选--建议

比如设定为60S,假定该值处于合理的情况之下,则一旦实例崩溃,在60S以内实例应当能够被恢复。合理即该值不能太大,也不能太小。太大则实例恢复所需的时间较长,太小则导致大量数据的及时写入,增加了系统的I/O。

FAST_START_MTTR_TARGET设置为0将关闭检查点自动调整功能。当设定一个大于0的值给FAST_START_MTTR_TARGET,则自动调整检查点功能将启用。

select target_mttr,estimated_mttr from v$instance_recovery;

 

select mttr_target_for_estimate,dirty_limit,estd_cache_writes,estd_cache_write_factor,estd_total_writes,estd_total_write_factor from v$mttr_target_advice;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/500314/viewspace-1069841/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/500314/viewspace-1069841/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值