Sql Server 2017主从配置之:发布订阅

使用发布订阅模式搭建Sql Server 2017主从同步,类似事件通知机制,基本可以做到准实时同步,可以同时做到一对多的数据同步。
不过发布订阅模式,只能同时数据,不能同步表结构。在创建发布的时候,需要选择需要同步的表对象,如果有新增表需要做同步,那就需要重新选择表对象,然后重新发布快照。
该模式在同步时候,不影响从库使用。

环境准备

两台服务器,配置都是8g2核,50g硬盘,操作系统版本Windows Server 2019 Datacenter

  • 主库:server1,192.168.56.110
  • 从库:server2,192.168.56.111

本人使用虚拟机做模拟配置,在虚拟机操作系统上做如下配置

  • 虚拟机配置两张网卡,以便和主机通讯

  • 虚拟机启动远程桌面 ,右键左下角win图标-系统-远程桌面,点击启用

  • 创建操作系统账户sqadmin,分配管理员权限

  • 为方便测试,关闭系统防火墙,控制面板\系统和安全\Windows Defender 防火墙\自定义设置

  • 安装Sql Server 2017企业版,个人的Express版本不支持事务日志复制

  • 安装SSMS 19.2版本

两台服务共同配置准备

1、创建系统账号sqadmin,设置管理员权限

在这里插入图片描述

2、设置服务启动账户sqadmin

打开Sql Server Configuration Manager,进入SQL Server 服务,将SQL Server服务和SQL Server 代理服务的登录身份都改成sqadmin,并设置自动启动
在这里插入图片描述

3、配置服务器代理账户

打开SQL Server Management Studio,链接数据库
右键点击链接,选择属性,打开服务器属性面板,点击安全性选项页,勾选启动代理账户,输入sqadmin账户密码
在这里插入图片描述

4、创建数据库账户sqadmin,并设置管理员权限

在这里插入图片描述
在这里插入图片描述

一、主库 server1 配置

创建快照备份文件夹 c:\dbbackup

创建测试数据库test,并创建表t_user、t_company作为测试

注意:每个表都必须有主键,否则无法同步

create table t_user(            
id bigint primary key,        --主键
name nvarchar(50) not null,          --不为空
);
create table t_company(            
id bigint primary key,        --主键
name nvarchar(50) not null,          --不为空
)

新建发布
在这里插入图片描述
输入刚创建的备份文件夹 c:\dbbackup
在这里插入图片描述
选择要同步的数据库

在这里插入图片描述
选择事务发布
在这里插入图片描述
选择需要同步的表
在这里插入图片描述

这里没有筛选,直接下一步
在这里插入图片描述
快照代理,选择“立即创建快照…”,然后下一步
在这里插入图片描述
点击“安全设置”,配置快照代理账户
在这里插入图片描述
选择立即创建快照,然后点击下一步
在这里插入图片描述
随便输入一个发布名称,比如test_bakcup,点击完成
在这里插入图片描述
在这里插入图片描述
打开快照备份文件夹,可以看见表快照已经成功生成!
在这里插入图片描述
至此,主库发布创建完成,接下来到从库创建订阅

二、从库 server2 配置

创建备份数据库 test_bak

新建订阅,下来选择查找发布服务器,
在这里插入图片描述
输入主库ip,链接到主库
在这里插入图片描述
选择主库的订阅
在这里插入图片描述
选择选项一,在分发服务器上运行所有代理,然后点击下一步
在这里插入图片描述
选择从库的数据库 test_bak

在这里插入图片描述
配置分发代理,输入账号sqadmin
在这里插入图片描述
配置完成后点击下一步,直到完成

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
至此,订阅配置完成,可以看见两个表已经同步过来了
在这里插入图片描述

三、测试

查看快照代理状态
在这里插入图片描述

在这里插入图片描述

注意:如果重新选择了表对象,需要在这里点击“启动”,重新生成新的快照,否则新选择的表对象无法同步到从库

在这里插入图片描述

查看从库同步状态
在这里插入图片描述
在这里插入图片描述

1、在主库创建记录

insert into t_user values (1,'01');
insert into t_user values (2,'02');insert into t_company values (1,'C01');
insert into t_company values (2,'C02');

2、在从库查询

select * from t_user;
select * from t_company;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/199440.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ospf路由选路及路由汇总

一、知识补充 1、ABR和ASBR 1.1 ABR ABR指的是边界路由,通常位于两个或多个区域之间,用于在不同的OSPF区域之间传递信息。当一个路由器同时连接到两个或多个区域时,它就成为了ABR,它需要维护每个区域的拓扑信息和路由表&#x…

【Kingbase FlySync】命令模式:部署双轨并行,并实现切换同步

【Kingbase FlySync】命令模式:安装部署同步软件,实现Oracle到KES实现同步 双轨并行方案说明一.准备工作二.环境说明三.目标实操(1).准备安装环境Orcle服务器(Oracle40)1.上传所有工具包2.操作系统配置a.增加flysync 用户、设置密码b.配置环境变量c.调整limits.conf…

git问题: git@10.18.*.*: Permission denied (publickey,password)

遇到的问题: openSSH版本太高,openssh高版本默认禁止ssh-rsa加密算法,直接换ed25519 执行以下命令: 在.ssh目录下执行:ssh-keygen -t ed25519 -C “youremail.com” ssh-add ~/.ssh/id_ed25519 将id_ed25519.pub添加…

解决证书加密问题:OpenSSL与urllib3的兼容性与优化

