データベースのパブリケーションを無効にする - SQL Server

SQL Serverでデータベースのパブリケーションを無効にする方法を紹介します。

概要

SQL Serverにおいて、データベースのレプリケーションを一時的に停止したいことがあります。特にデータベースのデタッチはレプリケーションが有効の場合には実行できないため、一時的にレプリケーションを停止する必要があります。この記事では、パブリケーションを削除することなく、データベースのパブリケーションを無効にする手順を紹介します。

手順

sp_replicationdboption を利用します。

書式

sp_replicationdboption [ @dbname= ] 'db_name'   
        , [ @optname= ] 'optname'   
        , [ @value= ] 'value'   
    [ , [ @ignore_distributor= ] ignore_distributor ]  
    [ , [ @from_scripting = ] from_scripting ] 
と定義されていますが今回の利用では
sp_replicationdboption @dbname='(対象のデータベース名)', @optname='(オプション名)',@value='value'
となります。

optname

"optname"は有効、または無効にするオプションの種類を指定します。以下の値を指定できます。
意味
merge publishマージ パブリケーション
publish他の種類のパブリケーション
subscribeサブスクリプション データベース
sync with backup連携バックアップ

value

"value"には、オプションを有効にするか、無効にするかの値を与えます。
意味
true有効にする
false無効にする

パブリケーションしているデータベース"iPentecSandBox"に対し、下記のSQLを実行することで、パブリケーションを無効にできます。
sp_replicationdboption @dbname='iPentecSandBox', @optname='publish', @value='false'

パブリケーションを再度有効にする場合は。下記のSQLを実行します。
sp_replicationdboption @dbname='iPentecSandBox', @optname='publish', @value='true'

実行結果

コマンドが実行されると下図の結果となります。

パブリケーションを無効にした場合


パブリケーションを有効にした場合


注意
sp_replicationdboption でパブリケーションを無効にした場合でも、データベースをドロップするとパブリケーションの登録が削除されてしまう場合があります。データベースをドロップする場合には、パブリケーションを削除したほうが確実かもしれません。

著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2024-01-07
作成日: 2016-11-07
iPentec all rights reserverd.