补充日志:只要是针对 UPDATE 命令的,是对重做日志记录中 变更矢量块的补充信息,增加了变更矢量记载的记录量。日志挖掘器(LogMiner)、闪回事务查询、闪回事务等都需要
补充日志的支持。尤其是 日志挖掘器如果发现未启用补充日志,就拒绝服务。也就是说补充日志主要是为UPDATE 命令服务的,补充的目的是高度还原 UPDATE 命令,避免因为update
命令造成的行迁移和行移动,让LogMiner 通过分析重做日志中识别 update 命令 不是 由 insert 和 delete 完成的。如果未启用补充日志,重做日志只将 UPDATE 命令更改的字段的旧值保存在撤销数据块的变更矢量中。而在数据块中的变更矢量中记载被修改后的字段的新值。同行中的未被修改的字段,不会被记载。如果启用了补充日志,重做日志中的撤销数据块的变更矢量中会记录
被修改字段前的值和修改后的值,而且还会记录修改字段的那个条件的值。即变更矢量中会记载:几号数据文件+几号文件中的几号块+第几个字段+修改后的值+修改前的值+“where
条件” 的值。
行移动:指 update 命令执行时时,在索引组织表中有时会导致整行被转移至另一个索引块中。该情况或过程称为行移动。
行迁移:如果是在堆栈表中,update 命令导致行太长,在数据块空间不足的情况下会将部分(行头部除外)迁移到另一个数据块中,行头任然保留在原数据块中。
补充日志分为:数据库级补充日志、 表级补充日志
其他补充日志都是基于数据库级最小补充日志之上的,如果未启用数据库级最小补充日志,在启用或使用其他补充日志时,会自动启用数据库的最小补充日志(Implicit)。
数据