トップ回答者
バックアップから復元したデータベースのレプリケーション設定が削除できません。

質問
-
バックアップから復元したデータベースのレプリケーション設定が削除出来なくて困っています。
旧環境
OS:Windows Server 2003 R2
SQL Server 2005 STD SP4
AD:exm.localに参加
ホスト名:svr1
でデータベースを運用しておりました。
またsvr1がディストレビュータ―及びパブリッシャーになり
2つのトランザクションレプリケーションを設定しておりました。
2つともプッシュ型でサブスクライバは1つずつです。今回OSとSQLを
OS:Windows Server 2012 R2
SQL Server 2012 SP1
に致しました。
ハードウェアは1つしかありませんでしたので
DBのバックアップを取ってからOSをクリーンインストール。
その際にバックアップを行ってからレプリケーションの設定を削除してしまいました。ホスト名を含め同じ環境でサーバを構築しバックアップから復元したところ
ローカルパブリケーションが2つ。それぞれにサブスクリプションが1つずつ設定がありました。
これらを削除したいのですが、management studioで削除しようとしても
エラーが出てどうにも削除できません。エラー内容
'xxsrv'は'svr1'のサブスクライバーとして定義されていません。
ディストレビューションデータベースのサブスクリプションテーブルを更新できませんでした。
今考えるとdistribution等のシステムデータベースもバックアップを
取っておけばよかったのでしょうが、バックアップを取っておいたのは
1つのユーザデータベースのみです。いろいろ調べて下記のコマンド
sp_dropsubscription @publication='all',@article='all',@subscriber='all',@ignore_distributor=1
を実行するとパブリッシャーが有効ではない。と怒られます。
ディストレビューションデータベースから削除するコマンドのようですので
当然と言えば当然でした。
ユーザデータベースがレプリケーションの設定を持っていると思うのですが
どのようにして削除したらいいのか情報を見つけることが出来ませんでした。とりあえずホスト名が異なるサーバにバックアップを戻すと
レプリケーションの設定がされませんでしたので現在はホスト名を変えて
なんとか運用しています。svr2に復元し、レプリケーションの設定がmanagement studio上で表示されないことを確認して
バックアップを取りsvr1へ復元してみましたがレプリケーションの設定は消えていませんでした。バックアップから戻すときのオプションでレプリケーションの設定は
復元しないようにしていても復元されてしまうのが納得がいきませんが
これは正しい動作なのでしょうか。また、なんとかバックアップから復旧させた後にレプリケーションの設定を消す方法
もしくはレプリケーションの設定がない形で復元する方法はありませんでしょうか。ご教授お願いいたします。
回答
-
下記の手順ではいかがでしょうか?
GUI を使う方法と Transact SQL で操作する方法、どちらか一方でもうまくいけば良いのかなと思います。
http://technet.microsoft.com/ja-jp/library/ms151759.aspx上記ページ内で紹介されている sp_removedbreplication は、ディストリビューションデータベースとの整合性を維持しないため、他の方法でレプリケーションを削除できなかったときだけ使うよう警告されているようななかなか強烈なストアドですので、あまり積極的にお勧めしてはいけない気もしますが、この状況の場合は試してみる価値はあるかと思われます。
MCITP(Database Developer/Database Administrator)
- 回答としてマーク T.Tappu 2014年3月27日 6:43
すべての返信
-
下記の手順ではいかがでしょうか?
GUI を使う方法と Transact SQL で操作する方法、どちらか一方でもうまくいけば良いのかなと思います。
http://technet.microsoft.com/ja-jp/library/ms151759.aspx上記ページ内で紹介されている sp_removedbreplication は、ディストリビューションデータベースとの整合性を維持しないため、他の方法でレプリケーションを削除できなかったときだけ使うよう警告されているようななかなか強烈なストアドですので、あまり積極的にお勧めしてはいけない気もしますが、この状況の場合は試してみる価値はあるかと思われます。
MCITP(Database Developer/Database Administrator)
- 回答としてマーク T.Tappu 2014年3月27日 6:43