mariadb之半同步

2023-11-10

补充说明,做的时候楼主没看清楚版本号,10.2以前是my.conf 以后是my.conf.d/server.conf 楼主本人是写到了server这个文件里,请大家注意

可能不显示模式的原因可能就是写错配置文件了,等我明天重新做一遍
看看有没有那个模式

今天做一个mariadb的半同步实验
首先这个实验是基于异步同步来做的,需要吧异步同步给做完才能做半同步
首先我们要在数据库里安装两个插件

install plugin rpl_semi_sync_master soname 'semisync_master.so';
install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

在这里插入图片描述
这两个插件在主库和从库都要安装
必须要安装
然后在主库上,编辑配置文件vim /etc/my.cnf.d/server.cnf
然后里面写入

server_id=1
log_bin=log-bin
rpl_semi_sync_master_enabled = 1
rpl_semi_sync_master_timeout = 2000

在这里插入图片描述
写完之后保存退出,这个时候因为修改配置文件了,所以我们要重启
mariadb这个服务
systemctl restart mariadb
这一步做完之后,可以用

show global variables like '%semi%';

在这里插入图片描述
这个时候我们看到状态是关闭的
然后可以用这两个命令去开启

set global rpl_semi_sync_master_enabled = 1;

set global rpl_semi_sync_master_timeout = 2000;

这个时候就有人问了,这两个命令跟刚刚写入配置文件的那两个不都一样吗?
是的,确实一样,但效果确实不一样的,写入配置文件的是永久生效,
set的是临时生效,但是,这两种还是都操作一下,比较保险

这时候再查看

show global variables like '%semi%';

在这里插入图片描述

这个时候就会看到,off变成on了
然后再用

show status like '%semi%';

查看状态
在这里插入图片描述
从图中看到,主库是开启的状态,但是从库是未开启状态,显示为off

现在开始配置从库
在从库里操作流程也是一样的
先安装两个插件

install plugin rpl_semi_sync_master soname 'semisync_master.so';
install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

安装完之后编辑配置文件
在里面写入

server_id=2
relay_log=relay-log
rpl_semi_sync_slave_enabled = 1

写完之后,保存退出并重启mariadb这个服务
systemctl restart mariadb

这时候查看状态

show status like '%semi%';

在这里插入图片描述
看到off就是未开启状态
我们需要执行命令给他开启

set global rpl_semi_sync_slave_enabled = 1;

show global variables like ‘%semi_sync_slave%’;
在这里插入图片描述
可以看到状态是on
这个时候我们要在从库里重启IO
若从库在运行不重启IO 从库还是传统异步

stop slave;
start slave;

半同步复制中的状态,在master库是off,若是半同步的slave库则为on。而Rpl_semi_sync_master_status刚好相反。

使用show global status like '%semi%';来查看状态(当然这个是在主库上查询)

在这里插入图片描述
发现Rpl_semi_sync_master_clients 变成了1 这个1就是从库,与从库关联了

其实做到这里就完成了,但是为了测试,所以吧从库状态给关闭了

set global rpl_semi_sync_slave_enabled = 0 ;

在这里插入图片描述
我们可以看到从库现在状态是关闭的
然后我们在主库上创建表和插入数据

create table aa(id int,name varchar(10));
insert into zyh.aa(id,name) values(1,'zyh');

在这里插入图片描述
然后去从库查看select * from zyh.aa;
发现主库数据同步到从库上,因为我们关闭半同步,从库会自动降级到异步同步上,但数据还是可以同步过来

rpl_semi_sync_master_wait_point:
默认是after_sync模式即事务在同步到binlog后等待半同步复制的确认信息。
但这个
其实做完之后,想要看效果,就看主库的连接数是几还有他的状态 如果是1和on
就是成功了,如果是0和off就是没成功

