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;

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Hive调优

1.参数配置优化 设定Hive参数有三种方式: (1)配置Hive文件 当修改配置Hive文件的设定后,对本机启动的所有Hive进程都有效,因此配置是全局性的。 一般地,Hive的配置文件包括两部分: a&#xff…

使用Spring Boot结合JustAuth实现支付宝、微信、微博扫码登录功能

使用Spring Boot结合JustAuth实现支付宝、微信、微博扫码登录功能 在使用Spring Boot结合JustAuth实现支付宝、微信、微博扫码登录功能之前,需要先确保已经配置好Spring Boot项目,并且添加了JustAuth的依赖。你可以在项目的pom.xml文件中添加如下依赖&a…

spass-二元变量相关分析

基础概念 计算相关系数r&#xff1a;利用样本数据计算样本相关系数&#xff0c;样本相关系数反映了两变量间线性相关程度的强弱。相关系数的取值范围界于-1与1之间&#xff0c;即-1≤r≤1 当0<r ≤ 1&#xff0c;表明变量之间存在正相关关系&#xff1b; 当-1 ≤ r…

BatchNormalization:解决神经网络中的内部协变量偏移问题

ICML2015 截至目前51172引 论文链接 代码连接(planing) 文章提出的问题 减少神经网络隐藏层中的”内部协变量偏移”问题。 在机器学习领域存在“协变量偏移”问题,问题的前提是我们划分数据集的时候,训练集和测试集往往假设是独立同分布(i.i.d)的,这种独立同分布更有利于…

C++--哈希表--散列--冲突--哈希闭散列模拟实现

文章目录 哈希概念一、哈希表闭散列的模拟实现二、开散列(哈希桶)的模拟实现数据类型定义析构函数插入查找删除 哈希概念 unordered系列的关联式容器之所以效率比较高&#xff0c;是因为其底层使用了哈希结构。 顺序结构以及平衡树中&#xff0c;元素关键码与其存储位置之间没…

校园服装定制服务预约小程序的效果如何

对校园服装定制商家而言&#xff0c;如今线下流量稀缺&#xff0c;同行多且竞争激烈&#xff0c;同时这一行面对的消费者非大众&#xff0c;因此各品牌间都在通过各种方式进行同城或多地的客户拓展&#xff0c;但线下方式无疑是比较低效的。线上是一个不错的选择&#xff0c;不…

元素水平垂直居中

方法一&#xff1a;定位transform 方法二&#xff1a;flex布局 方法三&#xff1a;定位margin【需要child 元素自身的宽高】 相关HTML代码&#xff1a; <div class"parent"><div class"child"></div> </div> 方法一&#xff1a…

pythongui实时闹钟

# codinggbk import tkinter as tk from time import strftime# 创建一个主窗口 root tk.Tk() root.title("实时闹钟")# 设置窗口的大小不可变 root.resizable(False, False)# 设置窗口始终保持在最上层 root.attributes(-topmost, True)# 更新时间的函数 def time(…

力扣 字母异位词分组 哈表 集合

&#x1f468;‍&#x1f3eb; 力扣 字母异位词分组 ⭐ 思路 由于互为字母异位词的两个字符串包含的字母相同&#xff0c;因此对两个字符串分别进行排序之后得到的字符串一定是相同的&#xff0c;故可以将排序之后的字符串作为哈希表的键。 &#x1f351; AC code class Solut…

Docker中快速安装RabbitMQ

文章目录 前言一、安装Docker二、安装RabbitMQ无脑命令行运行 总结 前言 在Ubuntu中的Docker容器中快速安装RabbitMQ&#xff0c;亲测有效&#xff0c;不废话&#xff0c;上操作。 一、安装Docker 直接按照Docker官方教程操作&#xff1a;官方安装教程 点进官网&#xff0c;往…

Springboot 对于数据库字段加密方案(此方案是对字符串处理的方案)

背景:在erp开发中&#xff0c;有些用户比较敏感数据库里的数据比较敏感&#xff0c;系统给用户部署后&#xff0c;公司也不想让任何人看到数据&#xff0c;所以就有了数据库字段加密方案。 技术 spring boot mybatisplus 3.3.1 mybatisplus 实际提供了 字段加密方案 第一 他…

pr出现由于找不到msvcp110.dll,无法继续执行代码怎么办?如何修复

为什么我们在打开运行电脑软件会出现msvcr110.dll无法继续执行此代码的问题呢&#xff1f;因为msvcr110.dll是Microsoft Visual C Redistributable Package for Visual Studio 2013的一个动态链接库。它是一个重要的组件&#xff0c;用于帮助游戏和软件运行。如果某个程序是用它…

JDK1.5 新特性【泛型】

前言 泛型在 JavaSE 阶段是学习过的&#xff0c;但是毕竟处理定义一些简单的集合就很少用到它了&#xff0c;至于最近 Flink 中遇到的 泛型方法&#xff0c;更是感觉闻所未闻&#xff0c;以及源码中加在接口、方法、类前的各种 <T,V> 让我实在自觉羞愧&#xff0c;于是今…

复旦EMBA美东国际课程走进哈佛、耶鲁、麻省理工、哥大等顶尖名校

2023夏末秋初&#xff0c;复旦大学EMBA“问道东西”国际课程重新起航&#xff0c;同学们来到美国东海岸&#xff0c;走进顶级名校&#xff0c;开启学习与交流。    同学感悟      此次美东国际课程&#xff0c;整个设计非常合理。哈佛大学&#xff0c;麻省理工以及哥伦…

图解系列--认证

单向散列函数 1.什么是单向散列函数 单向散列函数有一个输入和一个输出&#xff0c;其中输入称为消息&#xff0c;输出称为散列值。单向散列函数可以根据消息的内容计算出散列值&#xff0c;而散列值就可以被用来检查消息的完整性。 在指定的散列函数处理下&#xff0c;无论输…

linux 定时执行脚本

先写一个简单的shell脚本用来测试定时执行脚本 [rootVM-12-12-centos wz]# cat shell_cron_test.sh #!/bin/bashif [ -f "/home/wz/cron_test.txt" ];thennum$(($(wc -l /home/wz/cron_test.txt | cut -d -f 1)1))elsenum1 fi echo "$(date "%y-%m-%d …

Flume的安装部署及常见问题解决

1.安装地址 &#xff08;1&#xff09; Flume官网地址&#xff1a;http://flume.apache.org/ &#xff08;2&#xff09;文档查看地址&#xff1a;http://flume.apache.org/FlumeUserGuide.html &#xff08;3&#xff09;下载地址&#xff1a;http://archive.apache.org/dist…

利用SD存储介质扩展MAXQ20000的非易失性数据存储空间

SD存储卡是一种可移动存储介质&#xff0c;通常用于相机、手机、平板电脑等设备中存储照片、视频、音乐等数据。SD存储卡的全称为Secure Digital Memory Card&#xff0c;是由SD Card Association制定的一种标准格式。它具有体积小、存储容量大、读写速度快、价格低廉等优点。目…

在线随机字符串生成工具

具体请前往&#xff1a;在线随机字符串生成器--通过该工具生成动态复杂随机密码,随机字符串等&#xff0c;加密盐等

PC业务校验(已有该名称,已有该编码)

rules: {name: [{ required: true, message: "部门名称不能为空", trigger: "blur" },{min: 2,max: 10,message: "部门名称的长度为2-10个字符",trigger: "blur",},{trigger: "blur",validator: async (rule, value, callba…