测试5——观察增量检查点

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 四:log file switch,会触发一个增量检查点,不过它会更新datafile header SQL> select cpdrt dirty,cpods on_disk_scn,cpodt on_disk_time,cphbt from x$kccc...

四:log file switch,会触发一个增量检查点,不过它会更新datafile header

SQL> select cpdrt dirty,cpods on_disk_scn,cpodt on_disk_time,cphbt from x$kcccp where indx=0;

     DIRTY ON_DISK_SCN      ON_DISK_TIME              CPHBT
---------- ---------------- -------------------- ----------
        51 1964144          12/28/2009 15:41:41   706772766

SQL> alter system switch logfile;            

System altered

SQL> select cpdrt dirty,cpods on_disk_scn,cpodt on_disk_time,cphbt from x$kcccp where indx=0;

     DIRTY ON_DISK_SCN      ON_DISK_TIME              CPHBT
---------- ---------------- -------------------- ----------
        51 1964151         12/28/2009 15:41:53 706772770 ---logfile switch 不是full checkpoint,因为还存在dirty block

可以看到switch logfile之后,依然有51个dirty的block在buffer cache中,说明没有执行full checkpoint,因为执行full check point之后buffer cache中是不会有dirty 的block的,下面执行一个FULL checkpoint;

SQL> select cpdrt dirty,cpods on_disk_scn,cpodt on_disk_time,cphbt from x$kcccp where indx=0;

     DIRTY ON_DISK_SCN      ON_DISK_TIME              CPHBT
---------- ---------------- -------------------- ----------
        43 1964223          12/28/2009 15:44:29   706772822

SQL> alter system checkpoint;

System altered

SQL> select cpdrt dirty,cpods on_disk_scn,cpodt on_disk_time,cphbt from x$kcccp where indx=0;

     DIRTY ON_DISK_SCN      ON_DISK_TIME              CPHBT
---------- ---------------- -------------------- ----------
         0 1964229          12/28/2009 15:44:44   706772826    ---可以看到full checkpoint之后dirty block为0了

五:log_checkpoint_interval,该参数在10gR2中默认为0,该参数表示最后一次增量检查点以来,累积的日志块数(注意,这里的日志块数表示操作系统的块,非oracle的块,此块大小可以通过x$kccle.lebsz查到),如果达到了设定值,那么将触发增量检查点,该参数会覆盖fast_start_mttr_target请看测试:

SQL> select max(lebsz) from x$kccle;

MAX(LEBSZ)
----------
       512                 

日志块为512byte,那么设置log_checkpoint_interval=2048,也就是说产生了1M的redo 就会触发一个增量检查点,下面来验证下,首先我切换一下日志文件

SQL> alter system switch logfile;

System altered

SQL> alter system set log_checkpoint_interval=2048;

System altered

SQL> create table test as select * from dba_objects;

表已创建。

由于创建表test会产生多余1M的日志,所以,会引发一个增量检查点,我们查看alert 日志

ALTER SYSTEM SET log_checkpoint_interval=2048 SCOPE=BOTH;
Mon Dec 28 16:04:51 2009
Completed checkpoint up to RBA [0x51.2.10], SCN: 1965065   ----此处果然引发了一个增量检查点

六:ORACLE内部有这样一个限制:当生成的重做日志达到了阀值 0.9*(sum(v$log.bytes)-max(v$log.bytes)),就会引发一个增量检查点,通常情况下这个限制难以达到,因为生产库上会有多个日志组,在达到这个阀值之前就会产生logfile switch。

要通过实验手段看到这个限制条件,可以把日志组设置为2,然后再进行实验。

为了进行实验,我将logfile group 1设置为20M,将group 2 设置为200M;

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARCHIVED STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- -------- ---------------- ------------- -----------
         1          1         91   20971520          2 YES      INACTIVE               2011443 12/28/2009
         2          1         92  209715200          2 NO       CURRENT                2011445 12/28/2009

然后将200m的日志文件设置为current ,然后再进行一个大事物,然后运行如下SQL