最后说一个事情,楼主在网上搜索时,都发现查看状态时,都有一个模式显示
而楼主做的时候没有,做的时候一定要注意看下

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mariadb之半同步 的相关文章

  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • mysql-如何向列申请补助?

    用户名 撤销对数据库的选择 Person I set GRANT SELECT id ON database Person TO username localhost 不是工作 gt SELECT secret FROM Person Go
  • 如何在 Laravel 查询中使用多个 OR,AND 条件

    我需要 Laravel 查询帮助 我的自定义查询 返回正确结果 Select FROM events WHERE status 0 AND type public or type private 如何写这个查询Laravel Event w
  • 第三个下拉菜单不从数据库填充

    我有以下 Index php
  • 如何在Mysql中仅将不同的值从一个表复制到另一个表?

    我有一个大约 2 5GB 的 MySql 数据库 表 A 具有以下列 anoid query date item rank url 我刚刚创建了另一个仅包含列的表 b query and date 我想在查询列中插入所有不同的记录 及其各自
  • 如何正确转义mysql?

    我刚刚发现如果我写 select from tbl where name like foo 然后添加 foo 作为参数及其值 a 用户数据 它不会正确转义 我勒个去 它想要 a 即使我使用参数 我还是忍不住觉得我对 sql 注入持开放态度
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • 仅使用containerd(不使用Docker)修剪容器镜像

    如果我刚刚containerd安装在 Linux 系统上 即 Docker 是not安装 如何删除未使用的容器映像以节省磁盘空间 Docker 就是这么方便docker system prune https docs docker com
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 如何使用 vitess 仅对特定表进行分片

    我创建了一个包含三个表的未分片键空间 现在我想对前两个表的键空间进行分片 但不想对第三个表进行分片 如何才能做到这一点 Vitess 文档不包含任何与此相关的信息或示例 请帮忙 Thanks vitess 中的垂直分片与水平分片类似 您应该
  • MySQL连接字符集问题

    我在 Mac 上使用带有 MySQL 的 velosurf 没有任何编码问题 但是当我切换到 Linux 计算机时 从 velosurf 获得的值未正确编码 我发现这可能是默认连接字符集的问题 在 Mac 上我得到 mysql gt sho
  • 即使使用“autoReconnect=true”,MySql JDBC 也会超时[重复]

    这个问题在这里已经有答案了 有时 我的 Java Tomcat6 Debian Squeeze 应用程序无法与 MySql 服务器通信 Tomcat 应用程序位于前端服务器上 而 MySql 位于单独的 仅限 MySql 的机器上 一个典型
  • 比特纳米。重置mysql根密码

    我如何重置 MySQL 中的 root 密码和帐户 因为我按照如何为其他服务器授予权限的说明操作 并且意外地将 root 用户 Mysql 绑定到其他 IP 地址 现在看来我无法在 localhost 上以管理员身份登录 Thanks 您有
  • 为什么 Linux 没有 DirectX API?

    在考虑现代显卡的 Windows 系统上 DirectX API 的驱动程序端实现时 我想知道为什么此实现在非 Windows 系统 尤其是 Linux 上不可用 由于明显缺乏此功能 我只能假设有一个我无视的充分理由 但在我的原始理解中 我
  • Flask-login:无法理解它是如何工作的

    我试图理解如何Flask Login https flask login readthedocs org en latest works 我在他们的文档中看到他们使用预先填充的用户列表 我想使用数据库存储的用户列表 但是 我不明白其中的一些
  • 如何将ElasticSearch与MySQL集成?

    在我的一个项目中 我计划将 ElasticSearch 与 MySQL 结合使用 我已经成功安装ElasticSearch 我可以单独管理ES中的索引 但我不知道如何用 MySQL 实现同样的功能 我读过一些文件 但我有点困惑 没有明确的想
  • PDO PHP 连接,致命错误

    我的连接类 firstcode php class DB functions public db function construct try db new PDO mysql localhost dbname xxx charset ut
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 在 MySQL 中存储表情符号的编码问题:如何使用 Prisma ORM 在 NodeJS 中定义字符排序规则?

    亲爱的 Nodejs 专家和数据库专家 我们在 MySQL 数据库中存储表情符号和其他特殊字符时遇到问题 我们使用 Prisma 得到一个错误 这是我们使用的 ORM 参数无法从排序规则 utf8 general ci 转换为 utf8mb

