DBeaver のOracle - handson source databaseを右クリックします。
コンテキストメニューからSQL Editorを選択します。
サプリメンタルロギングとは、Oracle の REDO ログに追加の情報を記録する機能です。 これにより異なるデータベースエンジン間でも、更新された行を一意に識別することができるようになります。
詳しくは、Oracle のドキュメントを参照してください。 https://docs.oracle.com/cd/E82638_01/sutil/oracle-logminer-utility.html#GUID-D857AF96-AC24-4CA1-B620-8EA3DF30D72E
SQL Editor に以下を入力して Ctrl + Enter または、オレンジの ▶︎ アイコンをクリックします。
call rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');
詳細は DMS のドキュメントを参照してください。 https://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Source.Oracle.html
プライマリキーロギングを有効にします。
call rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD',
'PRIMARY KEY');
サプリメンタルロギングが有効になったことは以下の SQL で確認できます。
select supplemental_log_data_min, supplemental_log_data_pk from v$database;
MLB_DATA / NFL_DATA / NFL_STADIUM_DATA はプライマリキーがないため、以下の SQL でサプリメンタルロギングできるように個別に設定します。
alter table dms_sample.mlb_data
add supplemental log data (ALL) columns;
alter table dms_sample.nfl_data
add supplemental log data (ALL) columns;
alter table dms_sample.nfl_stadium_data
add supplemental log data (ALL) columns;
SQL は 1 行ずつ実行してください。
上記のように alter table 文でプライマリーキーのないテーブル個別にサプリメンタルロギングを設定せずに、call rdsadmin.rdsadmin_util.alter_supplemental_logging(‘ADD’, ‘ALL’) で、データベース全体にサプリメンタルロギングを適用することも可能ですが、REDO ログのサイズが大きくなる点に注意してください。
MLB_DATA / NFL_DATA / NFL_STADIUM_DATA の全列がサプリメンタルロギングされていることを以下の SQL で確認します。
select table_name, log_group_type from dba_log_groups
where table_name in ('MLB_DATA', 'NFL_DATA', 'NFL_STADIUM_DATA')
and log_group_type like 'ALL%';
また、Oracle をソースデータベースにする場合、アーカイブログモードを有効にする必要があります。
RDS for Oracle ではバックアップ保持期間が 1 日以上の場合はアーカイブログモードになります。
以下の SQL でアーカイブログモードが有効であることを確認します。
select log_mode from v$database;
ARCHIVELOG と表示されれば有効になっています。