改动向量的内容包括哪些内容呢?

改动向量的内容包括:被改动的数据块的版本号、事务操作代码、被改动的数据块的地址等 。这里的版本号非常重要 , 它能够帮助数据块始终能够体现当前最新的状态 。oracle在建立改动向量时 , 会从数据块中拷贝其版本号 。而当恢复期间 , oracle读取改动向量并将改动应用于相应的数据块以后 , 被恢复的数据块的版本号加1 。
这里的数据块可以属于表、也可以数据索引、也可以属于回滚段 。但是对于临时表空间里的临时段 , 不会生成改动向量 。
对于update事务 , 
1) 对回滚段事务表的改动 , 这发生在回滚段段头 。事务表中包含被修改的数据块的地址、该事务的状态(commit或active)、 以及存有该事务所使用的回滚段的地址 。
如果事务表被修改 , 就会产生针对于它的改动向量 。
2) 对回滚段数据块的改动 。将修改前的旧值(abc)存放到回滚段的数据块里 。这时回滚段发生改变 , 于是产生改动向量 。
3) 对redo_test表的数据块所做的改动 。将修改后的新值(cdf)存放到表的数据块里 。
这时数据块发生改变 , 于是产生改动向量 。
重做记录中会有三个改动向量 。当然可能有其他情况会产生新的重做记录 , 比如修改的列如果有索引 , 则必须修改索引 。这时就会产生第二个重做记录 , 用来描述对索引数据块的修改 。这时候的重做记录还是和第一个重做记录一样 , 包含多个改动向量 。
【改动向量的内容包括哪些内容呢?】此外 , 在事务完成之后运行commit或rollback语句时 , 就会产生第三个重做记录 。该重做记录只有一个改动向量 , 用来记录对回滚段事务表的更改 , 因为commit或rollback时 , 需要更新事务表里记录的该事务的状态 。


    以上关于本文的内容,仅作参考!温馨提示:如遇专业性较强的问题(如:疾病、健康、理财等),还请咨询专业人士给予相关指导!

    「辽宁龙网」www.liaoninglong.com小编还为您精选了以下内容,希望对您有所帮助: