数据库中系统故障恢复的问题。

在系统故障中造成数据库不一致状态的原因有两个,一个是未完成事务对数据库的更新可能已经写入数据库,二是已经提交的事务对数据库的更新还没有来的及写入数据库。在这里未完成事务和... 在系统故障中造成数据库不一致状态的原因有两个,一个是未完成事务对数据库的更新可能已经写入数据库,二是已经提交的事务对数据库的更新还没有来的及写入数据库。
在这里未完成事务和已经提交的事务什么区别?是commit的区别吗?如果是commit的区别,那么未完成的事务按理说应该没有对数据库进行更新,为何要undo?
展开
 我来答
晕这都有人起了
2013-06-13 · TA获得超过191个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:107万
展开全部
如果系统故障造成数据库非正常关闭,在下一次open的时候自动进行recover操作,未提交的操作会被回滚,提交的操作会根据日志进行恢复。只要某个事务修改了数据,那么更新前的原有数据就会被写入一个回滚段或undo段,在你提交之前,其他会话查询的是undo段,实际上你的操作已经写在数据块上了,但是会有标志,表示未提交,只有你的会话可见。你commit之后这个标志会被更改,操作会写入redo日志。
追问
你还没回答我的问题0 0.。
追答
不管你是否commit数据都是已经写在数据块上了,提交不提交只是数据块的标识不一样,rollback的是从UNDO段(以前这个叫回滚段)上回滚的。commit之后数据的更改一定会写到你的REDO日志上,不提交的话3秒内的更改只会体现在数据缓冲区和日志缓冲区,你非正常退出这些内存还没来得及写到你的磁盘上,数据自然会有所丢失。commit不会触发DBWR进程写数据文件,也就是说你的comiit后日志和数据文件可能不同步。
壹寰(深圳)科技文化有限公司
2021-03-27 广告
要找正规专业的公司,行业口碑也比较重要。如果想了解更多详细信息,可以咨询下壹寰(深圳)科技文化有限公司。91数据恢复是壹寰(深圳)科技文化有限公司旗下专业数据恢复品牌,91数据恢复专注于勒索病毒数据恢复、勒索病毒数据修复、数据库修复、数据库... 点击进入详情页
本回答由壹寰(深圳)科技文化有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式