[问题] [数据库]关于Commit的观念问题

楼主: skywillnosky (Alfred)   2015-04-12 08:57:42
讲义上的定义是
"当交易T中所有存取DB的操作皆已成功执行,
且可能影响数据库的动作皆已记录于系统日志时
此交易即进入委任点"
我想问的是以下的观念有错吗?
(一)
系统日志有分
1. 还在主内存的系统日志
2. 已经写到磁盘的系统日志
(二)
当含有<commit, T>内容的系统日志写回磁盘,代表数据库已经异动
意即还在主内存,含有<commit, T>内容的系统日志,
并未真的异动到数据库
已经到达commit point的资料,因为非毁灭性故障而不确定
有没有真的异动到DB时,则要做失败复原的REDO。
(三)
系统日志要写回磁盘需要
1. 分配给系统日志的主内存区块(Block)满了
2. 到达检查点了
而系统日志强迫写入是因为情况1. 不是情况2.
如果系统日志强迫写入时,主内存的系统日志未到达commit
则被称为"交易委任前的系统日志强制写入"
(四)
只有当含有<commit,T>内容的系统日志写回磁盘,
才表示交易T已经到达Commit point
祝大家金榜题名
作者: ko74652 (Reese lin)   2015-04-12 09:46:00
系统日志有一小块称主内存 其他都是系统日志本身commit会把交易记录写道系统日志 但未真正更新到DB内而要真正影像到DB 必须是 系统日志满 or check point但是一笔交易commit 代表他永远有效 若还在系统日志时候发生当机 那就要从事redo 还是要看是延迟还是立即第二点含有commit就不会再主内存了 会在系统日志你可以把他看成 主内存---系统日志----数据库这样会比较容易理解
作者: folksuite (Z)   2015-04-12 09:56:00
何不直接线上学习?http://goo.gl/E6BCpS
楼主: skywillnosky (Alfred)   2015-04-12 11:33:00
所以<commit, T>只会存在系统日志内?

Links booklink

Contact Us: admin [ a t ] ucptt.com