说明
检查点系列相关文章地址:
Oracle检查点(一)检查点(Checkpoint)概念介绍: http://blog.itpub.net/69992972/viewspace-2787595/
Oracle检查点(二)检查点性能: http://blog.itpub.net/69992972/viewspace-2787789/
Oracle检查点(三)增量检查点四个关键参数介绍: http://blog.itpub.net/69992972/viewspace-2787943/
Oracle检查点(四)检查点对redo日志的影响和redo日志大小设置建议: http://blog.itpub.net/69992972/viewspace-2788206/
Oracle检查点(五)创建并利用Statspack定位检查点故障: http://blog.itpub.net/69992972/viewspace-2788418/ 如何使用 Statspack?1. 安装 Statspack
SQL> @$ORACLE_HOME/rdbms/admin/spcreate.sql
根据下面提示依次输入:
Enter value for perfstat_password: oracle --自定义一个初始密码 Enter value for default_tablespace: users --指定一个已存在的表空间 Enter value for temporary_tablespace: temp --指定一个临时表空间
2. 手动创建两个快照区间
SQL> exec statspack.snap --生成第一个快照点 PL/SQL procedure successfully completed. SQL> exec statspack.snap --生成第二个快照点 PL/SQL procedure successfully completed.
注: 至少有两个快照才能生成一份报告,这点和生成AWR报告一样 3. 生成 Statspack报告
SQL> @$ORACLE_HOME/rdbms/admin/spreport.sql
4. 自动生成 Statspack快照根据脚本spauto.sql里的内容,自定义一个生成快照的定时任务
SQL> variable jobno number; SQL> variable instno number; SQL> begin 2 select instance_number into :instno from v$instance; 3 dbms_job.submit(:jobno, 'statspack.snap;', trunc(sysdate+1/24,'HH'), 'trunc(SYSDATE+1/24,''HH'')', TRUE, :instno); 4 commit; 5 end; 6 /
执行定时任务
SQL>begin 2 dbms_job.run(1); --jobno根据上面的结果来指定 3 end; 4 /
利用Statspack定位检查点故障 一般每 15 分钟左右收集一次 Statspack 快照,这些快照报告将收集有关在该时间段已开始的检查点数量、已完成的检查点数量及检查点发生时写入的数据库缓冲数量等信息。此外,还包含关于 redo 活动的统计信息。 Statspack 报告中另一个值得关注的内容是等待事件,重点关注下面的等待事件,它们显示了 redo 日志吞吐量和检查点的问题:1. log file switch (checkpoint incomplete)2. log file switch (archiving needed)3. log file switch/archive4. log file switch (clearing log file)5. log file switch completion6. log switch/archive7. log file sync注:如果这些等待事件中的一个或多个频繁地出现,并且对应的值比较大,就可能需要优化了,例如,添加 redo 日志文件或增加redo日志的大小,可能另外还需要修改检查点参数。