在使用客户端证书进行加密通信时,用户可能会遇到一些问题。特别是当客户端证书被加密并需要密码保护时,OpenSSL会要求用户输入密码。这对于包含多个调用的大型会话来说并不方便,因为密码无法在连接的多个调用之间进行缓存和重复使用。用户希望…

PPT幻灯片里的图片,批量提取

之前分享过如何将PPT文件导出成图片,今天继续分享PPT技巧,如何提取出PPT文件里面的图片。 首先,我们将PPT文件的后缀名,修改为rar,将文件改为压缩包文件 然后我们将压缩包文件进行解压 最好是以文件夹的形式解压出来…

PgSQL技术内幕-Bitmap Index Scan

PgSQL技术内幕-Bitmap Index Scan 1、简介 Bitmap索引扫描是对索引扫描的一个优化,通过建立位图的方式将原来的随机堆表访问转换成顺序堆表访问。主要分为两点:1)管理每个Bitmap的hash slot没用完时,每个Bitmap代表每个heap页中满…

【蓝桥杯选拔赛真题23】C++计算24 第十二届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

C/C++计算24 第十二届蓝桥杯青少年创意编程大赛C++选拔赛真题 一、题目要求 1、编程实现 “计算 24”是一个流传已久的数字游戏,小蓝最近对此痴迷不已 游戏规则是:从 1~10 之间的自然数任意拿出 4 个数(4 个数各不相同,顺序随机),进行加、减、乘三种运算(使用某种运算…

什么是BT种子!磁力链接又是如何工作的?

目录 一.什么是BT?1.BT简介:1.1.BT是目前最热门的下载方式之一1.2.BT服务器是通过一种传销的方式来实现文件共享的 2.小知识:2.1.你知道吗BT下载和常规下载到底有哪些不同2.2.BT下载的灵魂:种子2.3.当下载结束后,如果未…

matlab 坡度滤波算法地面分割

目录 一、算法原理1、实现流程2、参考文献二、代码实现三、结果展示四、测试数据一、算法原理 1、实现流程 1、格网示意图 2、计算格网行列数 公式中的特殊符号为向上取整,

初识分布式键值对存储etcd

欢迎大家到我的博客浏览。胤凯 (oyto.github.io)大家好,今天我带大家来学习一下 etcd。 一、什么是 etcd etcd 是一个开源的分布式键值存储系统,主要用于构建分布式系统中那点服务发现、配置管理、分布式锁等场景。它采用 Raft 一致性算法来确保所有节…

面试题-6

1.精灵图和base64的区别是什么? 精灵图:把多张小图整合到一张大图上,利用定位的一些属性把小图显示在页面上,当访问页面可以减少请求,提高加载速度 base64:传输8bit字节代码的编码方式,把原本二进制形式转为64个字符的单位,最后组成字符串 …

物联网赋能:WIFI HaLow在无线连接中的优势

在探讨无线网络连接时,我们不难发现,WIFI已经成为我们日常生活中不可或缺的一部分,承载了半数以上的互联网流量,并在家庭、学校、娱乐场所等各种场合广泛应用。然而,尽管WIFI4、WIFI5和WIFI6等协议无处不在&#xff0c…

记一次线上bug排查-----SpringCloud Gateway组件 请求头accept-encoding导致响应结果乱码

基于公司的业务需求,在SpringCloud Gateway组件的基础上,写了一个转发服务,测试开发阶段运行正常,并实现初步使用。但三个月后,PostMan请求接口,返回异常,经排查,从日志中获取到转发…

嵌入式QTGit面试题

自己在秋招过程中遇到的QT和嵌入式和Git相关的面试题,因为比较少就一起放了 QT connect第5个参数是什么? Qt::AutoConnection: 默认值,使用这个值则连接类型会在信号发送时决定。 如果接收者和发送者在同一个线程,则…

SVG圆形 <circle>的示例代码

本专栏是汇集了一些HTML常常被遗忘的知识,这里算是温故而知新,往往这些零碎的知识点,在你开发中能起到炸惊效果。我们每个人都没有过目不忘,过久不忘的本事,就让这一点点知识慢慢渗透你的脑海。 本专栏的风格是力求简洁…

RabbitMQ 部署及配置详解(集群部署)

单机部署请移步: RabbitMQ 部署及配置详解 (单机) RabbitMQ 集群是一个或 多个节点,每个节点共享用户、虚拟主机、 队列、交换、绑定、运行时参数和其他分布式状态。 一、RabbitMQ 集群可以通过多种方式形成: 通过在配置文件中列出群集节点以…

pnpm : 无法加载文件 E:\Soft\PromSoft\nodejs\node_global\pnpm.ps1,

pnpm : 无法加载文件 E:\Soft\PromSoft\nodejs\node_global\pnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中 的 about_Execution_Policies。 所在位置 行:1 字符: 1pnpm -v~~~~ CategoryI…

linux高级篇基础理论五(用户安全,口令设置,JR暴力破解用户密码,NMAP端口扫描)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技…

使用Python的turtle模块绘制玫瑰花图案(含详细Python代码与注释)

1.1引言 turtle模块是Python的标准库之一,它提供了一个绘图板,让我们可以在屏幕上绘制各种图形。通过使用turtle,我们可以创建花朵、叶子、复杂的图案等等。本博客将介绍如何使用turtle模块实现绘制图形的过程,并展示最终结果。 …

【Linux】【开发】使用sed命令遇到的乱码问题

🐚作者简介:花神庙码农(专注于Linux、WLAN、TCP/IP、Python等技术方向)🐳博客主页:花神庙码农 ,地址:https://blog.csdn.net/qxhgd🌐系列专栏:Linux技术&…