Syniti DR -SQL Server
SQL Serverでログ配布を受けているスレーブ側サーバからレプリケーションできますか?
SQL Serverの仕様上の制約によりできません。
シンクロナイゼーション レプリケーション作成時にエラーが発生します。 「接続’DB接続名’用に定義されたユーザ’sa’はsysadminであり、シンクロナイゼーションでは有効ではありません。sysadmin以外のユーザでログインを定義してください。また、ディストリビュータを作成し、トランザクションログを読むためにsysadminのログインIDを供給しています。」
SQL Serverの接続設定に「sa」以外のユーザをご利用ください。
シンクロナイゼーションでは、更新がループしないようにするため、接続設定に使用したユーザでの更新はレプリケーション対象として検出しない仕様となっております。
そのため、シンクロナイゼーションを行う場合には、DBMoto専用ユーザを用意する必要がございます。
「sa」はDBMoto専用とすることができないため、このようなエラーが発生します。
ビューのレプリケーションに対応していますか?
参照するベースのテーブルが1つの場合かつSQLServerのビュー更新条件(特定の関数が使用されていないこと)を満たしている場合に限り、リフレッシュのみ可能です。
複数のベーステーブルを参照するビューの場合は、ビューの仕様でinsert, update, deleteが行えず、selectのみ可能となりますので、DBMotoでも同様にレプリケーションは行えなくなります。
どのようにして差分レプリケーションが行われますか?
Distributorを参照する方法と、トリガーログテーブルを作成する方法があります。
SQL Server Express Editionに対応していますか?
対応しております。ただし差分レプリケーションの際にDistributorを使用することはできず、トリガーテーブルを作成する必要があります。
バイナリデータはレプリケーション可能ですか?
可能です。
SQLServerへのレプリケーションで以下のエラーが発生しました。 System.Data.SqlClient.SqlException: IDENTITY_INSERT が OFF に設定されているときは、テーブル ‘XXXX’ の ID 列に明示的な値を挿入できません。
SQLServerのフィールドIdentityの仕様によるものです。Identity以外のPKフィールドを用意するかIdentity自体をOFFにする必要があります。
レプリケーション中にSQLServer側のコネクション数が最大値に達したというエラーが出ます。
SQL Server側とDBMoto側のMax Pool Sizeをご確認ください。DBMoto側のデフォルト値は100です。