关于REDO的疑惑

[复制链接]
查看11 | 回复4 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
正常情况下:
update data ---> databaser buffer cache --> redo buffer --> redo log
--> arch log
如果用户执行了大量的数据更新,但是并没有执行COMMIT命令,当前的会话也没有关闭,数据库内部将会怎么进行处理,会不会自动COMMIT或者是ROLLBACK?这些更新的数据会暂存在什么地方呢,如果是在REDO LOG中,归档进程会如何来处理呢?
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
当然不会自动commit或rollback
redo log中并非只存储提交记录
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
Oracle only guarantee that after commit of a transaction
( either automatic or manual), all new data is at the redo
log. That means:
SQL>commit
Commit complete
SQL>
As long as "Commit complete" show up, all new info is in
redo log.
As if new data has been to data file, it depends. maybe some
new info has been to data file by DBWR, maybe all stay in
the data buffer cache.
Before commit, all rollback info is in rollback segment.
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
sg的dba-1的第一章有详细的解释
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
再阅读一些详细的文档资料吧,谢谢大家的解答。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行