随机推荐

  • 【Elasticsearch】Elasticsearch命令行操作

    文章目录 Elasticsearch 一 ES介绍 二 安装Elasticsearch 三 安装Kibana 四 介绍ES中的一些概念 集群 节点 索引 数据库 文档 数据库中表中一条记录 分片 副本 五 操作ES 5 1索引 5 1 1
  • 【工具】IDEA下ANTLR Preview的使用

    1 概述 打开界面 如何查看树形结构呢 输入一个语句你想解析的语句放进去 发现没什么卵用 此时打开 g4文件
  • SQL注入的几种类型和原理

    在上一章节中 介绍了SQL注入的原理以及注入过程中的一些函数 但是具体的如何注入 常见的注入类型 没有进行介绍 这一章节我想对常见的注入类型进行一个了解 能够自己进行注入测试 注意 以下这些类型实在slqi labs环境 也就是MySQL
  • k8s--基础--22.12--storageclass--类型--Portworx 卷

    k8s 基础 22 12 storageclass 类型 Portworx 卷 1 案例 apiVersion storage k8s io v1 kind StorageClass metadata name portworx io pr
  • 蓝桥杯2020.07省赛B组 Java

    蓝桥杯2020 07省赛B组 整除序列 大数模拟 解码 遍历枚举 走方格 简单的dp 整数拼接 网络分析 超级胶水 整除序列 大数模拟 有一个序列 序列的第一个数是 n 后面的每个数是前一个数整除 2 请输出这个序列中值为正数的项 输入格式
  • C# -(二)最详细基础语法

    C 基础语法 学习思维导图 一 类型系统 C 有两种类型 值类型和引用类型 值类型的变量直接包含数据 而引用类型的变量则存储对数据 称为 对象 的引用 对于引用类型 两个变量可以引用同一个对象 对一个变量执行的运算可能会影响另一个变量引用的
  • 付出行动加入刷脸支付感受刷脸带来的红利

    无现金时代已陪伴我们许久 扫码支付给消费者带去诸多便利 但在两年后 我们或将引来无手机支付时代 刷脸支付将赋予消费者更加高效便捷的支付新习惯 据数据显示 2019年是我国刷脸支付的元年 届时将取代扫码支付成为主要支付方式 而在扫码支付盛行以
  • angular-cli中引入ng-zorro-antd(蚂蚁框架)

    首先你要确保angular cli环境搭建成功 第一步 进入项目文件夹 执行以下命令后将自动完成 ng zorro antd 的初始化配置 包括引入国际化文件 导入模块 引入样式文件等工作 ng add ng zorro antd 安装完成
  • 谷歌chrome编辑css样式不显示

    最近在用vscode编辑css代码的时候使用 在IE浏览器 qq浏览器 等其他浏览器上都可以显示 但是用谷歌浏览器没有显示任何效果 这里我在网上找到的原因是 谷歌浏览器会缓存页面的原css 要用Ctrl F5才可以重新加载修改后的css样式
  • 分区索引笔记(三)--全局分区索引

    全局分区索引在一个索引分区中包含来自多个表分区的键 一个全局分区索引的分区键是分区表中不同的或指定一个范围的值 在创建全局分区索引时 必须定义分区键的范围和值 全局索引只能是B树索引 Oracle在默认情况下不会维护全局分区索引 如果一个分
  • MPU6050使用心得(简单分享一下)

    前言 选用MPU6050做 倾斜检测 功能 前期准备 开发板 正点原子STM32F103 精英版 STM32F103ZET6 模块 GY 521 MPU6050 其他 杜邦线若干 烧录线 FlyMcu Keil5 正点原子开发板配套的套件
  • 镜头景深计算公式的推导

    景深是指成像画面中最近清晰点到最远的清晰点之间的范围 由于传感器或胶片的分辨率限制 或者照片冲洗放大后在一定距离观看时 受到人眼的分辨率极限限制 通常会将清晰这一概念与底片上一定尺寸的弥散斑大小相关联 按照传统的景深定义 物距为u1的点光源
  • IDEA 卡死的几种解决方案

    idea最为最为流行的Java开发工具其智能化提示对于开发人员非常友好 大大提高开发效率 不过我们在平时开发的时候不可避免的遇到idea卡死的情况 以下是我在平时遇到卡死的情况下的解决方法 1 调大idea内存配置参数 修改完后保存重启 X
  • 常用距离算法 (原理、使用场景、Python实现代码)

    距离度量是有监督和无监督学习算法的基础 包括k近邻 支持向量机和k均值聚类等 距离度量的选择影响我们的机器学习结果 因此考虑哪种度量最适合这个问题是很重要的 因此 我们在决定使用哪种测量方法时应该谨慎 但在做出决定之前 我们需要了解距离测量
  • 天拓分享:关于S7-1200和S7-300之间的通信

    1 S7 1200 的PROFINET 通信口 S7 1200 CPU 本体上集成了一个 PROFINET 通信口 支持以太网和基于 TCP IP 的通信标准 使用这个通信口可以实现 S7 1200 CPU 与编程设备的通信 与hmi触摸屏
  • 如何在 Debian 11 上设置一个静态 IP 地址

    当你在电脑上安装一个新的操作系统时 DHCP服务器会给你分配一个动态IP地址 然而 在各种情况下 你可能需要在你的机器上设置一个静态IP地址 例如 当你正在托管一个网络服务器 或者任何服务需要一个IP地址而不是域名 或者在你即将授予某人远程
  • LayoutParams布局

    AbsoluteLayout LayoutParams可以重新设置坐标 然后调用setLayoutParamsLinearLayout LayoutParams可以调用setMargins 来移动控件位置比如在调用rootLayout ad
  • VSCode的C/C++环境初始化(2022版)

    提前说明 如果中间 VSCode 提示要装插件 直接点击安装推荐的第一个即可 下拉框有 g 编译 gdb 调试 可以盲选 第一步 下载MinGW64 下载地址 https sourceforge net projects mingw w64
  • (十五)Mybatis当中一级二级缓存用法详解

    学习Mybatis一级二级缓存看这一篇足够了 写的非常详细 用法及代码示例都写出来了 对大家的学习或者工作具有一定的参考学习价值 需要的朋友们下面随着小编来一起学习学习吧 目录 一级缓存 一级缓存使用示例 一级缓存失效示例 1 sqlSes
  • mariadb之半同步

    补充说明 做的时候楼主没看清楚版本号 10 2以前是my conf 以后是my conf d server conf 楼主本人是写到了server这个文件里 请大家注意 可能不显示模式的原因可能就是写错配置文件了 等我明天重新做一遍 看看有