在一個測試伺服器刪除發佈(Publication)時遇到下麵錯誤,具體如下所示 標題: Microsoft SQL Server Management Studio ------------------------------ Could not delete publication 'RPL_GE... ...
在一個測試伺服器刪除發佈(Publication)時遇到下麵錯誤,具體如下所示
標題: Microsoft SQL Server Management Studio
------------------------------
Could not delete publication 'RPL_GES_MIS_QCSDB'.
------------------------------
其他信息:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
'xxxxx' is not defined as a Subscriber for 'xxxx\xxxx'.
Could not update the distribution database subscription table. The subscription status could not be changed.
Changed database context to 'xxxx'. (Microsoft SQL Server,錯誤: 20032)
其實這個環境是克隆過來,生產伺服器是配置過發佈訂閱,複製克隆後,修改過伺服器名稱,另外在實際伺服器上,並沒有真的訂閱這個Publication,當然這個測試環境的複製可能還被人折騰過。這個就是我當前案例的環境。
遇到這個錯誤時,可以使用下麵腳本刪除所有Subcrition後,
USE DataBaseName;
GO
EXEC sp_dropsubscription
@publication =N'RPL_GES_MIS_QCSDB', --根據具體情況填寫Publication名稱
@article= N'all',
@subscriber=N'all',
@ignore_distributor=1;
然後手工刪除分發伺服器(當然也可以使用下麵腳本刪除,根據實際情況,修改對應的資料庫名稱)。
use DatabaseName;
GO
exec sp_droppublication @publication = N'RPL_GES_MIS_QCSDB', @ignore_distributor = 1
exec sp_helpreplicationdboption @dbname = N'DatabaseName', @reserved = 1
use [DatabaseName]
exec sp_helppublication
use [DatabaseName]
exec sp_replicationdboption @dbname = N'DatabaseName', @optname = N'publish', @value = N'false'