sql server同步复制虽设置步骤简单,但是同步不成功出错问题难排查,现转载引用下某仁兄的博文省得截图了并记录下过程中需注意的项,做个提醒:

配置环境

两台服务器:

发布服务器,以下简称PS。

订阅服务器,以下简称SS。

两台服务器都是Windows Server 2003,SQL Server是2005企业版64位。

测试数据库为TestRepl

创建Windows用户

在PS和SS上分别创建用户ReplUser-PS和ReplUser-SS,都隶属于Administrator组。

15194340-b7e3486f0e474aa391e57ad55675a8915195649-7bfd776a4c314197a1a457bfbfc18e5

创建快照文件共享目录

在PS上创建存放快照文件的物理目录并设置为共享目录,比如:D:\ReplData,右键ReplData文件夹——点击属性——选择共享选项卡——点击权限按钮——弹出分配权限窗口——添加之前创建的专门用于数据同步复制的Windows帐号 RelUser-PS——权限勾选"完全控制"——确定。

15195105-e577fce1a5a7414a936223e66a2f8a7

创建数据库登录名

在PS上登录数据创建一个新的数据库登录名,类型为Windows 身份验证,名称就是之前添加的用户名,不过注意这里需要域名+用户名。可以在添加隶属用户组的时候看到这个全名。

15195720-27124722a2c0404eafbced8b36523de

点击用户映射,勾选上测试数据库,角色勾选上db_owner和public。确定即可。

15195912-0c5941cd36f24e8c98e55ce378a1667

创建发布

在PS上的SQL Server2005 Managerment Studio中右击复制——本地发布打开发布向导。接下来就是按步骤一步步来了。

15201227-609470743c9e4dcf91868f4d27a8c4d

快照路径就是刚设置的共享目录。

15201258-7d7f742450e84c85a25a257ef1b6674

15201307-b838e9efa28a4f2f966c215982ccf30

选择发布对象。

15201325-996826044819472eae7132416336743

设置发布计划。注意:发布创建后计划不能修改,需要提前规划好。

15201426-46d32757673544d7ab5f1c8899722a6

设置安全代里。用户就是之前建立的用户。

15201607-15a48f8a4db547b1803b4d8ba087851

点击完成就可以了。

注意:必须以登录默认实例才能进行发布操作:

15201844-5b4714d1d767432cb32b51eed47cf2e

否则会报如下错误:

15201857-cb9a28b054cc44bf8af23964ed660b0

相互注册数据库引擎

在PS上注册SS,点击SQL Server Management Studio——视图——已注册的服务器——右击“数据库引擎”——新建“服务器注册”,如图填写注册信息,测试保存。

16091044-43524e8b02bb4ac0b4db1be4bd058e7

同样的再SS上注册PS。

创建订阅

类似的登录SS上默认实例的SQL Server2005 Managerment Studio中右击复制——本地订阅打开订阅向导一步步设置就可以了。

第一配置应该看不到PS上发布的订阅,点击<查找SQL Server 发布服务器>,以SQL Server验证方式登入PS上SQL Server的默认实例即可。

15202645-8e2e1b8cbbcb4b2f841914bae2a74e1

15202845-e2d7adc2dcec473386ad0a880d64f8b

分发代理设置,选择默认的就行。

15203009-f4ddebeacdaf4bd8bef4e911b677fef

设置订阅数据库。注意:这个数据库必须在订阅的SQL Server上存在。

大注:以下第一项应填为订阅服务器的帐号,且格式为机器名\帐号名.

第二项连接到分发服务器:使用模拟进程帐户或sql server登录名验证都可以的.

16091659-f2a8f88027da4fcf81de2b4f32cf84c

设置分发代理安全性。以SQL Server身份验证登录。点击完成。

注意:这里填的是分发服务器的用户名和密码。

16092520-6b2415ca90dc4cc1ba3d99d05261992

代理计划根据实际需要制定。注意:订阅创建后计划不能修改,需要提前规划好。

16092641-98ecf263ae5d487cbb94eaa9a249e05

初始化时间选择立即首次同步时

15203521-330fd934416640458272f6c00b3abc0

另外需要说明的是:

订阅服务和发布服务都依赖于SQL Server的代理。

15203736-0f66ed9828e74d71b3f44793aa08b81

常见错误&注意事项

1、创建订阅,设置安全代理的时候,连接分发服务器选择SQL Server登录名,注意这里填的分发服务器,而不是订阅服务器的。

16091659-f2a8f88027da4fcf81de2b4f32cf84c

如果配置出错:右击订阅查看同步状态汇报连接不到分发服务器的错误。

2、共享的快照文件夹没有相应的权限。

3、快照的文件夹路径应该填的是共享路径而不是绝对路径,上面的配置过程中就配置是错误的:

16183522-198dc560e89e4f3585f0efd4d3dbd37

如果之前配错了,可以右击之前新的发布,点属性:

16183805-5b585d2aca544041aed5c5a338a0478

重新设置快照路径即可。

16183822-a92835b67b394624b74ad6a1a526204

4、新增表或其他对象需要同步需要重新修改发布对象,在发布属性里修改即可。

17094422-e7e4cfdca025471caf3f6a644feb066

5、配置SQL Server同步计划之间要查看下SQL Server服务器名跟机器是否同名,不同名可能会导致一系列问题

select@@servername

6、如果发布服务器和订阅服务器不在同一个域内,最好保证新建的WINDOWS用户名和密码都相同。

7、如果后期有需要更改发布服务器系统帐号密码时,可能订阅不成功,没找到修改验证密码的地方。

  我的方法,登录到sql server management studio-->视图菜单下-->重新注册服务器,确保验证成功能连接到发布服务器,再重新新建订阅。

  有相关IIS服务的话,IIS设置中的服务器验证项密码也需同步改掉。否则IIS站点访问也有问题。

  windows服务器系统密码乱改此为大忌啊,相关联服务都迁受影响。所以最讨厌windows服务器了,出错查日志都不好查。

参考自:

       http://blog.csdn.net/ljsql/article/details/7743048