积极答复者
数据库使用镜像迁移导致的复制问题

问题
-
麻烦大家给介绍个好的方案,问题如下:
在用的数据库服务器A 性能不行了,要换机器。但IP又不能变更,而且对业务的影响要到最短时间。
当前的做法:
1、先准备一台替换服的服务器B。
2、A上面的数据库全部做了镜像到新机器B
3、把主库切到B后,替换A和B的IP地址,重启数据库(这时可以暂不做镜像)
存在问题:
原本A机器上还有复制配置,做事务发布,推送到C和D服务器上 。 发布和分发服务器都是在A上。 虽然可以通过镜像的方式先把库切到B,但复制的配置没法过去。由于A是较早的版本,B服务器上安装的MSSQL版本与A不同,不能把A的Master,MSDB等系统数据库在B上还原。
在B替换A后(换成原来A机器的IP),导致原来A上的作业要重新配置,复制也要重新推送。影响C,D上的业务查询。对业务造成较大的影响。
在此请教各位老师,大侠们,在这种条件下采用什么样的方案能将对业务的影响减少到最好。最好不要重新做发布,分布,初始化订阅的操作。
答案
-
Means that machine is not configured for replication.
- 已标记为答案 Amy PengMicrosoft employee, Moderator 2013年4月17日 9:34
全部回复
-
由于服务器名不一样。这次迁过来问题大了。现在复制又不能用了。
执行了
DELETE FROM msdb.dbo.MSdistpublishers后,现在服务器上本地发布都是空的,但系统数据库里distribution库还在,右键点本地的复制,弹出菜单里也没有禁用发布和分发选项(系统认为是没有配置的,但DISTRIBUTION库却还是在的。),要想重新建一个发布,但就是弹不出新建发布的菜单,要进行这样的操作时,MSSQL就提示忙。
MSSQL版本:9.0.5000
====现在我还原了一个干净的MSDB进去,但DISTRIBUTION库,还是无法新建发布。现在如何删除DISTRIBUTION库呢?- 已编辑 hsphoenix 2013年4月9日 23:52
-
-
停止所有与复制相关的作业。 有关作业名称列表,请参阅复制代理安全模式的“SQL Server 代理下的代理安全性”部分。===NO any job.
-
在每个订阅服务器上,对订阅数据库执行 sp_removedbreplication 以从该数据库删除复制对象。 此存储过程不会删除分发服务器上的复制作业。==没有订阅服务器连接
-
在发布服务器上,对发布数据库执行 sp_removedbreplication 以从该数据库删除复制对象。==执行正确,无错误提示
-
如果发布服务器使用远程分发服务器,则执行 sp_dropdistributor。==本地分发,这步不执行。
-
在分发服务器上,执行 sp_dropdistpublisher。 应为在分发服务器上注册的每个发布服务器运行一次此存储过程。===错误如下
-
在分发服务器上,执行 sp_dropdistributiondb 以删除分发数据库。 应为在分发服务器上注册的每个分发数据库运行一次此存储过程。 此操作还将删除与分发数据库关联的任何队列读取器代理作业。
-
在分发服务器上,执行 sp_dropdistributor 以从该服务器删除分发服务器指定。
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB as sysname;
SET @distributionDB = N'distribution';
SET @publisher=$(DistPubServer);
SET @publicationDB = N'XXXXXX';
-- Disable the publication database.
USE XXXXXX
EXEC sp_removedbreplication @publicationDB;
-- Remove the registration of the local Publisher at the Distributor.
USE master
EXEC sp_dropdistpublisher @publisher;
-- Delete the distribution database.
EXEC sp_dropdistributiondb @distributionDB;
-- Remove the local server as a Distributor.
EXEC sp_dropdistributor;
GO===执行这个提示:
消息 102,级别 15,状态 1,第 6 行
接近 'DistPubServer' 之處的語法不正確。 -
-
Means that machine is not configured for replication.
- 已标记为答案 Amy PengMicrosoft employee, Moderator 2013年4月17日 9:34