社区
基础和管理
帖子详情
对检查点checkpoint的理解
yuanscar
2003-05-12 12:07:46
现在看的书都是英文资料,因为阅读水平的限制,对检查点这一章始终感觉有点模糊,不能很清楚的理解它的运行机制。希望各位大侠能不吝赐教啦!谢谢!
...全文
116
2
打赏
收藏
对检查点checkpoint的理解
现在看的书都是英文资料,因为阅读水平的限制,对检查点这一章始终感觉有点模糊,不能很清楚的理解它的运行机制。希望各位大侠能不吝赐教啦!谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
microlong
2003-05-13
打赏
举报
回复
时间点检查!
看看这个对你理解有没有帮助!
简析Oracle Online Redo LogFile
(余枫 2001年11月27日 16:12)
我们知道Oracle里联机日志文件(Onlineredologfile)循环记录了数据库所有的事务(transaction)。它的大小、个数和存储位置对数据库性能和恢复也是有重要影响的。
一、redologfile的简单介绍
它一般有大小相同的一组文件构成。我们可以查看数据库视图v$logfile知道它的个数和存储位置。
SVRMGRL>select*fromv$logfile;
查看数据库视图v$log知道它当前的状态。
SVRMGRL>select*fromv$log;
一个时间只有一组logfilegroup是工作状态(current),redologfile满了后会自动切换到下一个logfilegroup,如果数据库是归档方式同时写到归档日志文件。这些文件不能用常规的文本编辑器查看,它以特定的格式存放,只有数据库或者专门的软件可以看懂它。
redologfile的最大数目是在创建数据库时指明的。如果你想知道当前数据库redologfile的最大数值是多少,重新生成控制文件,就可以知道。
SVRMGRL>alterdatabasebackupcontrolfiletotrace;
这条语句会在$ORACLE_BASE/admin/dbname/udump/路径下生成当前时间的一个*.trc文件,也就是数据库的控制文件,用文本编辑器,即可看到数据库创建时用的一些参数,包括redologfile的最大数(maxlogfiles),每组最大的成员个数(maxlogmembers)。
二、redologfile的大小和位置对数据库性能的影响
如果用ORACLE的安装向导创建的典型数据库,它的redologfile大小为500K,这基本上是不能满足典型的OLTP应用的,在数据库日志文件(alert_orasid.log)里会记录着频繁的logswitch。ORACLE推荐logswitch时间最好在15--30分钟之间,所以redologfile的大小由数据库DML操作数据量的大小决定其最佳大小。
redologfile最好有多个分布在不同硬盘的存储位置,多组成员,使数据库恢复时有更多的选择。
典型的OLTP应用,redologfile大小可以为16M。当然繁忙的数据库,例如当今的门户网站,这个值可以达到100M以上.
如果你发现当前数据库日志文件里logswitch的时间偏大或者偏小,不要紧。ORACLE提供了在数据库联机状态来改变redologfile大小的方法。
三、在联机状态改变redologfile大小的方法
假如原来数据库有3个小的redologfile,下面是UNIX环境下的一个例子:
第一步:往数据库添加三个大的redologfile
SVRMGRL>ALTERDATABASEADDLOGFILEGROUP4
('/opt/oradata/app/redo04.log',
'/ora_bak/oradata2/redolog/redo04.log')size16Mreuse;
SVRMGRL>ALTERDATABASEADDLOGFILEGROUP5
('/opt/oradata/app/redo05.log',
'/ora_bak/oradata2/redolog/redo05.log')size16Mreuse;
SVRMGRL>ALTERDATABASEADDLOGFILEGROUP6
('/opt/oradata/app/redo06.log',
'/ora_bak/oradata2/redolog/redo06.log')size16Mreuse;
第二步:手工地做logswitch,使新建的redologfile起作用.
SVRMGRL>altersystemswitchlogfile;
此操作可以执行一到几次,使旧的redologfile成invalid状态.
第三步:删除原来旧的redologfile.
SVRMGRL>alterdatabasedroplogfilegroup1;
SVRMGRL>alterdatabasedroplogfilegroup2;
SVRMGRL>alterdatabasedroplogfilegroup3;
四、跟redologfile有关的其它数据库参数
1、log_buffer
log_buffer是ORACLESGA的一部分,所有DML命令修改的数据块先放在log_buffer里,如果满了或者到了check_point时候通过lgwr后台进程写到redologfile里去。它不能设得太大,这样在意外发生时会丢失很多改变过的数据。它最好不要大于512K或者128K*CPU个数。
我们可以用下面的SQL语句检测log_buffer使用情况:
SVRMGRL>selectrbar.name,rbar.value,re.name,re.value,(rbar.value*100)/re.value||'%'"radio"
fromv$sysstatrbar,v$sysstatre
whererbar.name='redobufferallocationretries'
andre.name='redoentries';
这个比率小于1%才好,否则增加log_buffer的大小
2、log_checkpoint_interval
Oracle8.1版本后log_checkpoint_interval指的是两次checkpoint之间操作系统数据块的个数。checkpoint时Oracle把内存里修改过的数据块用DBWR写到物理文件,用LGWR写到日志和控制文件。
一般UNIX操作系统的数据块为512bytes。
从性能优化来说log_checkpoint_interval=redologfilesizebytes/512bytes
3、log_checkpoint_timeout
Oracle8.1版本后log_checkpoint_timeout指的是两次checkpoint之间时间秒数。
Oracle建议不用这个参数来控制,因为事务(transaction)大小不是按时间等量分布的。用log_checkpoint_interval参数控制会好一些。
禁用此参数或者按默认的900。
log_checkpoint_timeout=0
w_tsinghua
2003-05-13
打赏
举报
回复
checkpoint對於整個Oracle Instance的復原工作,有著相當顯著的幫助,它能夠有效地減少復原Oracle Instance所需的時間(註:所謂的checkpoint,是在一個指定的時間區間裏,DBWR會對所有在Database Buffer Cache所做的異動,將其結果寫入到相關的Data Files以及Redo Log Files、Control Files,這樣的動作,就稱為checkpoint)。而CKPT Background Process就是扮演著一個通知者的角色,經過一定的時間後,負責通知 DBWR 該執行checkpoint的動作了。執行checkpoint的時間區間,可以透過設定initSID.ora裏的LOG_CHECKPOINT_INTERVAL這個參數,改變checkpoint的區間。不過,在設定LOG_CHECKPOINT_INTERVAL時,要注意的是,這個值設得太小的話,會造成系統額外I/O的負擔,設得太大,超過online Redo Log File swap的時間時,LOG_CHECKPOINT_INTERVAL的值又會變得沒有意義,因為Oracle會在swap online Redo Log File時,做一次checkpoint的動作。因此,如何決定LOG_CHECKPOINT_INTERVAL的值,可是一門很大的學問呢!
checkpoint
检查
点机制?
在某个目标之前,数据库将在某个线程通过redo修改的所有缓冲区写到磁盘,数据库中所有线程
检查
点集是一个数据库
检查
点,线程
检查
点在以下情况下发生:一致的数据库关闭、ALTER system
Checkpoint
语句、在线日志切换...
SQL SERVER的
检查
点
checkpoint
阅读目录(Content) 1 什么是
检查
点 ...数据修改操作 都是在 内存中的数据页进行修改,每次修改后并没有立即把这些页面写入磁盘,而是等到一定时期,数据库引擎对数据库发起
检查
点命令,这时,该命令就会创
1张图,学会
检查
点机制
checkpoint
自己画了一张图,简单说一下
检查
点
checkpoint
机制。
oracle数据库设置一个
检查
点,oracle之
检查
点(
Checkpoint
)
检查
点分为三类:1)局部
检查
点:单个实例执行数据库所有数据文件的一个
检查
点操作,属于此实例的全部脏缓存区写入数据文件。触发命令:svmrgrl>alter system
checkpoint
local;这条命令显示的触发一个局部
检查
点...
oracle数据库
checkpoint
检查
点
oracle数据库
checkpoint
检查
点
检查
点是一个数据库事件,它把修改数据从高速缓存写入磁盘,并更新控制文件和数据文件。
检查
点分为三类: 1)局部
检查
点:单个实例执行数据库所有数据文件的一个
检查
点...
基础和管理
17,377
社区成员
95,127
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章