SQL Server 2012本地发布、订阅及相关问题的解决方案

今天刚在学数据库的读写分离(主从分离),原本电脑上安装的SQL Server2012是Express版本的,在数据库-->复制下,只有本地订阅,没有本地发布,所以只能把这个版本的数据库删了,装上了Enterprise版本。

等待数据库装完之后,进入数据库就显示如下页面了

 

 

 

 

本地发布和本地订阅都有,为了实现数据库主从分离这个功能,我们还需要开启SQL Server代理服务器,打开本地电脑的服务,启动SQL Server代理服务(默认是没有启动的)

 

 

 

 

启动完服务就可以了开始实现我们要的功能了,首先,我们创建两个数据库TestA(做为主数据库)和TestB(做为从数据库),

主数据库的作用一般用于新增、删除、更改操作

从数据库可以有多个,一般用于查询操作,因为一般网站可能80%的访问是查询。

本次演示在同一台机器上进行。

1、新建本地发布

 

 

 2、选中需要发布的数据库,以TestA为例

 

 

 3、发布类型选择事务发布

 

 

 4、把我们需要的表选上(示例只创建了一个表)

 

 

 5、如果有需要,可以进行筛选表行

 

 

 6、创建快照代理

 

 

 7、选中快照代理安全性进行设置

 

 

 

 

 

 8、填写发布名称,会在本地发布中显示

 

 

 9、至此本地发布新建完成(会在本地发布中显示所写的发布名称)

 

 

 10、接下来新建本地订阅(右键新建订阅,以TestB为例)

 

 

 11、选中发布服务器(有几种选择,本机如下)

 

 

 12、如果不是选择本机的(例如查找SQL Server 发布服务器)

 

 

 13、分发代理位置

 

 

 

注意:这里我们选中推送订阅

当数据库的数据有变更的时候,就会通过订阅和发布系统通知各个从数据库更新

1、从数据库隔一段时间轮询主数据库,将主数据库中增量的脚本获取后执行(性能低下)

2、当主数据库有数据更新时,主数据库将增量的数据脚本自动推送给各个数据库执行(性能高效,也是我们使用的这种)

14、选择订阅服务器,也就是以我们的TestB为例

 

 

 15、设置安全性

 

 

 

 

 

 16、至此本地订阅发布成功

然而,却出现问题了,在本地订阅中并没有显示发布成功的数据库

通过一步步查看,在我们刚创建的本地发布中,右键‘查看快照代理状态’

 

 发现ReplData文件夹下,访问被拒绝,因为需要给它设置一个Everyone的权限

 

 这时候重新启动代理,就可以顺利启动了

 

 本地订阅也可以显示了,并且数据顺利同步过去了

 

 

posted @ 2019-12-17 21:41  shenghuotaiai  阅读(1539)  评论(0编辑  收藏  举报