Sql Server数据库读写分离配置
准备条件:
1,准备两个服务器,一主一从服务器,两台服务器上分别安装相同的sql Server数据库
2,使用服务器名称登录数据库,不清楚服务器名称的使用下边语句查询
--获取服务器名
select @@servername
3,准备一个主库,这里假如主库数据库名字为:Customer,里边有一张Users表
4,在从库服务器上创建一个空数据库(只读库):Customerread1,里边什么内容也不要创建,所有内容都由主库推送。
5,打开主库上的sql Server配置服务,把sql Server代理服务设置成自动,并且启动,我这里是全部都是启动的
6,如果主库服务器的防火墙是开着的,还要添加一下入站规则(1433端口)
下边开始进入正题:
1,配置分发服务器,在主服务器上操作
在此之前,需要先在主服务器所在的计算机上创建一个共享文件夹,下边要用来充当快照地址,
D盘(或其他盘)-->新建文件夹-->属性-->共享-->这里共享用户设置的为 Administrator
同时要设置 sql Server代理服务的访问账户也要是:Administrator,否则到时候会因为访问权限问题导致发布失败!
我这里设置的为这台电脑的登录账户密码!
接下来正式开始:
将自己本身充当分发服务器
这一步默认即可
快照地址就是上边创建的共享文件夹地址
将分发数据库名称加了个日期,可以自定义
默认下一步
最后遇到一个错误,下图所示,意思是需要将 sql代理服务设置成自动启动
如下设置,将代理设置成自动启动即可。
2,本地发布
点击 本地发布-->新建发布
选择主库:Customer
选择--》事务发布
- 快照发布:隔一段时间会覆盖订阅服务器的数据库,在订阅服务器上做的修改同样被覆盖;
- 事务发布:是一种接近实时地从源到目标分发数据的方法;
- 具有可更新订阅的事务发布:订阅服务器可更新发布服务器的数据;
- 合并发布:发布服务器和订阅服务器的更新都会同步到对方,注意ID在合并发布上的冲突
选择要同步的表,这里只有一张 Users表
默认下一步
选择,立即创建快照
配置-->安全设置
名字随便起
刷新数据库,即可看见生成一个发布文件
3,推送订阅
选择 publish-20200303这个发布文件,右键-->新建订阅
(只要从库服务器足够多的,这里可以无限制的创建推送订阅,想要几个只读库就创建几个,哈哈)
默认下一步
因为是在主库上创建,这里选择~~推送订阅
默认显示本地的服务器,这里需要添加另一台服务器
注意:这里使用另一台服务器的,服务器名称链接
选择事先创建的一个空数据库:CustomerRead1
设置服务器链接
默认即可,下一步
成功之后,你会发现发布服务下多了一个服务
选择发布服务-->启动复制监视,可以查看数据同步日志
这时候,我们看到另一台服务器上的只读库已经成功同步过来数据!
这时候我们新增一条数据,看下效果!
数据基本上1s左右就同步过来了