oracle中transaction是不是只有commit之后才能完成,不commit事物就完成不了???

数据库] oracle中transaction是不是只有commit之后才能完成,不commit事物就完成不了??? [复制链接]

0 0
蓦然princes

家境小康

  • 问答
  • 好友
  • 博客
  • 消息
论坛徽章:
1
电梯直达
1楼[收藏(0)][报告]
  发表于 2014-04-11 20:19  | 只看该作者  | 倒序浏览
分享到:
本帖最后由 蓦然princes 于 2014-04-12 00:02 编辑

oracle中讲到transaction时提到,只有commit之后才一个事物才算完成。例如 一条insert语句,如果不commit
则,数据一致在SGA中,并没有写入Redolog file中。只有commit之后才会将SGA中的数据写入Redolog file中
一个transaction才算完成。
问题:在讲到后台进程时说:DBWR进程是由checkpoint时间触发、或者data Buffer cache达到一定界值之后触发
         那就是说,如果一个insert语句执行完了,不进行commit,此时checkpoint时间发生,或者data Buffer cache
         达到一定界限值,又或是,日志切换发生,都将触发DBWR进程进行数据写操作,但是在DBWR进行之前会
        触发LGWR进程。此时没有进行commit的数据自动从SGA中的Relog Buffer中写道Redolog file中。
请问:这样不是和transaction中说的如果没有commit事物就没有完成矛盾了吗????也就是说,即使没有commit
       那insert这个transaction也可能完成。

     也就是说,任何操作不用commit进行提交,等到LGWR进程启动时(如:redolog Buffer达到1/3满,每三秒等)Sga中的redolog Buffer会写入到redolog file中, 这样的话,对于一个transaction,没有commit,也很有可能由于LGWR启动,将
sga中的数据写入到日志了啊。。。。我不知道哪里理解错了,请高手们指点小弟一下!!!感激不尽啊!!!
  • 文库|博客
  • 韩顺平玩转oracle视频教程笔记.doc
  • Oracle常见问题.pdf
  • Oracle--HINT--说明 (1).pdf
  • oracle-存储过程-函数-创建-删除-参数-传递-函数-查看-包-系统包.doc
  • ORACLE数据库巡检模板.doc
linux dhcp peizhi roc  |   关于Unix文件的软链接  |   求教这个命令什么意思,我是新手,刚刚学习 ...  |   sed -e "/grep/d" 是什么意思?谢谢 ...  |  
 
   
jackson198574

版主

  • 问答
  • 好友
  • 博客
  • 消息
论坛徽章:
17
技术图书徽章日期:2014-04-29 09:09:57 2015年辞旧岁徽章日期:2015-03-03 16:54:15 技术图书徽章日期:2015-01-12 17:05:35 未羊日期:2014-07-26 13:08:31
2楼[报告]
  发表于 2014-04-15 16:10  | 只看该作者
回复 1# 蓦然princes 


    不矛盾的,一般checkpoint的时候,脏数据会写入日志和数据文件,即使是没有提交commit也会写入数据文件,同时在日志文件中会有相关的信息描述,未提交commit和提交commit的数据都会在数据文件中,区别在于日志文件中记录的信息不同,一旦自动或者是手动执行rollback回滚操作的话,未提交commit的数据会被恢复为前映像的状态,不知道我的回答你是否满意?
全站 HTTPS如何规划、部署、优化?| 【公告】新版 ChinaUnix 客户端发布~ |  ChinaUnix打赏功能已上线! |  【大话IT】终年到,谁是你的存储挚爱?
 
   
蓦然princes

家境小康

  • 问答
  • 好友
  • 博客
  • 消息
论坛徽章:
1
3楼[报告]
  发表于 2014-04-15 20:48  | 只看该作者
还不能确定你说的是不是正解,因为除了你没有其他人恢复啊?????为什么,难道是我问的问题没法回答吗????回复 2# jackson198574 


   
全站 HTTPS如何规划、部署、优化?| 【公告】新版 ChinaUnix 客户端发布~ |  ChinaUnix打赏功能已上线! |  【大话IT】终年到,谁是你的存储挚爱?
 
   
jackson198574

版主

  • 问答
  • 好友
  • 博客
  • 消息
论坛徽章:
17
技术图书徽章日期:2014-04-29 09:09:57 2015年辞旧岁徽章日期:2015-03-03 16:54:15 技术图书徽章日期:2015-01-12 17:05:35 未羊日期:2014-07-26 13:08:31
4楼[报告]
  发表于 2014-04-16 09:28  | 只看该作者
