Syniti Data Replication (旧DBMoto)は異種データベース間のレプリケーションツールです。
レプリケーション対象テーブルに実行されたDML文(Insert、Update、Delete)をSynitiが検知し、ターゲットテーブルに対して更新を実行します。
※DDL文(Alter、Drop、Truncate、Create)は対応しておりません。
そのため、例えばAlterクエリを実行し、テーブルにカラムを追加した場合、
Synitiはテーブル構成の変更を検知することができないため、
追加したカラム内のレコードについてはターゲットテーブルに連携されません。
Synitiでレプリケーション対象としているテーブル構成を変更した場合は、
Syniti側でテーブル構成の再読み込みとマッピング設定が必要となります。
以下が手順となります。
※稀なケースですが、メタデータに対する変更が反映されていない場合があります。Ctrl+Shift+Mを同時押しすることで、メタデータに対するコミット操作が可能ですので、メタデータに対する変更を完了する際には、この操作の実施をお願いいたします。
●環境情報
ソースデータベース: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をクリック
このように、レプリケーションジョブ定義後にテーブル構成が変更となった場合でも、テーブル構成情報を読み込み直し、マッピングすることで追加されたカラムに対してレプリケーションを実施できます。
また、削除されたカラムについても、スキーマ情報更新を実行することでコンソールから削除可能です。
関連したトピックス
- 初期同期(リフレッシュ)がより便利に! ステージングリフレッシュ機能
- Syniti(旧DBMoto)レプリケーションに必要なOracleユーザ権限 Trigger使用時
- DBMotoからSyniti Data Replicationへのアップグレード方法
- DBMotoレプリケーションに必要なOracleユーザ権限
- DBMotoレプリケーションに必要なMySQLユーザ権限
- Oracleトランザクションセットアップ例(Log ReaderまたはLog Server Agent)[Syniti Data Replication]
- DBMotoレプリケーションに必要なPostgreSQLユーザ権限
- サプリメンタルロギング設定の影響に関して[Syniti DR]
- DBMotoレプリケーションに必要なSQL Serverユーザ権限
- DBMotoレプリケーションに必要なOracle 12c(PDB/CDB)権限