DBMotoで差分レプリケーション(ミラーリング・シンクロナイゼーション)を行う場合には、トランザクションログを参照してどのレコードでトランザクションがあったかを識別させるためにデータベースのテーブルに主キー(PK)が必要です。もちろん複合キーでも可能です。
・・・テーブルに主キーがない場合はレプリケーションできないのでしょうか・・・?
いいえ、心配いりません。DBMotoではテーブルに主キーがない場合に、DBMotoで差分レプリケーションを行うためにPKとして扱うフィールドを疑似的に設定することが可能です(仮想PKと呼んでいます)。こちらも複合キーの設定は可能です。その際DBサイドに変更を加えることもありません。
ただし仮想PKとして設定するフィールドの値は一意で重複しない値であることが必要です。1つのフィールドでは重複するようであれば複合キーの設定を検討する必要があります。
手順は下記の通り。
以上で設定は完了です。簡単です。
なお、SQLServerのディストリビュータ機能を使用した差分レプリケーションに限り、この仮想PK設定は使用できません。データベースのテーブルにPKが必須となります。
関連したトピックス
- SQL Server のデータベースパフォーマンス監視の重要性 [DPA]
- SQLServerがソースDBの時の注意事項【リアルタイムレプリケーションツールDBMoto】
- HiT OLEDB/400とSQL Server:DTSによる通信
- HiT OLEDB Server/400での文字データの転送における文字問題
- SQLServerでのDistributorを使用したミラーリングについて【リアルタイムレプリケーションツールDBMoto】
- リモートディストリビュータ(SQLServer)【リアルタイムレプリケーションツールDBMoto】
- ミラーリング時にWarningメッセージが表示される場合【リアルタイムレプリケーションツールDBMoto】
- ソース・ターゲットの設定手順(各DB別)【リアルタイムレプリケーションツールDBMoto】
- マルチデータベース管理の旅へ
- レプリケーション設定手順(各DB別)【リアルタイムレプリケーションツールDBMoto】