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

news/2024/7/24 4:43:47 标签: 数据库, sqlserver, 主从配置

使用发布订阅模式搭建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.niftyadmin.cn/n/5197680.html

相关文章

Hive安装配置 - 本地模式

文章目录 一、Hive运行模式二、安装配置本地模式Hive(一)安装配置MySQL1、删除系统自带的MariaDB2、上传MySQL组件到虚拟机3、在主节点上安装MySQL组件4、在主节点上配置MySQL(1)查看MySQL服务状态(2)查看M…

【狂神说Java】redis

✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆 🔥系列专栏 :【狂神说Java】 📃新人博主 :欢迎点赞收藏关注,会回访! 💬舞台再大,你不上台&#xff0c…

算法分析与设计课后练习21

某工业生产部门根据国家计划的安排,拟将某种高效率的5台机器,分别分配给A,B,C三个工厂,各工厂在获得不同数量的这种机器后,可以为国家盈利如下表所示。请找出一种5台机器的分配方式,使得这5台机器盈利最大。 使用动态规划,令dp[i][j]=max(dp[i-1][j-k]+profit[i][k])…

常见树种(贵州省):005竹类

摘要:本专栏树种介绍图片来源于PPBC中国植物图像库(下附网址),本文整理仅做交流学习使用,同时便于查找,如有侵权请联系删除。 图片网址:PPBC中国植物图像库——最大的植物分类图片库 一、毛竹 …

已超1000+测试员分享!Python自动化测试案例实战

随着企业对测试工程师的能力要求日渐增长,对我们每一位测试工程师而言既是压力也是提升的动力,不提升就意味着没有出路,没有发展!我们职业发展的命运是靠自己的能力来把握的,而不是一味的惧怕高要求,惧怕难…

AnyTXT Searcher:本地文件内容搜索神器如何搭建与远程访问

文章目录 前言1. AnyTXT Searcher1.1 下载安装AnyTXT Searcher 2. 下载安装注册cpolar3. AnyTXT Searcher设置和操作3.1 AnyTXT结合cpolar—公网访问搜索神器3.2 公网访问测试 4. 固定连接公网地址 前言 你是否遇到过这种情况,异地办公或者不在公司,想找…

Linux C 基于tcp多线程在线聊天室

多线程在线聊天室 概述客户端服务端 概述 客户端实现了判单用户登录结果、防止单回车字符发送、保存和显示历史聊天记录(仅自己)、退出聊天室功能。   服务端实现了验证用户是否已经存在(支持最大64用户连接)支持广播用户进入退…

工程标书翻译,标书英文翻译哪好

据了解,标书翻译是整个工程投标过程的重要一环,也是投标人投标编制投标书的依据。标书翻译必须表达出投标人的全部意愿,不能有疏漏。那么,针对工程英文标书标书翻译,北京哪个翻译公司比较专业? 我们知道&am…