SQL> select le.leseq    current_sequence,round(100*cp.cpodr_bno/le.lesiz,2)||'%' percentage,le.lesiz*512/1024/1024||'Mb' log_file_size,
  2  round((le.lesiz*512/1024/1024)*(cp.cpodr_bno/le.lesiz),2)||'Mb' used_size
  3  from x$kcccp cp,x$kccle le where le.leseq =cp.cpodr_seq and le.lesiz>0;

CURRENT_SEQUENCE PERCENTAGE                                LOG_FILE_SIZE        USED_SIZE
---------------- ----------------------------------------- -------------------- ------------------------------------------
              92 23.12%                                    200Mb                46.23Mb
查看当前log 的使用率,到了一定阀之后就会出现增量检查点,我这里的logfile 已经使用了46.23M才产生增量检查点,按理说应该是达到18M就会产生的,可能是机器还没反应过来吧,总之产生了增量检查点,这个与上面的理论相符合。

Mon Dec 28 17:52:24 2009
Incremental checkpoint up to RBA [0x5c.119fd.0], current log tail at RBA [0x5c.17167.0]

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
18天前
|
敏捷开发 测试技术
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum
文章详细介绍了软件开发过程中的不同开发模型(瀑布、螺旋、Scrum)和测试模型(V模型、W模型),以及增量和迭代的概念,最后阐述了敏捷思想及其在敏捷开发(如Scrum)中的应用。
31 0
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum
|
5月前
|
缓存 运维 Serverless
应用研发平台EMAS产品常见问题之测试检查更新没有反应如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
5月前
|
安全 测试技术 网络安全
安全运营之安全检查和测试
安全运营是一个将技术、流程和人有机结合的复杂系统工程,通过对已有安全产品、工具和服务产出的数据进行有效的分析,持续输出价值,解决安全问题,以确保网络安全为最终目标。 安全检查和测试是确保系统、设备或环境安全的重要手段,是安全运营基础工作的一部分。
57 0
【Google Play】创建和管理内部测试版本 ( 创建内部测试版本 | 检查并发布内部测试版本 )(一)
【Google Play】创建和管理内部测试版本 ( 创建内部测试版本 | 检查并发布内部测试版本 )(一)
689 0
【Google Play】创建和管理内部测试版本 ( 创建内部测试版本 | 检查并发布内部测试版本 )(一)
|
SQL 分布式计算 运维
【大数据开发运维解决方案】Sqoop增量同步mysql/oracle数据到hive(merge-key/append)测试文档
上一篇文章介绍了sqoop全量同步数据到hive, 本片文章将通过实验详细介绍如何增量同步数据到hive,以及sqoop job与crontab定时结合无密码登录的增量同步实现方法。
【大数据开发运维解决方案】Sqoop增量同步mysql/oracle数据到hive(merge-key/append)测试文档
|
机器学习/深度学习 算法 数据可视化
机器学习避坑指南:训练集/测试集分布一致性检查
机器学习避坑指南:训练集/测试集分布一致性检查
机器学习避坑指南:训练集/测试集分布一致性检查
|
测试技术
软件测试面试题:LoadRunner如何插入Text/Image 检查点?
软件测试面试题:LoadRunner如何插入Text/Image 检查点?
101 0
|
SQL Oracle 关系型数据库
软件测试mysql面试题:什么是SQL中的自动增量?
软件测试mysql面试题:什么是SQL中的自动增量?
102 0
|
Oracle 关系型数据库 Java
白盒测试工具 - sonar的安装、配置与使用入门手册,用sonar检查代码质量实战演示
白盒测试工具 - sonar的安装、配置与使用入门手册,用sonar检查代码质量实战演示
583 1
白盒测试工具 - sonar的安装、配置与使用入门手册,用sonar检查代码质量实战演示
|
开发者
【Google Play】创建和管理内部测试版本 ( 创建内部测试版本 | 检查并发布内部测试版本 )(二)
【Google Play】创建和管理内部测试版本 ( 创建内部测试版本 | 检查并发布内部测试版本 )(二)
258 0
【Google Play】创建和管理内部测试版本 ( 创建内部测试版本 | 检查并发布内部测试版本 )(二)