sql server同步复制虽设置步骤简单,但是同步不成功出错问题难排查,现转载引用下某仁兄的博文省得截图了并记录下过程中需注意的项,做个提醒:
配置环境
两台服务器:
发布服务器,以下简称PS。
订阅服务器,以下简称SS。
两台服务器都是Windows Server 2003,SQL Server是2005企业版64位。
测试数据库为TestRepl
创建Windows用户
在PS和SS上分别创建用户ReplUser-PS和ReplUser-SS,都隶属于Administrator组。
创建快照文件共享目录
在PS上创建存放快照文件的物理目录并设置为共享目录,比如:D:\ReplData,右键ReplData文件夹——点击属性——选择共享选项卡——点击权限按钮——弹出分配权限窗口——添加之前创建的专门用于数据同步复制的Windows帐号 RelUser-PS——权限勾选"完全控制"——确定。
创建数据库登录名
在PS上登录数据创建一个新的数据库登录名,类型为Windows 身份验证,名称就是之前添加的用户名,不过注意这里需要域名+用户名。可以在添加隶属用户组的时候看到这个全名。
点击用户映射,勾选上测试数据库,角色勾选上db_owner和public。确定即可。
创建发布
在PS上的SQL Server2005 Managerment Studio中右击复制——本地发布打开发布向导。接下来就是按步骤一步步来了。
快照路径就是刚设置的共享目录。
选择发布对象。
设置发布计划。注意:发布创建后计划不能修改,需要提前规划好。
设置安全代里。用户就是之前建立的用户。
点击完成就可以了。
注意:必须以登录默认实例才能进行发布操作:
否则会报如下错误:
相互注册数据库引擎
在PS上注册SS,点击SQL Server Management Studio——视图——已注册的服务器——右击“数据库引擎”——新建“服务器注册”,如图填写注册信息,测试保存。
同样的再SS上注册PS。
创建订阅
类似的登录SS上默认实例的SQL Server2005 Managerment Studio中右击复制——本地订阅打开订阅向导一步步设置就可以了。
第一配置应该看不到PS上发布的订阅,点击<查找SQL Server 发布服务器>,以SQL Server验证方式登入PS上SQL Server的默认实例即可。
分发代理设置,选择默认的就行。
设置订阅数据库。注意:这个数据库必须在订阅的SQL Server上存在。
大注:以下第一项应填为订阅服务器的帐号,且格式为机器名\帐号名.
第二项连接到分发服务器:使用模拟进程帐户或sql server登录名验证都可以的.
设置分发代理安全性。以SQL Server身份验证登录。点击完成。
注意:这里填的是分发服务器的用户名和密码。
代理计划根据实际需要制定。注意:订阅创建后计划不能修改,需要提前规划好。
初始化时间选择立即或首次同步时。
另外需要说明的是:
订阅服务和发布服务都依赖于SQL Server的代理。
常见错误&注意事项
1、创建订阅,设置安全代理的时候,连接分发服务器选择SQL Server登录名,注意这里填的分发服务器,而不是订阅服务器的。
如果配置出错:右击订阅查看同步状态汇报连接不到分发服务器的错误。
2、共享的快照文件夹没有相应的权限。
3、快照的文件夹路径应该填的是共享路径而不是绝对路径,上面的配置过程中就配置是错误的:
如果之前配错了,可以右击之前新的发布,点属性:
重新设置快照路径即可。
4、新增表或其他对象需要同步需要重新修改发布对象,在发布属性里修改即可。
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