前幾天遇到跟複寫相關的錯誤[ 無法卸除資料庫 'ooxx'的問題,因為它已用來複寫。 (Microsoft SQL Server, 錯誤: 3724) ],先暫時筆記一下。
重現發生錯誤的情形,首先,移除訂閱(Subscription)
移除訂閱後,散發代理程式排程作業(Distribution Agent Job)會跟著被移除
接著,在不停用Log Reader Agent的情形下移除發行集(Publication)
會出現錯誤: 18752
重整SSMS的畫面,發行集及相關排程確實被移除
此時,執行原發行資料庫的刪除,卻出現下圖錯誤
[註]:若在刪除發行集前,先停用Log Reader Agent,則移除發行集時不會出現錯誤: 18752,後續刪除發行資料庫也能正常執行
為了能順利刪除發行資料庫,有以下幾種方式參考:
1.使用sp_replicationdboption預存程序
--在發行端執行
EXEC sp_replicationdboption 'RplTest1','publish',false
2.使用SSMS
3.使用sp_removedbreplication預存程序
--在發行端執行
sp_removedbreplication [RplTest1]
參考:
sp_replicationdboption (Transact-SQL)
sp_removedbreplication (Transact-SQL)
Jay Huang