mysql高可用半同步配置(二)

耀灵2年前技术文章745

一、配置半同步


1.1、部署半同步:

#首先判断MySQL服务器是否支持动态增加插件

mysql> select @@have_dynamic_loading

#确认支持动态增加插件后,检查MySQL的安装目录下是否存在插件semisync_master.sosemisync_slave.so

mysql> show variables like 'plugin_dir'; #查看插件存入地址

master端:

#安装半同步复制插件

mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';

#打开半同步复制功能

mysql> set global rpl_semi_sync_master_enabled=ON;


#检查半同步复制相关参数设置

mysql> show variables like  '%semi%';
+-------------------------------------------+------------+
| 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 |
| rpl_semi_sync_slave_enabled               | ON         |
| rpl_semi_sync_slave_trace_level           | 32         |
+-------------------------------------------+------------+
8 rows in set (0.00 sec)

mysql>

slave端:

#安装半同步复制插件

mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';


#打开slave端的半同步复制功能

mysql> set global rpl_semi_sync_slave_enabled=on;
Query OK, 0 rows affected (0.00 sec)

#检查半同步复制相关参数

mysql> show variables like '%semi%';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| rpl_semi_sync_slave_enabled     | ON    |
| rpl_semi_sync_slave_trace_level | 32    |
+---------------------------------+-------+
2 rows in set (0.01 sec)

mysql>


#开启slave复制线程并检查复制状态

mysql> start slave;
mysql> show slave status\G

二、半同步相关参数

rpl_semi_sync_master_enabled:
# 控制master端是否打开半同步插件,默认OFF  
 
rpl_semi_sync_master_timeout: 
#控制半同步复制退化为异步复制的时间限制。若该时间限制下master还未接收到slave的ack,半同步复制退化为异步复制。默认10000(10s),该参数一般会设置比较大,保证数据无损。 
 
rpl_semi_sync_master_trace_level:
#master半同步复制调试跟踪等级,默认为32。
1 = general level (for example, time function failures)
16 = detail level (more verbose information)
32 = net wait level (more information about network waits)
64 = function level (information about function entry and exit
 
rpl_semi_sync_master_wait_for_slave_count
#master提交事务并返回客户端commit时,需要获取slave的ack的个数,默认为1。该参数同样依赖rpl_semi_sync_master_wait_no_slave的设置  
 
rpl_semi_sync_master_wait_no_slave:
#控制当slave个数小于rpl_semi_sync_master_wait_for_slave_count参数设置时,复制模式的行为,默认为ON。
ON:当MySQL发现slave个数小于rpl_semi_sync_master_wait_for_slave_count时,MySQL复制模式不做任何变更,只要数据同步时,master接收到大于等于rpl_semi_sync_master_wait_for_slave_count个数的ack,MySQL就继续保持半同步复制模式; 若master等待ack超过rpl_semi_sync_master_timeout时间限制后仍然未接收到大于等于rpl_semi_sync_master_wait_for_slave_count个数的ack,MySQL就将半同步复制退化为异步复制。
    OFF:当MySQL发现slave个数小于rpl_semi_sync_master_wait_for_slave_count时,主动将半同步复制退化为异步复制
 
rpl_semi_sync_master_wait_point:
#控制半同步复制下,master提交事务并返回客户端commit的时机,MySQL5.7版本下默认为after_sync。



相关文章

MySQL运维实战之ProxySQL(9.7)改写SQL

使用查询修改功能,可以在不改变应用程序的情况下,修改SQL语句。比如,我们可以使用SQL改写的功能,给SQL添加hint,以此来优化性能。delete from mysql_que...

SparkStreaming对接kafka消费模式区别

SparkStreaming对接kafka消费模式区别

Sparkstreaming对接kafka使用的消费方式与常规的kafka消费方式完全不同,其中区别主要为消费者的管理方式不同。Ø  常规消费模式Kafka常规的消费模式以消费者组为消费单元...

apiserver指标分析

apiserver指标分析

概述kube-apiserver 是集群所有请求的入口,指标的分析可以反应集群的健康状态。Apiserver 的指标可以分为以下几大类:请求速率和延迟控制器队列的性能etcd 的性能进程状态:文件系统...

Kubernetes节点与令牌管理

令牌管理查看令牌```Plain Text [root@master ~]# kubeadm token list## **删除令牌**Plain Text [root@master ~]# ku...

PG的表膨胀

1 什么是表膨胀众所周知,PostgreSQL的多版本并发是通过保留变更前的记录来实现的。当数据记录被DML修改,旧版本记录仍保留不变,仅仅需要修改相关记录的xmin、xmax属性,并新增写入变更后的...

MySQL优化器特性(五)单表访问路径

数据库的访问路径(access path)是指从表中获取数据的方式,一般可以通过扫描表或通过索引获取数据。想熟练掌握SQL优化技能,首先需要熟悉单表访问路径。本文先简单介绍MySQL支持的各种单表访问...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。