在数据库服务器删除复制(发布订阅)后,如何删除掉数据库distribution呢?如果你通过SSMS工具去删除数据库distribution,你会发现没有删除选项。那么怎么删除呢?
删除distribution步骤
步骤1: 查看订阅服务器的信息,如果还存在对应的订阅服务器,从注册的服务器中删除订阅服务器名称
exec sp_helpsubscriberinfo ;
go
exec sp_dropsubscriber 'SubscriberName';
go
步骤2: 查看发布服务器的属性,删除分发发布服务器
exec sp_helpdistpublisher;
go
exec sp_dropdistpublisher @publisher = 'PublisherName';
go
步骤3: 使用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、执行
exec sp_dropdistributiondb @database = N'distribution'
GO
出现错误信息“Could not drop the distribution database 'distribution'. This distributor database is associated with a Publisher.”
出现这个错误,是因为必须先删除对应的分发发布服务器,否则就会出现下面错误。
2、执行
exec sp_dropdistributiondb @database = N'distribution'
go
出现错误信息“Cannot drop the distribution database 'distribution' because it is currently in use”
出现上面情况,是因为会话窗口使用的数据库是distribution,你可以指定会话窗口的数据库为master或使用下面语句即可解决问题。
use master
go
alter database distribution set offline;
go
drop database distribution;
3、错误信息:由于服务器 '%s' 上存在已设置为允许复制的数据库,因此无法将该服务器作为分发发布服务器进行删除
描述:该存储过程在发布服务器的发布数据库中或在订阅服务器的订阅数据库中执行。 该过程将从执行它的数据库中删除所有复制对象,但它不会从其他数据库(例如,分发数据库)中删除对象。
解决方案:sp_removedbreplication 'XXX' XXX---移除允许复制的数据库。
4、无法获取有关Windows NT 组\用户‘组\用户’的信息,错误代码0x5(Microsoft SQL Server,错误:15404)
ALTER AUTHORIZATION ON DATABASE:: [数据库名] TO [sa]