0

2 つの MSSQL 2012 データベースがあります。最初のサーバーがパブリッシャーおよびディストリビューターであり、もう 1 つのサーバーがサブスクライバーであるスナップショット レプリケーションを構成しています。

レプリケーション ジョブが発生する直前にパブリッシャでコマンドを実行し、レプリケーションが終了した直後にサブスクライバで別のコマンドを実行できるようにしたいと考えています。

エージェントがサブスクライバー サーバーに配置されるように、これはプル スナップショット レプリケーションである必要があると思います。

これは可能ですか?

編集。スナップショット レプリケーションの性質上、トランザクション レプリケーションの使用に切り替えたため、レプリケーションの開始時と停止時にスクリプトを実行できなくなりました。

4

1 に答える 1

0

トランザクションレプリケーションに切り替えたため、データがレプリケートされているときにコマンドを正常に実行する方法を見つけることができませんでした。このトランザクションタイプを処理するジョブは、開始してから実行を継続します。ジョブが開始(データを複製)するスナップショットレプリケーションとは異なり、停止します。

代わりに、タスクスケジューラを使用して、実行する必要のあるジョブを設定しました。私のサービスは、データベースを介してWebサーバーとの間でファイルを転送します。また、ファイルがまだ存在しない場合にのみ転送されます。

タスクスケジューラの使用は非常にうまく機能しており、SQLスクリプトを実行して、PowerShell Remotingコマンドを実行してサーバーに接続し、サービスを実行するよりもはるかにシンプルで安定しています。

他の誰かが同様の問題に遭遇した場合、私はこれを追加すると思いました:)

于 2012-12-05T09:08:33.950 に答える