Oracle 10g , 10.2.0.4
由于普通redo 日志只是记录rowid 及更改前后的列的值即可对数据库进行恢复等动作,但是 类似 logical standby不是根据rowid 来做recover, 所以需要在redo里记录PK or unique index的信息来定位操作的数据行 。
那么关于logical standby 或 stream 中的 Supplemental Log 有个疑问 :
1,如果是所有table都有pk 或 unique index , 且都不是组合字段组成的 ,那么logical standby 或 stream中不需要启动 Supplemental Log , redo log 会自动附加记录pk 或 unique index 吗 (default ?) ?
2. 如果所有table 都有pk 或 unique index , 但是大部分表的pk 或 unique index 是由组合字段组成的,那么按照文档,我们需要启动 Supplemental Log ,这时候我们在更新pk 或 pk 中的部分字段的时候,Oracle会附件记录pk 中没有被更新的那些字段以便唯一标识 ? 如果我们只是更新pk 或unique index 之外的其他列,那么Oracle 会记录pk ,unique 之外的其他列还是会记录整个PK 或 unique index列来唯一标识 ?
由于普通redo 日志只是记录rowid 及更改前后的列的值即可对数据库进行恢复等动作,但是 类似 logical standby不是根据rowid 来做recover, 所以需要在redo里记录PK or unique index的信息来定位操作的数据行 。
那么关于logical standby 或 stream 中的 Supplemental Log 有个疑问 :
1,如果是所有table都有pk 或 unique index , 且都不是组合字段组成的 ,那么logical standby 或 stream中不需要启动 Supplemental Log , redo log 会自动附加记录pk 或 unique index 吗 (default ?) ?
2. 如果所有table 都有pk 或 unique index , 但是大部分表的pk 或 unique index 是由组合字段组成的,那么按照文档,我们需要启动 Supplemental Log ,这时候我们在更新pk 或 pk 中的部分字段的时候,Oracle会附件记录pk 中没有被更新的那些字段以便唯一标识 ? 如果我们只是更新pk 或unique index 之外的其他列,那么Oracle 会记录pk ,unique 之外的其他列还是会记录整个PK 或 unique index列来唯一标识 ?
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-630260/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-630260/