表レベルのサプリメンタル・ロギングの有効化
サプリメンタル・ロギングの有効化は、Oracle GoldenGateによってソースDML操作のチェンジ・データ・キャプチャをサポートするように、また、ロギングのレベルに応じて、競合の検出および解決が構成されている双方向レプリケーションなどの場合に必要となる、変更されない追加の列が含められるプロセスです。
PostgreSQLには、表のREPLICA IDENTITY設定に相当する4つのレベルの表レベルのロギングがあり、それらのレベルにはNOTHING、USING INDEX、DEFAULTおよびFULLが含まれます。
Oracle GoldenGateでは、非圧縮の証跡レコードおよび競合の検出および解決を必要とするユースケースにFULLロギングが必要です。ただし、表に主キーまたは一意索引がありその変更が単純な単方向構成でレプリケートされる場合や、イメージ前レコードまたは非圧縮レコード全体が不要である場合は、DEFAULTレベルが使用できます。NOTHINGおよびUSING INDEXロギング・レベルは、Oracle GoldenGateでサポートされておらず、ADD TRANDATAでは設定できません。
次に、管理クライアントからADD TRANDATAを発行する構文を示します。
DBLOGIN SOURCEDB *dsn_name* USERIDALIAS *alias_name*
ADD TRANDATA *schema*.*tablename* ALLCOLS
ノート:主キーまたは一意索引が存在する表では、表に対してFULLロギングを設定するためにALLCOLSオプションが必要であり、それ以外の場合は、DEFAULTロギングが設定されます。
FULLロギングは、ALLCOLSが指定されているかどうかに関係なく、主キーまたは一意索引が存在しない表に対して常に設定されます。
サプリメンタル・ロギングのレベルを確認するには:
INFO TRANDATA *schema*.*tablename*