首页 > 数据库 >mysql半同步复制

mysql半同步复制

时间:2024-04-12 14:14:11浏览次数:22  
标签:同步 semi 0.00 sync 复制 master mysql sec rpl

1、首先在master上面安装插件

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
Query OK, 0 rows affected (0.01 sec)

2、设置master全局变量和超时时间

SET GLOBAL rpl_semi_sync_master_enabled = 1;
Query OK, 0 rows affected (0.00 sec)
查看变量是否开启 
show variables like "%semi_sync%";
+-------------------------------------------+------------+
| Variable_name                             | Value      |
+-------------------------------------------+------------+
| rpl_semi_sync_master_enabled              | ON         |
| rpl_semi_sync_master_timeout              | 10000      |
| rpl_semi_sync_master_trace_level          | 32         |
| rpl_semi_sync_master_wait_for_slave_count | 1          |
| rpl_semi_sync_master_wait_no_slave        | ON         |
| rpl_semi_sync_master_wait_point           | AFTER_SYNC |
+-------------------------------------------+------------+
6 rows in set (0.01 sec)

3、在slave上面安装插件,设置全局变量

INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
Query OK, 0 rows affected (0.00 sec)
SET GLOBAL rpl_semi_sync_slave_enabled = 1;
Query OK, 0 rows affected (0.00 sec)

4、停止slave上面的I/O线程,然后重启I/O线程

STOP SLAVE IO_THREAD;
Query OK, 0 rows affected (0.00 sec)
 
START SLAVE IO_THREAD;
Query OK, 0 rows affected (0.00 sec)

5、也可以在配置文件里面配置半同步复制(永久开启)

master: 
[mysqld]
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000 # 1 second
slave:
[mysqld]
rpl_semi_sync_slave_enabled=1

6、测试数据一致性

create database test;
Query OK, 1 row affected (1.01 sec)
 
show databases;
+--------------------+
| Database           |
+--------------------+
| test               |

use test;
Database changed
show tables;
Empty set (0.00 sec)
 
create table tt1(id int,name varchar(10));
Query OK, 0 rows affected (0.00 sec)

show tables;
+----------------------+
| Tables_in_zhaojunjie |
+----------------------+
| tt1                  |
+----------------------+
1 row in set (0.00 sec)

在slave上面:可以看到数据同步过来了,说明数据一致

show databases;
+--------------------+
| Database           |
+--------------------+
| test               |
+--------------------+
11 rows in set (0.00 sec)
 
use test;
Database changed
show tables;
Empty set (0.00 sec)
show tables;
+----------------------+
| Tables_in_zhaojunjie |
+----------------------+
| tt1                  |
+----------------------+
1 row in set (0.00 sec)

标签:同步,semi,0.00,sync,复制,master,mysql,sec,rpl
From: https://www.cnblogs.com/qcy-blog/p/18131070

相关文章

  • ntpd内网同步及遇到的问题
           NTP(NetworkTimeProtocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。(1s=1000ms)NTP服务器就是利用NTP协议提供时间同步......
  • syncthing同步工具介绍
    1. 介绍Syncthing是一款开源的文件同步工具,采用Go语言编写。它可以在本地网络上的设备之间或通过Internet在远程设备之间同步文件,使用了其独有的对等自由块交换协议。Syncthing是免费开源工具,它能在你的各个网络计算机间同步文件/文件夹。Syncthing有一下几个特点:l 中文友好(......
  • Mysql中Varchar(50)和varchar(500)区别是什么?
    一.问题描述我们在设计表结构的时候,设计规范里面有一条如下规则:对于可变长度的字段,在满足条件的前提下,尽可能使用较短的变长字段长度。为什么这么规定,我在网上查了一下,主要基于两个方面基于存储空间的考虑基于性能的考虑网上说Varchar(50)和varchar(500)存储空间上是......
  • vue一键复制
    vue一键复制copyToClipboard(textToCopy){//navigatorclipboard需要https等安全上下文if(navigator.clipboard&&window.isSecureContext){//navigatorclipboard向剪贴板写文本returnnavigator.clipboard.writeText(textToCopy);......
  • MySQL 查看主机和版本信息
    1、使用SELECT@@hostname查看主机名  2、使用SELECT@@versionASVersion;查看版本信息 3、一起查看SELECT@@hostnameASHostname,@@versionASVersion; ......
  • windows MySQL报错Packet for query is too large问题解决
    1、报错Cause:com.mysql.cj.jdbc.exceptions.PacketTooBigException:Packetforqueryistoolarge(11,792,709>4,194,304).Youcanchangethisvalueontheserverbysettingthe'max_allowed_packet'variable.出现问题的原因:批量插入数据量过大MySQL根据配置......
  • mysql~GROUP_CONCAT实现关系表的行转列
    作用GROUP_CONCAT是MySQL中用于将查询结果集中的多行数据合并为单个字符串的聚合函数。它将每行数据的指定字段值连接起来,并以指定的分隔符分隔,最终返回一个包含所有值的字符串。以下是GROUP_CONCAT函数的一般语法:SELECTGROUP_CONCAT(column_nameSEPARATOR',')FROMt......
  • MySQL binlog超过binlog_expire_logs_seconds阈值没有删除案例
    生产环境有一套3个节点的MySQLInnoDBCluster,MySQL的版本为Serverversion:8.0.35MySQLCommunityServer-GPL,早上突然收到Zabbix的告警,其中一个节点出现空间告警:"/data:Diskspaceislow(used>80%)"检查分析后发现是因为MySQL的binlog没有清理导致空间报警,如下所示(b......
  • Qt编译MySQL驱动
    Qt编译MySQL驱动参考:qt6.5.0MySQL驱动手动编译以及数据库连接详细教程以及注意事项附资源链接_qt编译mysql驱动-CSDN博客由于MySQL等数据库的client库遵循的协议与GPL不兼容,因此Qt发布时不带有这些驱动,需要自行编译。在Qt5版本的编译由于使用傻瓜式的qmake,要简单很多:QT出现没......
  • docker 中使用 php--apache并加入 mysql 插件
    官方镜像说明页:可根据自己需要,选择对应版本的php进行下载。这里使用php7.4+apache服务的镜像为例:dockerpullphp:7.4.33-apache运行容器:dockerrun--namejiuta-php-apache-7.4-d-p9000:80\-v/mnt/datadisks/docker-root/jiuta/www:/var/www/html\--log-o......