SQL Server创建发布订阅

背景

最近在研究基于Sqlserver 发布订阅实现的读写分离功能,踩了些坑,在此记录一下。

发布订阅是有一台主数据库,对应多台从数据库,当主数据库数据有变化时,同步到从数据库,从而保证数据的一致性,可以由主数据库统一管理,也可能有从数据库单独管理。

准备工作

由于目前打算在本机进行测试,所以首先在Sql Server里新建一个数据库名为Test 里面有一张表Users,里面有两条数据。

ps: 记得设置主键

在这里插入图片描述
接着在新建一个名为Test1的空数据库。我们之后的想要的效果就是,当Test库下有数据或者表结构变化了,自动同步到Test1这个库。

接着在D盘新建一个空文件夹名为sharedb用来保存快照,并对文件夹设置为共享。这里有点注意的地方,设置为共享之后,记得在网络和共享中心。设置为无密码保护的共享。
在这里插入图片描述
在这里插入图片描述
之前就是在这里出问题,导致无法访问该文件夹。

准备工作这就算完成了,接下来开始创建发布与订阅。

创建发布

首先通过服务器名称的方式连接上数据库,因为不通过服务器名称连接的话,创建发布时会弹出这样的提示窗口。这里服务器名称一般是指主机名。
在这里插入图片描述
通过服务器名登录。
在这里插入图片描述

选择复制>>本地发布 右键>>新建发布,点击下一步
在这里插入图片描述
选择我们要发布的数据库,点击下一步。
在这里插入图片描述
选择事务发布,点击下一步。
在这里插入图片描述
这里选择需要同步的表,点击下一步。
在这里插入图片描述
这里添加不需要发布的数据,一般直接点击下一步就好。
在这里插入图片描述
选择立即创建快照,点击下一步。
在这里插入图片描述
这里点击安全设置。
在这里插入图片描述
这里选择用Sql server用户名密码登录,这个密码就是当前登录发布服务器的密码。点击确定。
在这里插入图片描述
配置好之后点击下一步。
在这里插入图片描述
选择创建发布,点击下一步。
在这里插入图片描述
这里输入发布名称,之后点击完成。
在这里插入图片描述
这里就开始创建发布了。等待一会。
在这里插入图片描述
OK,发布成功。
在这里插入图片描述
别急,还没完成,选择本地发布下的刚发布的选项,点击右键。选择属性。
在这里插入图片描述
在快照里,填入我们我们刚共享的文件包的网络路径。
在这里插入图片描述
就是这个路径。
在这里插入图片描述
OK,到目前为止,发布就已经设置好了,接下来开始设置订阅。

创建订阅

在本地订阅上右键点击,新建订阅。点击下一步。
在这里插入图片描述
选择我们刚刚设置的发布服务器,以及新建的发布,点击下一步。
在这里插入图片描述
这里选择推送订阅和请求订阅都可。请求订阅可以减轻分发服务器的压力。点击下一步。
在这里插入图片描述
这里选择一个订阅服务器,由于我只有一台电脑,既是发布服务器也是订阅服务器。选择好数据库,点击下一步。
在这里插入图片描述
点击右边的三个点,进行订阅服务器的账号密码设置。
在这里插入图片描述
由于我订阅服务器和分发服务器是一样的都是本机,所以密码也是一样的, 正常情况下需要输入订阅服务器的数据库密码。点击确定。
在这里插入图片描述

点击下一步。
在这里插入图片描述
点击下一步。
在这里插入图片描述
点击下一步。
在这里插入图片描述
点击下一步。
在这里插入图片描述
点击完成。
在这里插入图片描述
订阅创建成功了。
在这里插入图片描述
在新建好的订阅上右键属性,填入快照文件夹的网络路径。
在这里插入图片描述

到这里还没完。选择发布后的文件,右键,点击 启动复制监视器。
在这里插入图片描述
不出意外的话,应该会看到一个错误。
在这里插入图片描述
双击错误,可以打开详细信息,可以看到是访问被拒绝。
在这里插入图片描述
这时,右键点击发布文件,选择查看快照代理状态。
在这里插入图片描述
这里需要手动点击启动。若启动失败,则需要检查共享文件夹权限设置。
在这里插入图片描述
若发现多了一个未知联系人,说明订阅发布/订阅服务已经能连上该文件夹了。
在这里插入图片描述
若都设置好了的话,再次查看复制监视器,应该就没有错误了。
在这里插入图片描述

功能测试

由于我们是新建的一个空的数据库用来订阅,所以在设置好之后,去看下Test1.
从下图可以看到,我们的Test1已经自动同步了Test下的表结构和数据。
在这里插入图片描述
接下来我们在Test库的下的Users表新加一条记录。

Insert Into Users(Id,Name) values ('3','王虎')

大概5秒钟,Test1下面也自动同步了该数据,在复制监视器中可以看到,数据是每5秒同步一次。
在这里插入图片描述

have a wonderful day

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQL Server发布订阅是一种实现数据库之间同步操作的方式。它包括两个步骤:发布和订阅。首先,在数据源数据库服务器上进行发布,然后在目标数据库服务器上进行订阅。发布可以选择发布一张表的部分数据或整张表的数据。下面是发布和订阅的过程: 1. 发布: - 在数据源数据库服务器上登录,并配置需要同步的数据。 - 在复制-本地发布中新建一个发布内容。 - 选择发布的位置和数据库。 - 选择事务发布,并选择要发布的表。 - 设置安全设置,填写源系统提供的用户名和密码。 - 创建发布,并设置发布名称。 - 查看快照地址,并将快照文件拷贝到订阅服务器本地。 2. 订阅: - 在复制-本地订阅新建一个订阅。 - 选择SQL Server发布服务器,并连接到对方数据库的登录用户。 - 选择请求订阅,并选择订阅数据库。 - 进行设置,填写源系统的数据库用户名和密码。 - 查看同步状态,并停止同步。 - 修改快照位置为备用文件夹,并将快照文件夹设置为从源系统服务器拷贝过来的快照文件位置。 - 启用任务,检查数据数据库中是否出现订阅的表和数据。 通过以上步骤,可以实现SQL Server发布订阅功能。\[1\]\[3\] #### 引用[.reference_title] - *1* [SqlServer2008 数据库同步的两种方式 (发布、订阅)](https://blog.csdn.net/weixin_33753003/article/details/85487251)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Sqlserver发布订阅](https://blog.csdn.net/qq_30648687/article/details/127196651)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [sql server 发布订阅](https://blog.csdn.net/qq_19756791/article/details/123066247)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李公子lm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值