在數據庫服務器刪除復制(發布訂閱)后,如何刪除掉數據庫distribution呢?如果你通過SSMS工具去刪除數據庫distribution,你會發現根本沒有刪除選項。 下面介紹一下刪除distribution的步驟
步驟1: 查看相關訂閱服務器的信息,如果還存在對應的訂閱服務器,從注冊的服務器中刪除訂閱服務器名稱
exec sp_helpsubscriberinfo ;
go
exec sp_dropsubscriber 'SubscriberName';
go
步驟2: 查看分發服務器的發布服務器的屬性
exec sp_helpdistpublisher;
步驟3: 刪除分發發布服務器
exec sp_dropdistpublisher @publisher = 'PublisherName'
步驟4: 使用sp_dropdistributiondb刪除數據庫distribution
use master;
go
exec sp_dropdistributiondb @database = N'distribution'
go
use master;
go
exec sp_dropdistributor @no_checks = 1, @ignore_distributor = 1
go
注意事項:
1:錯誤信息“Could not drop the distribution database 'distribution'. This distributor database is associated with a Publisher.”
exec sp_dropdistributiondb @database = N'distribution'
GO
消息 14120,級別 16,狀態 1,過程 sp_dropdistributiondb,第 85 行
Could not drop the distribution database 'distribution'. This distributor database is associated with a Publisher.
出現這個錯誤,是因為必須先刪除對應的分發發布服務器,否則就會出現下面錯誤。
2:錯誤信息“Cannot drop the distribution database 'distribution' because it is currently in use”
exec sp_dropdistributiondb @database = N'distribution'
go
消息 21122,級別 16,狀態 1,過程 sp_dropdistributiondb,第 124 行
Cannot drop the distribution database 'distribution' because it is currently in use.
出現上面情況,是因為會話窗口使用的數據庫是distribution,你可以指定會話窗口的數據庫為master或使用下面語句即可解決問題。
use master;
go
exec sp_dropdistributiondb @database = N'distribution'
go
另外由於某些原因,導致無法使用sp_dropdistributiondb刪除distribution數據庫。此時可以使用下面方式強制刪除數據庫distribution。
use master
go
alter database distribution set offline;
go
drop database distribution;
或
use master;
go
alter database distribution set single_user with rollback immediate
go
drop database distribution;
go