レプリケーション対象テーブル構成変更後のSyniti Data Replication (旧DBMoto) マッピング対応について


Syniti Data Replication (旧DBMoto)は異種データベース間のレプリケーションツールです。
レプリケーション対象テーブルに実行されたDML文(Insert、Update、Delete)をSynitiが検知し、
ターゲットテーブルに対して更新を実行します。
※DDL文(Alter、Drop、Truncate、Create)は対応しておりません。

そのため、例えばAlterクエリを実行し、テーブルにカラムを追加した場合、
Synitiはテーブル構成の変更を検知することができないため、
追加したカラム内のレコードについてはターゲットテーブルに連携されません。

Synitiでレプリケーション対象としているテーブル構成を変更した場合は、
Syniti側でテーブル構成の再読み込みとマッピング設定が必要となります。

以下が手順となります。

●環境情報
ソースデータベース:SQL Server
ターゲットデータベース:Oracle

現在、Synitiのコンソールでは、SQL Server、Oracle双方ともに以下のようにカラムが3つ確認できます。

Synitiのコンソールからは、既にレプリケーションジョブが定義されている状態となります。

●ソーステーブルにカラムを追加した場合
ソーステーブルに対してカラムが追加された場合、
まずはSynitiのコンソールに対して追加されたカラムの読み込みが必要となります。

1. 対象レプリケーションジョブを右クリックし、レプリケーションジョブを無効化
2. カラムが追加されたテーブルを右クリックし、スキーマ情報更新をクリック

3. テーブル構成が変更されているため、以下のメッセージが表示されますが、はいをクリック

4. テーブルプロパティを確認すると、追加したtestというカラムがSynitiコンソールに反映されます。


5. ターゲットテーブル側にカラムを追加し、再度上記2~4の手順を実施してSynitiコンソールへカラム情報を反映

※Oracle側のtestカラムが反映されます。



6. レプリケーションジョブを右クリックし、プロパティをクリック



7. マッピングをクリック



8. 追加したカラム(test)がまだ紐づいていないことを確認



9. testカラムを右クリックし、フィールドへのマッピングへ進み、マッピングを設定



10. 追加したカラム(test)同士をマッピング



11. マッピングが設定されたことを確認し、OKをクリック




※シンクロナイゼーションモードを設定している場合には、追加で以下のように逆向きのマッピング設定が必要です。

11-1. フィールドマッピングの画面より、マッピング方向ボタンをクリック



11-2. ターゲットテーブルからソーステーブル向きのマッピングが設定されていないことを確認

11-3. マッピングを追加

11-4. ターゲットテーブルからソーステーブル向きのマッピングが設定されていることを確認し、OKをクリック

このように、レプリケーションジョブ定義後にテーブル構成が変更となった場合でも、テーブル構成情報を読み込み直し、マッピングすることで追加されたカラムに対してレプリケーションを実施できます。

また、削除されたカラムについても、スキーマ情報更新を実行することでコンソールから削除可能です。


関連したトピックス

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください