工作中,常用的写20%,读80%,所以,创建一个读写分离的架构,是能增加数据库效率和减少数据库IO压力的。

SqlServer2012  读写分离配置_c#

实现读写分离一共有四种模式

 1.复制模式


2. 镜像传输

3. 日志传输

4. Always On技术


我这边主要实现的是  复制模式中的事务发布。

首先实现基础配置信息

SqlServer2012  读写分离配置_创建数据库_02

启动代理

SqlServer2012  读写分离配置_读写分离_03

SqlServer2012  读写分离配置_数据库_04

SqlServer2012  读写分离配置_读写分离_05

然后,开始创建数据库的发布和订阅

主要就是 数据库的复制功能

SqlServer2012  读写分离配置_c#_06

新建写库,或者主库如下

SqlServer2012  读写分离配置_读写分离_07

表得有主键.

先本地发布服务

SqlServer2012  读写分离配置_读写分离_08

SqlServer2012  读写分离配置_读写分离_09

直接下一步

SqlServer2012  读写分离配置_c#_10

下一步

SqlServer2012  读写分离配置_数据库_11

这个快照文件尽量不要放在C盘,会受权限的影响

SqlServer2012  读写分离配置_创建数据库_12

选择写的数据库,主库

SqlServer2012  读写分离配置_c#_13

这边我选的是事务发布

SqlServer2012  读写分离配置_c#_14

SqlServer2012  读写分离配置_数据库_15

SqlServer2012  读写分离配置_读写分离_16

直接下一步

SqlServer2012  读写分离配置_c#_17

SqlServer2012  读写分离配置_c#_18

SqlServer2012  读写分离配置_创建数据库_19

SqlServer2012  读写分离配置_创建数据库_20

如果发布不成功,要以管理员身份运行重试一遍。

SqlServer2012  读写分离配置_读写分离_21

SqlServer2012  读写分离配置_读写分离_22

完成,我们就实现了发布者。

接下来搞一个订阅者

SqlServer2012  读写分离配置_数据库_23

新建订阅,下一步

SqlServer2012  读写分离配置_数据库_24

这里可以选择本地,也可以选择远程发布服务,从而进行订阅

SqlServer2012  读写分离配置_创建数据库_25

直接下一步

SqlServer2012  读写分离配置_创建数据库_26

第二步,可以直接创建数据库,我这里创建的数据库叫 ReadDB1

SqlServer2012  读写分离配置_数据库_27

第一部分,内部选择代理即可.

SqlServer2012  读写分离配置_读写分离_28

SqlServer2012  读写分离配置_读写分离_29

选择 下一步

SqlServer2012  读写分离配置_创建数据库_30

选择立即。

SqlServer2012  读写分离配置_读写分离_31

可以直接选择完成。

SqlServer2012  读写分离配置_数据库_32

OK已经创建了 一个订阅。

最后如下

SqlServer2012  读写分离配置_创建数据库_33

修改  writeDB,就会同步到ReadDB1里面。

有延迟,1s左右。

换个版本应该会更好。本环境版本 sqlserver 2012 。