一、配置分发服务器

1.可能会出现的问题

(1)在sqlserver 2008 r2 上面做发布/订阅的时候,服务器上发布时出现:”sqlserver 无法将xxx配置为分发服务器 “错误

SELECT @@SERVERNAME,SERVERPROPERTY('SERVERNAME')

本地输出是:USKY-RD-TESTDB , USKY-0493BB2863
发现不一致,需要执行以下命令:

exec sp_dropserver 'USKY-0493BB2863'
  GO
exec sp_addserver 'usky-RD-TestDB',LOCAL
  GO

或者

USE master
        GO
        -- 设置两个变量
        DECLARE @serverproperty_servername  varchar(100),@servername    varchar(100)
        -- 取得Windows NT 服务器和与指定的 sql Server 实例关联的实例信息
        SELECT @serverproperty_servername = CONVERT(varchar(100),SERVERPROPERTY('ServerName'))
        -- 返回运行 Microsoft sql Server 的本地服务器名称
        SELECT @servername = CONVERT(varchar(100),@@SERVERNAME)
        -- 显示获取的这两个参数
        select @serverproperty_servername,@servername
        --如果@serverproperty_servername和@servername不同(因为你改过计算机名字),再运行下面的
        --删除错误的服务器名
        EXEC sp_dropserver @server=@servername
        --添加正确的服务器名
        EXEC sp_addserver @server=@serverproperty_servername,@local='local'

然后需要重启sqlserver服务器,不然修改无效

如果安装SQL之后 服务器修改主机名,造成不一致,且之前有存在复制发布
参考:SQL Server服务器名称与默认实例名不一致的修复方法
最后我是通过下面这条语句解决了问题

exec sp_setnetname 'repl_distributor','MSSQLSERVER'

(2)
服务器 ‘xxxx’ 已被定义为分发服务器。若要将该服务器重新配置为分发服务器,必须首先卸载现有的分发服务器。使用存储过程 sp_dropdistributor,或使用禁用发布和分发向导。已将数据库上下文更改为 ‘master’。 (Microsoft SQL Server, Error: 14099)

首先执行以下命令:

SELECT * FROM msdb.dbo.MSdistributor;

如果有结果说明之前没有删干净
执行以下命令:

解决方案参考:服务器 ‘xxxx’ 已被定义为分发服务器。若要将该服务器重新配置为分发服务器,必须首先卸载现有的分发服务
(3)

解决方案参考:

首先重启一下服务器有没有效果,不行的话试试下面这两种方法。
1.sqlserver2008R2在配置复制分发时报错:在执行xp_cmdshell的过程中出错
2.SQL SERVER 2008 执行xp_cmdshell的过程中出错,调用createprocess失败,错误代码 5 解决方案

2.配置分发服务器

打开Sql server代理

点击:复制-配置分发
然后如果没有特殊需求直接一直下一步到完成。
参考:配置分发服务器

二、配置对等事务复制

参考这个链接:配置对等事务复制
直接从下面这幅图所示的内容开始看起:

到下面这幅图先暂停一下:

!注意:

在点击完成之前,有个“生成包含创建发布步骤的脚本文件”,因为需要对另一台服务器进行同样的配置,可以把这个选项勾上,然后直接执行这个脚本就可以完成发布的配置。
但是执行完脚本后,还是需要配置下面这个“允许对等订阅”

其余步骤继续参照上述所给的博文链接进行操作。

更多推荐

sqlserver2008 对等事务复制教程(包含可能出现的问题及解决方案)