更新可能トランザクション サブスクリプションの更新モードの切り替え
適用対象: SQL Server
SQL Server Management Studio または Transact-SQL を使用して、更新可能トランザクションの更新モードを切り替える方法について説明します。 サブスクリプションの新規作成ウィザードを使用して、更新可能サブスクリプションのモードを指定します。 このウィザードを使用する場合のモードの設定については、「プル サブスクリプションのプロパティの表示または変更」を参照してください。
このトピックの内容
作業を開始する準備:
更新可能トランザクション サブスクリプションの更新モードを切り替えるために使用するもの:
はじめに
制限事項と制約事項
- 即時更新からキュー更新に、いつでもフェールオーバーできます。 ただしそれ以降、サブスクライバーとパブリッシャーが接続され、キュー リーダー エージェントによってキュー内の保留中メッセージがすべてパブリッシャーに適用されるまで、即時更新に戻すことはできません。
推奨事項
- トランザクション パブリケーションへの更新サブスクリプションで更新モード間のフェールオーバーがサポートされている場合、接続が短時間で変化する状況に対応するために、更新モードをプログラムで変更することができます。 更新モードはレプリケーション ストアド プロシージャを使用して、プログラムから設定することも、要求時に設定することもできます。 詳細については、「 Updatable Subscriptions for Transactional Replication」を参照してください。
SQL Server Management Studio を使用する
Note
サブスクリプションを作成した後で更新モードを変更するには、 update_mode プロパティを failover (即時更新をキュー更新に切り替え) または queued failover (キュー更新を即時更新に切り替え) に設定する必要があります。 これらのプロパティは、サブスクリプションの新規作成ウィザードで自動的に設定されます。
プッシュ サブスクリプションの更新モードを設定するには
SQL Server Management Studio でサブスクライバ―に接続し、サーバー ノードを展開します。
[レプリケーション] フォルダーを展開し、 [ローカル サブスクリプション] フォルダーを展開します。
更新モードを設定するサブスクリプションを右クリックしてから、 [更新方法の設定]をクリックします。
[更新方法の設定 - <Subscriber:> <SubscriptionDatabase>] > ダイアログ ボックスで、[即時更新] または [キュー更新] を選択します。
[OK] を選択します。
プル サブスクリプションの更新モードを設定するには
[サブスクリプションのプロパティ - <Publisher>: <PublicationDatabase>]> ダイアログ ボックスで、[サブスクライバーの更新方法] オプションで、[変更をすぐにレプリケートする] または [変更をキューに登録] のいずれかの値を選択します。
[OK] を選択します。
[サブスクリプションのプロパティ - <Publisher> <PublicationDatabase>] ダイアログ ボックスへのアクセスの詳細については、「プル サブスクリプションのプロパティの表示または変更」を参照してください。
Transact-SQL の使用
更新モードを切り替えるには
プル サブスクリプションの場合は sp_helppullsubscription 、プッシュ サブスクリプションの場合は sp_helpsubscription を実行して、サブスクリプションでフェールオーバーがサポートされていることを確認します。 結果セットの update mode の値が 3 または 4の場合、フェールオーバーがサポートされます。
サブスクライバー側のサブスクリプション データベースに対して、 sp_setreplfailovermodeを実行します。
@publisher
、@publisher_db
、@publication
を指定し、@failover_mode
に次のいずれかの値を指定します。queued - 接続が一時的に失われた場合、キュー更新にフェールオーバーします。
immediate - 接続が回復した場合、即時更新にフェールオーバーします。