Oracle supplemental log的兩種型別

regonly1發表於2010-11-10
Oracle中要給表增加supplemental log,會有兩種方式:
一種是unconditional,一種是conditional,這兩種是什麼區別呢?
在CDC技術中,對於一個行,如果它被修改了,我們就要有一條記錄來記錄這些變更的欄位。那麼,對於其他未發生變更的欄位,該如何記錄呢?比如說,共有a,b,c,d,e五個欄位,a,c,e被修改了,那b,d是否需要記錄呢?這個時候,前面說的兩種方式就可以決定是否記錄發生變更的欄位的前映像。
unconditional即不管指定的欄位是否變化了,都會在變更記錄中記錄該欄位的前映像。
conditional即只記錄發生變更的欄位,不發生變化的就不記錄其前映像。
第一種方式可以透過:
alter table tab_name add supplemental log group splog_tabname(column_name) always;
第二種方式去掉always關鍵字即可。
以上內容,可以透過dba_log_groups和dba_log_group_columns兩個檢視來查詢。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-677839/,如需轉載,請註明出處,否則將追究法律責任。

相關文章