针对oracle的commit操作 5
针对oracle的commit操作,我有一个问题,就是当oracle解析和执行一条dml语句的时候,commit操作将事务变化写入到重做日志文件,当我想知道脏数据缓冲区是...
针对oracle的commit操作,我有一个问题,就是当oracle解析和执行一条dml语句的时候,commit操作将事务变化写入到重做日志文件,当我想知道脏数据缓冲区是如何让写入到数据文件的?是在什么时候触发的ckpt实现的数据文件同步?
展开
展开全部
这一块 你要了解“脏缓冲区”的概念
脏缓冲区(不一致的数据),一般DML操作:如update后且没有commit操作时,新数据与旧数据同存脏缓冲区,后:旧数据被写到回滚段,新数据存于数据缓冲区,
在commit后 LGWR进程会将redo缓冲区的记录写入redo.log文件
已经commit后的数据直接通过DBWR进程将数据写入到了.dbf文件中了
有异议可追问,先把悬赏分给我 我会补充的更详细点!
脏缓冲区(不一致的数据),一般DML操作:如update后且没有commit操作时,新数据与旧数据同存脏缓冲区,后:旧数据被写到回滚段,新数据存于数据缓冲区,
在commit后 LGWR进程会将redo缓冲区的记录写入redo.log文件
已经commit后的数据直接通过DBWR进程将数据写入到了.dbf文件中了
有异议可追问,先把悬赏分给我 我会补充的更详细点!
更多追问追答
追问
那我请问 是由于什么原因启动dbwr的进程,dbwr进程只有在系统发出检查点,或者服务器进程不能找到空闲缓冲区,删除或者截断表,备份或者脱机!
追答
对啊,你都说出来了,满足那5点都会启动dbwr的进程,那你想知道什么?
你是否明白数据库结构?实例instance有哪几部分组成?
“脏数据缓冲区是如何让写入到数据文件的?”而且你这个问题中文语法存在异议?什么叫脏数据缓冲区是如何“让”写?
你是想表达“脏数据如何写入到数据文件”的吧?这个问题从上面这些文字应该得到答案了吧?
还有“是在什么时候触发的ckpt实现的数据文件同步?”也有异议....请问你又是否明白“你说的ckpt同步”同步的啥?ckpt对controlfile redofile,datafile又做了啥?
晕死!不给分我 还追问我????太小气了吧!!!!
上面注明:“有异议可追问,先把悬赏分给我”,你太小气了 真的
还有:你给的悬赏才5分,我打了那么多字!!有本事你给我在5分的基础上再加分,我可以继续和你探讨更深的(高可用性DG,RAC,超海量数据PL/SQL开发及性能优化,数据库设计等等等等问题,前提:5分的基础上再加分)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询