目录

  • 提示
  • sql server事务发布、主从备份
  • 删除历史数据,没有的可以不删
  • 确定sql server代理服务是否启动
  • 建立共享文件夹
  • 配置分发
  • 新建发布(发布服务器)
  • 新建订阅
  • 增加一条数据试试
  • 增加列试试
  • 修改列试试
  • 增加表试试
  • 删除表试试
  • 蛋疼
  • 最新发现


提示

读写分离指的是从程序角度来实现:

  • 只读取订阅的服务器的数据
  • 增删改往发布服务器操作。

sql server事务发布、主从备份

删除历史数据,没有的可以不删

开始主从备份开始前,先把所有的主从备份删掉。

sql server 2012 always on 读写分离 sqlserver数据库读写分离_服务器

弹出框后,点击是。然后无脑下一步。

sql server 2012 always on 读写分离 sqlserver数据库读写分离_服务器_02

确定sql server代理服务是否启动

没启动的,让它起来动一动。(新建发布服务器,必须要保证它是起着的)

sql server 2012 always on 读写分离 sqlserver数据库读写分离_主从备份_03

建立共享文件夹

sql server 2012 always on 读写分离 sqlserver数据库读写分离_读写分离_04


好,很好,我这有一个现成的共享文件夹。添加用户,everyone可读写。

配置分发

sql server 2012 always on 读写分离 sqlserver数据库读写分离_数据_05

  • 接着欢迎界面选择下一步,下一步
  • 这里会用到上边的共享文件夹,粘贴上。
  • 再下一步,下一步。
  • 分发服务器名,和发布的库的地址可以改,最好不改。

新建发布(发布服务器)

sql server 2012 always on 读写分离 sqlserver数据库读写分离_主从备份_06

  • 选择要进行分发的数据库
  • 类型选择事务发布

sql server 2012 always on 读写分离 sqlserver数据库读写分离_主从备份_07

  • 选择表,我这里全选了。
  • 筛选表,我这里不筛选了。
  • 立即创建快照

sql server 2012 always on 读写分离 sqlserver数据库读写分离_主从备份_08

  • 再下一步
  • 然后一步,再下一步输入发布名称我叫(distributionDB)就创建好了。

新建订阅

sql server 2012 always on 读写分离 sqlserver数据库读写分离_主从备份_09

  • 选择发布服务器,下一步下一步
  • 新建订阅,我选择新建数据库进行订阅
  • 弹出框,输入新库名,数据库会当场建立。
  • 设置服务器连接
  • 再后边就无脑下一步下一步。然后就能看到新建立的订阅了,我再建俩。

增加一条数据试试

  • 查询三个表的数据是一样的
  • 接下来增加一条数据,ZhaoxiDBSet.dbo.SysLog新加一条数据,
  • 然后会看到下边三个表,陆续出现新增数据,
  • 至于下边表里未出现的原因是因为事务发布需要一定时间,但是也很快,3秒内。
  • 我只是为了让大家看这个效果,故意截的这个图。

增加列试试

  • 新增加列也会进行同步

修改列试试

  • 修改列不允许,但是可以对列进行删除,以此来进行操作。

增加表试试

  • 新增加表无法同步。
  • 增加完表后新增加的数据无法同步。

删除表试试

  • 删除表也无法进行同步

蛋疼

  • 发现如果新加表后,无法进行订阅同步。
  • 经过绞尽脑汁的0.1秒后的思考发现,重新新建发布服务器,然后再一个个订阅回来。这样是可以的
  • ps:发布的时候,表必须要有主键

对于上边蛋疼的这个问题,我未找到好的解决办法,如果各位大佬有办法,请不吝赐教。

最新发现

Sql Server现在都用AlwaysOn来实现主从备份,这个新增删除表都可以实现同步。