前些日子,公司服务器硬盘直接挂了,后来为了保证所以数据尽量不丢失,所以采取了replication技术(这个在另一篇博文《关于replication》)。
公司服务器都是虚拟的,所以要创建多一个都是copy自其它服务器。这就会产生一个麻烦,sqlserver的名字和distributor都还是之前服务器的。所以必须rename和删除distributor。
起初,我以为删除旧的sqlserver名字,重新命名就可以做replication。例如执行如下代码:
select @@servername
sp_dropserver 'WIN-TB64SEU3P19'
go
sp_addserver 'WIN-TB64SEU3P84','local'
go
但是当我做replication的时候一直都提示我没发成功,因为不存在“WIN-TB64SEU3P84”。后来找资料才发现
有一个distributor的实例必须要删除,否则不会成功。
因此正确的步骤是:
select @@servername
EXEC sp_dropdistributor @no_checks = 1--需要的时间会长点,耐心等待,当时我就是不够耐心,所以又重新来过一次
sp_dropserver 'WIN-TB64SEU3P19'
go
sp_addserver 'WIN-TB64SEU3P84','local'
go
因为起初的这个问题弄得我又接近通宵(三个服务器)