修改sqlserver名字是存在distributor该如何
前些日子,公司服务器硬盘直接挂了,后来为了保证所以数据尽量不丢失,所以采取了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
因为起初的这个问题弄得我又接近通宵(三个服务器)