レプリケーションが設定されたSQL Server 2008 のデータベースを、異なるネットワークのSQL Server 2008にリストアすると、
レプリケーション設定まで復元されました。
SQL Server Management Studio(SSMS)のUIからサブスクリプションを削除しようとすると、エラーが発生し削除できなくなりました。
どうやら、削除しようとすると、サブスクリプション先に通信をおこなっているらしく、サブスクリプション先が存在しないとエラーになるようです。sp_dropsubscriptionストアドプロシージャを使用してサブスクライバを強制的に削除します。下に使用例を記載します。
exec sp_dropsubscription @publication='sample_publication',@article='all',@subscriber='svr001',@ignore_distributor=1
※パブリケーションDB上で動かす必要がある重要なのは @ignore_distributor=1 となっているパラメタです。この設定で強制的にサブスクリプションが削除されます。
@publicationはパブリケーション名
@articleに削除するアーティクル名(allはすべて削除)
@subscriber はサブスクライバ名(サーバ名)
現場でこの状態に陥ってかなり焦った。