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"には、オプションを有効にするか、無効にするかの値を与えます。
例
パブリケーションしているデータベース"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