本文描述利用Sql Server订阅和发布来进行两个服务器之间的热备份。
首先两个服务器之间要能相互通讯,也就是能ping命令能通。
平时我们链接数据库的时候,经常都是用的ip登陆,但是发布的时候不能这样,必须用服务器名称,不然会报错,修改host文件,将IP地址和名字加入的服务器上。
在数据库A服务器下找到【复制】-【本地发布】-【新建发布】
发布分为4种模式:
A.快照发布
发布服务器按'预定的时间间隔'向订阅服务器发送已发布数据的快照。
快照发布,就是将所有要发布的内容,做成一个镜像文件,然后一次性复制到订阅服务器,两次快照之间的更新不会实时同步,而是按照设置的'预定间隔'进行。这种方式占用带宽较多,因此比较适用内容不是很大,或者更新不需要很频繁的场景。
B.事务发布
在订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。
事务发布,是在第一次设置好事务复制之后,所有发布的内容都会进行镜像快照,订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。当主服务器数据发生变更时,会通过日志传递同步
给订阅服务器,数据近似于同步更新。
此方式会对主服务器性能造成很大影响(实时同步每次变更,而不是最终变更),适用于对数据及时性要求比较严格主备方案,但是目前已被微软提供的集群Always On所取代。
C.对等发布
对等发布支持多主复制。发布服务器将事务流式传输到拓扑中的所有对等方。所有对等节点可以读取和写入更改,且所有更改将传播到拓扑中的所有节点。
D.合并发布
合并发布是相当于两台都是主服务器,都可以对数据进行更新修改等操作,然后定时将发布服务器上的内容与订阅服务器上的内容进行合并,并根据配置保留相应内容,此种很少用。
注意:不建议使用Sa账号, 单独再新建一个sqlserver账户,而且要有该数据库的db_owner权限
最终,到这一步,发布算是完成了,接下来就开始看订阅。
订阅是对刚才发布的快照进行同步,即将数据源数据同步到目标数据库。
注意:填写发布服务器(A服务器)名称:填写计算机名称
选择Sql Server 身份验证 使用sa 账号登录
至此,发布与订阅都已完成。在服务器B中codefirst这个数据库中,会发现多了一张user的数据表,这表示A服务器的数据传到B上了。当在服务器A修改user表中的记录(源数据)时,B里面的记录(目标数据)也会改变。
常见问题
1, 两台主机的 1433端口互相不通
2, SqlServer Agent 代理没有开启
3, 没有配置 hosts 文件中的ip和主机名映射
4, ReplData文件夹权限不足
本文为Lokie.Wang原创文章,转载无需和我联系,但请注明来自lokie博客http://lokie.wang