当前位置:  数据库>oracle

基于日志却采用三种方法来区别增量检查点和完全检查点

    来源: 互联网  发布时间:2017-04-28

    本文导语: 增量检查点的作用是为了均衡负载,由fast_start_mttr_target这个参数触发,增量渐进写出。所以,CHECKPOINT_CHANGE#会有延迟,不会马上更新。下面用三种方法证明:法一:理论:日志却会有active,即:被RBA指针覆盖的日志。如是完全...

增量检查点的作用是为了均衡负载,由fast_start_mttr_target这个参数触发,增量渐进写出。所以,CHECKPOINT_CHANGE#会有延迟,不会马上更新。
下面用三种方法证明:
法一:
理论:日志却会有active,即:被RBA指针覆盖的日志。如是完全检查点,则RBA会一下子干到重做日志组的最后一条,没有了RBA,那么日志的状态便是inactive了;而如是增量检查点,则RBA会慢慢下移,有被RBA覆盖的都是active。Oracle总是希望RBA与重做日志组的最后一条的距离最短,增量检查点就是时不时要移动它。
实验:
SQL> alter system switch logfile;




System altered

SQL> select group#,status from v$log;

    GROUP# STATUS
---------- ----------------
         1 CURRENT
         2 INACTIVE
         3 ACTIVE



SQL> alter system switch logfile;

System altered

SQL> select group#,status from v$log;

    GROUP# STATUS
---------- ----------------
         1 ACTIVE
         2 CURRENT
         3 ACTIVE



法二:
理论:增量检查点没有全部写,所以checkpoint_change#没有马上更新;但完全检查点,因为全部写,checkpoint_change#会马上更新。
实验:
SQL> select checkpoint_change# from v$database;


CHECKPOINT_CHANGE#
------------------
           1716093

SQL> alter system checkpoint;

System altered

SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#
------------------
           1716275

法三:
实验:
SQL> show parameter log_checkpoints_to_

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_checkpoints_to_alert             boolean     FALSE

SQL> alter system set log_checkpoints_to_alert=true;

System altered

SQL> alter system checkpoint;

System altered

手工触发一个完全检查点,告警日志记录如下:
Thu Jun 07 01:27:17 2012
Beginning global checkpoint up to RBA [0x2d.1e4.10], SCN: 1716634
Completed checkpoint up to RBA [0x2d.1e4.10], SCN: 1716634



接下来手工触发一个增量检查点:
SQL> alter system switch logfile;

System altered
告警日志如下:
Thu Jun 07 01:28:15 2012
Beginning log switch checkpoint up to RBA [0x2e.2.10], SCN: 1716660
Thread 1 advanced to log sequence 46
  Current log# 3 seq# 46 mem# 0: D:ORACLEPRODUCT10.2.0ORADATAORCLONLINELOGO1_MF_3_7TQZWZOY_.LOG
  Current log# 3 seq# 46 mem# 1: D:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAORCLONLINELOGO1_MF_3_7TQZX11D_.LOG





从这两个告警日志中,我们可以看到,完全检查点会马上将RBA下移,而增量检查点就会悠着点了。

更多Oracle相关信息见 专题页面


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教 一个shell问题 如何通过shell获得一个日志文件中的增量部分
  • 修改数据库文件及日志文件增量的sql语句
  • python异常信息堆栈输出到日志文件
  • linux下系统日志 操作日志 告警日志怎么存储啊?
  • 不同版本MSSQL清除日志方法介绍
  • solaris的系统日志文件叫什么名字?在什么目录下??如何打开/关闭系统日志????
  • Docker支持更深入的容器日志分析
  • 如何关闭red hat 7.3的核心日志和系统日志
  • ubuntu查看系统日志及相关文件介绍
  • 请问程序的日志重定向到别日志文件,系统会对该日志文件的大小作限制么
  • docker源码分析之容器日志处理与log-driver实现
  • 用shell如何获取一个日志中某个时间段的日志
  • c#实现把异常写入日志示例(异常日志)
  • sql server日志收缩脚本及解决日志增长过快的问题
  • 我通过C程序执行tail -f printlog(printlog为日志名),想要动态获取里面新进来的日志,怎么办?
  • 多进程输出日志,用什么方式保存日志效率比较高?
  • oracle 11g的警告日志和监听日志的删除方法
  • apache使用日志分割模块rotatelogs分割日志详解
  • mysql日志文件在哪 如何修改MySQL日志文件位置
  • 删除sqlserver数据库日志和没有日志的数据库恢复办法
  • (答者给分)crontab 定时执行sh 日志显示发送mail 如何查看错误日志
  • java自定义日志输出文件(log4j日志文件输出多个自定义日志文件)
  • 日志分析软件 Splunk


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,