最简单的SQLserver,发布订阅教程,保证一次就成功
最简单的SQLserver,发布订阅教程,保证一次就成功
发布订阅用来做数据库的读写分离,还是很好用的
当单台数据库的压力太大时,可以考虑这种方案,一主多从,主服务器的数据库只管写入,其他的数据库都是只读也是一种很好的方案
开始
我们选择A服务器做为发布的服务器,
B服务器做为订阅的服务器,
第一部分A服务器
选择要A服务器,选择 “复制”,“本地发布”,右键本地发布
如果是第一次会有如下,一直点下一步
注意:..\ ReplData这个文件夹是发布所在的文件夹,要保持访问权限,当在c盘时,有时可能会出现无法访问,我这里一般会给ReplData这个文件夹加上everyone权限
选择要发布的数据库
注意:这个数据库要有过完整备份
选择发布类型
注意:实时性高,数据量大的一般选择事务发布比较好
一直点下一步
注意,这一步很关键
注意:1,不要用sa账户,单独再新建一个sqlserver账户,而且要有该数据库的db_owner权限,
我们来添加一个test账户 找到“安全性”,右键“登录名”
点击“用户映射”更改一下test账户权限
这个test账户一定要有你即将要发布的数据库的public和db_owner权限
然后:在B服务器上进行一模一样添加test账户的操作,后面会用到
添加完成之后继续发布,加上我们添加的Test账户
有个警告,说代理没运行
找到sqlserver管理器,将代理运行起来,
,B服务器也进行相同的操作,保证sqlserver代理都是开着的
到这里还不够
下一步,配置host,找到 A服务器文件 c:\windows\system32\drivers\etc下的hosts文件
在最后一行填上B服务器的ip 和主机名, 注意,ip和名字之间隔空格,这个ip可是是内网,也可以是公网
然后A服务器就完备了,没啥事了,接下来配置B服务器,
第二部分,B服务器
在B服务器进行相同的操作主机上进行相同的添加host操作
将A服务器的ip 和主机名 添加到B服务器的hosts文件下面,
然后开始创建订阅
选择查找SqlServer服务器,这里服务器名称写A服务器的名称,不能用ip,用刚才在hosts文件里面那个A服务器的主机名
使用sa或者刚才创建的test账户登录,登录成功后,会看到A服务器的发布
选择上面的,推送订阅,好处是便于集中管理
账户还用刚才创建的那个test
然后一直下一步,直到完成
创建完成
测试一下,在A服务器添加一条数据
可以看到,B服务器马上也有了,删除修改也会同步,到这里就全部成功
其他
在A服务器上面查看订阅的状况
右键当前的发布,“启动复制监视器”
可以看到当前的状况,
如果订阅没有成功,或者数据没能同步,可以在这里看看日志,查找原因。
常见问题
1, 两台主机的 1433端口互相不通
2, SqlServer Agent 代理没有开启
3, 没有配置 hosts 文件中的ip和主机名映射
4, ReplData文件夹权限不足
5, 发布订阅前没有进行完整备份
(联系作者,QQ 634892969)
。