Log file switch(checkpoint incomplete)等待事件
2015-08-13 18:06
549 查看
数据库top5 events里Log file switch(checkpoint incomplete)等待事件排在了第一位。
oracle日志切换会产生一个增量检查点,但这个检查点,不同于alter system checkpoint,后者会启动dbwn进程,将内存中的已修改的数据立即写入数据文件。但前者不会,前者只需要保证整个日志组一轮切换后,比如日志组2,切换到3,然后1,在到第二组的时候,必须将“脏”数据写入数据文件(因为如果此时还没有写入数据库,再次由1切换到2的时候,假设此后实例崩溃,就造成数据的丢失)。
检查点的工作职责是通知dbwn写数据,更新某些数据文件头信息,更新控制文件信息。既然是日志切换时检查点未完成。那么基本上就是日志切换了一圈,dbwn进程还没有完成工作。由此可见原因如下
1.日志文件过小
2.日志组过少
3.dbwn进程工作的慢 (oracle11g中db_write_process参数是cpu数/8得来的,一般情况下不去修改此参数)
通过查看 v$log 视图发现日志组切换过于频繁,差不多5s左右。改进方案,采用大的日志文件并增加日志组。
增加日志组
alter database add logfile group 4 '? REDO04.LOG' size 1g;
最终是加了4组1g的日志文件
alter system switch logfile;
alter database drop logfile group 1;
对于要删除的日志组,除了当前组不能删除,还有一种active状态下的文件组不可删除,因为该日志组的信息还没有完成checkpoint。
alter system checkpoint;
在切换日志删除
oracle日志切换会产生一个增量检查点,但这个检查点,不同于alter system checkpoint,后者会启动dbwn进程,将内存中的已修改的数据立即写入数据文件。但前者不会,前者只需要保证整个日志组一轮切换后,比如日志组2,切换到3,然后1,在到第二组的时候,必须将“脏”数据写入数据文件(因为如果此时还没有写入数据库,再次由1切换到2的时候,假设此后实例崩溃,就造成数据的丢失)。
检查点的工作职责是通知dbwn写数据,更新某些数据文件头信息,更新控制文件信息。既然是日志切换时检查点未完成。那么基本上就是日志切换了一圈,dbwn进程还没有完成工作。由此可见原因如下
1.日志文件过小
2.日志组过少
3.dbwn进程工作的慢 (oracle11g中db_write_process参数是cpu数/8得来的,一般情况下不去修改此参数)
通过查看 v$log 视图发现日志组切换过于频繁,差不多5s左右。改进方案,采用大的日志文件并增加日志组。
增加日志组
alter database add logfile group 4 '? REDO04.LOG' size 1g;
最终是加了4组1g的日志文件
alter system switch logfile;
alter database drop logfile group 1;
对于要删除的日志组,除了当前组不能删除,还有一种active状态下的文件组不可删除,因为该日志组的信息还没有完成checkpoint。
alter system checkpoint;
在切换日志删除
相关文章推荐
- 30-CSS-07-CSS(CSS样式的结合应用)
- Python 代码性能优化技巧
- 费舍尔方法
- js 对有“命名空间”的表单做深度解析
- Fragment进阶(七)----->QQ聊天、带表情、可翻页,附带回调通讯接口
- SwipeRefreshLayout 上拉加载与下拉刷新
- 上传至github
- 30-CSS-06-CSS(伪元素选择器_2)
- Activiti5.15学习笔记二 BPMN2.0规范
- 关于addSubView需要注意的几个点
- iOS 简单提示view
- 婴幼儿湿疹
- hive库基础命令
- Where to fast and safe cheap swtor credits within 3-28 minutes
- AC自动机 hdu2896 hdu3065 病毒侵袭
- DL DD DT 下拉列表(jquery)-代码很简洁
- 红黑树 vs AVL
- 逃离迷宫 HDU杭电1728 【BFS】
- MAVEN项目模块化
- 第二章. node中的模块和require