研究了一段时间的SQL Server Replication,本身“开源小站”来说,贸然出现了M$的东西真的是非常突兀。几番纠结,还是分享出来吧。
对于Replication来说,其实对于MySQL来说就是Master-Slaver同步,对于Oracle来说,更接近于Data Guard。
几个名词
Publisher/Distributor:发布者/分发者对应需要发布数据的主机,类似于MySQL的Master。两者的区别在于发布者是“拉数据”,而分发者是“推数据”。
Subscriber:订阅者需要接收数据的主机,类似于MySQL的Slaver。当然对应推拉两种方式,订阅者同样分为拉订阅和推订阅两种方式。
安装预备
- 既然是热备,至少需要2套SQL Server主机啦。性能要求相对单机来说都要高一点。
- 网络连接,很多情况下的失败都是因为网络或者防火墙的问题。
- 最好两台主机都在同一个windows域之下,但本文出于各种原因没有采用域认证,仅使用传统的用户名+密码的认证方式。
- 为配置方便,最好有个SQL Server客户端,早先的版本叫做 “SQL Server Enterprise Manager” (SQL Server企业管理器),从2005之后改了名叫“SQL Server Management Studio”。本文选择了英文版本的Management Studio。
配置Publisher
- 打开SQL Server 客户端,连接到Publisher(下文简称PUB)
- 单击“+”展开,选择‘Replication’->’Local Publications’,并右击,选择“New Publication…”,开始向导
选择需要同步的数据库
- 选择Replication 类型,共有snap, transaction, merge, p2p 4中方式可选,这里我选择了merge。
- 选择兼容模式,保持默认好了。
- 这个界面可以选择需要同步的articles。数据表,函数,存储过程等都属于article的范畴。根据需要选择就可以了。
另外使用“Article Properties”给每个article 设置不同的同步策略。比如设置id 分配策略等“高级”功能。