本帖最后由 jackson198574 于 2014-04-16 09:32 编辑

回复 3# 蓦然princes 

官方文档Concept:
checkpoint
1. A data structure that marks the checkpoint position, which is the SCN in the redo 
thread where instance recovery must begin. Checkpoints are recorded in the control 
file and each data file header, and are a crucial element of recovery. 
2. The writing of dirty data blocks in the database buffer cache to disk. The database 
writer (DBWn)process writes blocks to disk to synchronize the buffer cache with the 
data files.

Checkpoint Process (CKPT) 
The checkpoint process (CKPT)updates the control file and data file headers with 
checkpoint information and signals DBWnto write blocks to disk. Checkpoint 
information includes the checkpoint position, SCN, location in online redo log to begin 
recovery, and so on. As shown in Figure 15–4, CKPT does not write data blocks to data 
files or redo blocks to online redo log files.

全站 HTTPS如何规划、部署、优化?| 【公告】新版 ChinaUnix 客户端发布~ |  ChinaUnix打赏功能已上线! |  【大话IT】终年到,谁是你的存储挚爱?
 
   
蓦然princes

家境小康

  • 问答
  • 好友
  • 博客
  • 消息
论坛徽章:
1
5楼[报告]
  发表于 2014-04-17 19:28  | 只看该作者
高手,请问你的这段”不矛盾的,一般checkpoint的时候,脏数据会写入日志和数据文件,即使是没有提交commit也会写入数据文件,同时在日志文件中会有相关的信息描述,未提交commit和提交commit的数据都会在数据文件中,区别在于日志文件中记录的信息不同,一旦自动或者是手动执行rollback回滚操作的话,未提交commit的数据会被恢复为前映像的状态,不知道我的回答你是否满意?“内容在联机文旦哪里能找到,我找不到这段内容在官方文档中的讲解位置。。。。感激不尽回复 4# jackson198574 


   
全站 HTTPS如何规划、部署、优化?| 【公告】新版 ChinaUnix 客户端发布~ |  ChinaUnix打赏功能已上线! |  【大话IT】终年到,谁是你的存储挚爱?
 
   
jackson198574

版主

  • 问答
  • 好友
  • 博客
  • 消息
论坛徽章:
17
技术图书徽章日期:2014-04-29 09:09:57 2015年辞旧岁徽章日期:2015-03-03 16:54:15 技术图书徽章日期:2015-01-12 17:05:35 未羊日期:2014-07-26 13:08:31
6楼[报告]
  发表于 2014-04-17 20:20  | 只看该作者
回复 5# 蓦然princes 


    不是官方文档里的,你谷歌一下吧。
全站 HTTPS如何规划、部署、优化?| 【公告】新版 ChinaUnix 客户端发布~ |  ChinaUnix打赏功能已上线! |  【大话IT】终年到,谁是你的存储挚爱?
 
   
jackson198574

版主

  • 问答
  • 好友
  • 博客
  • 消息
论坛徽章:
17
技术图书徽章日期:2014-04-29 09:09:57 2015年辞旧岁徽章日期:2015-03-03 16:54:15 技术图书徽章日期:2015-01-12 17:05:35 未羊日期:2014-07-26 13:08:31
7楼[报告]
  发表于 2014-04-17 20:22  | 只看该作者
回复 5# 蓦然princes 


    我这段描述回头看有问题,不过既然你看过官方文档了,最好自己多安排一些精力在研究官方文档上。
全站 HTTPS如何规划、部署、优化?| 【公告】新版 ChinaUnix 客户端发布~ |  ChinaUnix打赏功能已上线! |  【大话IT】终年到,谁是你的存储挚爱?
 
   
www_xylove

版主

  • 问答
  • 好友
  • 博客
  • 消息
论坛徽章:
7
摩羯座日期:2014-07-20 10:46:04 卯兔日期:2014-08-08 15:21:41
8楼[报告]
  发表于 2014-04-17 22:21  | 只看该作者
commit做了什么?
commit的本质是把 log buffer里的日志数据块刷新到redo logfiles磁盘中,保证了数据部丢失。
全站 HTTPS如何规划、部署、优化?| 【公告】新版 ChinaUnix 客户端发布~ |  ChinaUnix打赏功能已上线! |  【大话IT】终年到,谁是你的存储挚爱?
 
   
zr2095

白手起家

  • 问答
  • 好友
  • 博客
  • 消息
论坛徽章:
0
9楼[报告]
  发表于 2015-09-21 10:21  | 只看该作者
2楼回答的很正确 闲来无聊 翻翻帖子
 

你可能感兴趣的:(Oracle)