centos7 mysql 基本测试(7)主从并行简单测试

centos7 mysql 基本测试(7)主从并行简单测试

重启MySQL服务使配置生效。

注意:并行复制需要slave的硬件资源充足,并且确保网络通信和IO性能不是瓶颈。不是所有的应用场景都适合并行复制,比如写密集型应用或者slave负载已经很高的情况下,开启并行复制可能会导致性能下降。

MySQL 5.6及以上版本支持并行复制。在配置slave时,可以通过设置slave_parallel_workers参数来指定并行复制的线程数。

以下是一个配置并行复制的例子:

在MySQL的slave配置文件中(my.cnf或者my.ini),添加或修改以下配置项:

[mysqld]
# 设置并行复制的工作线程数,默认为0,表示不并行
slave_parallel_workers = 4
# 设置SQL线程每个工作线程的执行的字节数上限,防止由于大事务占用过多I/O资源
slave_parallel_type = LOGICAL_CLOCK
slave_parallel_workers = 4

在MySQL命令行中设置:

SET GLOBAL slave_parallel_workers = 4;
SET GLOBAL slave_parallel_type = 'LOGICAL_CLOCK';

111

mysql 主从 并行 slave_parallel_workers
slave_parallel_workers是MySQL中的一个配置参数,用于指定并行复制时的工作线程数量。当启用了并行复制(即基于行的复制)时,MySQL会尝试并行应用日志事件,以减少复制延迟。

要配置并行复制,请按照以下步骤操作:

确保你的MySQL版本支持并行复制。

在my.cnf(或my.ini)配置文件中设置slave_parallel_workers参数。

重启MySQL服务以使更改生效。

例如,要设置并行工作线程数为4,你可以在my.cnf中添加以下行:

[mysqld]
slave_parallel_workers = 4

然后,你可以通过运行以下SQL命令来查看更改是否生效:


SHOW VARIABLES LIKE 'slave_parallel_workers';

请注意,并行复制可能会带来数据一致性方面的挑战,因此在配置并行复制前应当充分测试和了解你的数据库环境。

222

Mysql主从复制之skip-slave-start,slave-parallel-type,slave-parallel-workers参数详解和测试
https://blog.csdn.net/liys0811/article/details/132827438

参数1)skip-slave-start = 0
参数详解:禁用skip-slave-start,slave进程会随着mysql启动而启动。skip-slave-start=1为开启
测试:当前slave的查不到该参数,且/etc/my.cnf也没有配置该文件,重启服务后,发现slave进程自动启动,且停服务期间master插入的数据也复制过来了,看了这个参数默认是skip-slave-start = 0

参数2)slave-parallel-type = LOGICAL_CLOCK
slave-parallel-workers = 16
参数详解:mysql在5.7中加入了slave_parallel_type,默认值是database,需要改成基于时钟逻辑的LOGICAL_CLOCK。slave_parallel_workers数,默认为0,按需修改,可以根据服务器的配置来开启相应的并行度。将slave_parallel_type设置为’LOGICAL_CLOCK’,slave_parallel_workers设置为大于0的值,即算是开启了并行复制

当前使用的是默认值:
[root@localhost:mytest1]>show variables like ‘%slave_parallel%’;

我们在/etc/my.cnf写入这个参数slave-parallel-type = LOGICAL_CLOCK,slave-parallel-workers = 16然后重启服务,发现已经有16个复制线程了
注意将这个database修改为logical_clock,在此之前,需要先关闭sql_thread
stop slave sql_thread;
set global slave_parallel_type=‘LOGICAL_CLOCK’;
start slave sql_thread;

1

> slave_parallel_workers=20
> slave_parallel_type = LOGICAL_CLOCK
> slave_pending_jobs_size_max=1G
> sync_binlog=1
> max_allowed_packet = 256M

遇到问题

Coordinator stopped because there were error(s) in the worker(s). 
The most recent failure being: Worker 1 failed executing transaction 'ANONYMOUS' at master log mysql-bin.000001, end_log_pos 403. 
See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.

2


mysql> show variables like 'slave_parallel_workers';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| slave_parallel_workers | 0     |
+------------------------+-------+
1 row in set (0.00 sec)show variables like 'slave_parallel_type';+---------------------+----------+
| Variable_name       | Value    |
+---------------------+----------+
| slave_parallel_type | DATABASE |
+---------------------+----------+
1 row in set (0.01 sec)show processlist \G;stop slave ;
SET GLOBAL slave_parallel_workers = 4;
SET GLOBAL slave_parallel_type = 'LOGICAL_CLOCK';
reset slave ;
start slave ;
SHOW VARIABLES LIKE 'slave_parallel_workers';
SHOW VARIABLES LIKE 'slave_parallel_type';
show slave status\G
SHOW VARIABLES LIKE 'slave_parallel_workers';change master to
master_host='192.168.99.40',
master_user='mysqlsyn',
master_password='1234aA~1',
master_log_file='mysql-bin.000007',
master_log_pos=154;

master 上面的配置
drop database 自己测试加的数据库;

show master status;

mysql -u root -p
1234aA~1

1

解决Worker 1 failed executing transaction ‘ANONYMOUS‘ at master log mall-mysql-bin.000001, end_log_pos
https://blog.csdn.net/MovemOemVeovE/article/details/126022008

正确的流程

 stop slave ;SET GLOBAL slave_parallel_workers = 4;SET GLOBAL slave_parallel_type = 'LOGICAL_CLOCK';change master to
master_host='192.168.99.40',
master_user='mysqlsyn',
master_password='1234aA~1',
master_log_file='mysql-bin.000007',
master_log_pos=154;
start slave ;

start slave ; 之前 必须有
change master to
要 根据
show master status;
查看参数 设置内容

change master to 的内容 可以通过 下面的命令 查看

select * from mysql.slave_master_info \G

mysql5.6.1引入该参数,限制重连次数以及更新show slave status输出的Master_Retry_Count列。默认值是24 * 3600 = 86400。MASTER_RETRY_COUNT主要用于替代mysqld服务器参数 --master-retry-count(该参数在mysql5.6.1及其后续版本废除)。MASTER_RETRY_COUNT = 0表示重连次数无限制。

MASTER_HEARTBEAT_PERIOD:

设置复制心跳的周期,取值范围为0 到 4294967秒。精确度可以达到毫秒,最小的非0值是0.001秒。心跳信息由master在主机binlog日志文件在设定的间隔时间内没有收到新的事件时发出,以便slave知道master是否正常。

slave连接到master后,该参数可通过mysql.slave_master_info表查看。

select * from performance_schema.replication_applier_status_by_worker;

添加数据测试一下

测试主从是否可以

主机端
mysql -u root -p
1234aA~1

show databases ;
use company_pro;
show tables ;
insert into employee(name) value (‘从机测试’);
insert into employee(name) value (‘从机测试726’);
从机端 查看
mysql -u root -p
1234aA~1
show databases ;
use company_pro;
show tables ;
select * from employee ;

可以了

重启就失效的原因

mysql主从配置重启就失效怎么解决
https://www.yisu.com/ask/60205850.html
若MySQL主从配置在重启后失效,可能是由于以下几个原因导致的:

配置文件错误:检查主从配置文件是否正确,包括主从的IP地址、端口号、数据库名等。
MySQL服务未正常关闭:在重启之前,请确保MySQL服务已经正常关闭,可以通过以下命令检查MySQL服务的运行状态:
systemctl status mysql
若MySQL服务未正常关闭,可以尝试强制关闭MySQL服务:
systemctl stop mysql
MySQL数据文件错误:重启后,可能会导致MySQL数据文件损坏,从而导致主从配置失效。可以尝试修复MySQL数据文件,具体方法如下:
备份数据库数据文件。
执行MySQL数据文件检查和修复命令:
mysqlcheck --all-databases -r
主从同步延迟:在重启后,可能需要一段时间才能完成主从同步,所以在重启后,可能会出现主从同步延迟的情况。可以通过以下命令查看主从同步状态:
show slave status;
若主从同步状态显示为"Waiting for master to send event",则表示正在等待主服务器发送事件。
如果以上方法仍然不能解决问题,可以尝试重新配置主从复制。详细步骤如下:

在主服务器上执行以下命令,获取主服务器状态的信息:
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
记下"File"和"Position"的值,这些信息将用于配置从服务器。
在从服务器上执行以下命令,停止当前的从服务器复制:
STOP SLAVE;
在从服务器上执行以下命令,配置从服务器复制:
CHANGE MASTER TO MASTER_HOST=‘主服务器IP地址’,
MASTER_USER=‘主服务器复制用户名’,
MASTER_PASSWORD=‘主服务器复制密码’,
MASTER_LOG_FILE=‘主服务器File的值’,
MASTER_LOG_POS=主服务器Position的值;

在从服务器上执行以下命令,启动从服务器复制:
START SLAVE;
检查主从同步状态,确保主从同步已经正常工作:
SHOW SLAVE STATUS;
若"Slave_IO_Running"和"Slave_SQL_Running"的值均为"YES",则表示主从同步已经正常工作。
希望以上方法能帮助你解决问题。如果问题仍然存在,请提供更多详细信息以便进一步帮助。

slave_parallel_type=logical_clock
slave_parallel_workers=4

sudo systemctl restart mysqld

确保重启还能 继续 是并行的

my.cnf
cat /etc/my.cnf

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#datadir=/var/lib/mysql
datadir=/opt/datadir/mysql/
socket=/opt/datadir/mysql/mysql.sock
#socket=/var/lib/mysql/mysql.sock
# for zhu and chong
server-id=172
log-bin=mysql-bin
# for parallel
slave_parallel_type=logical_clock
slave_parallel_workers=4# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/opt/datadir/mysql/mysql.sock

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用api 调试接口 ,配置 Header 、 body 远程调试 线上接口

学习目标: 目标 使用api 调试接口 ,配置 Header 、 body 远程调试 线上接口 学习内容: 内容 设置请求方式 2. 选择 POST 提交 3.设置 Header 一般默认的 4个 header 属性就可以直接使用,如有特殊情况,需进行属性设…

『 Linux 』信号的捕捉及部分子问题

文章目录 信号的捕捉sigaction函数未决信号集的置零时机信号处理过程的阻塞可重入函数volatile 关键字SIGCHLD 信号 信号的捕捉 该图为基于信号处理为用户自定义动作的图解; 信号的捕捉 当一个信号被递达时,如果该信号的处理动作是用户自定义的函数(如int sighandler(int))时就…

【AWS基础】AWS服务介绍与基本使用

AWS基础:AWS服务介绍与基本使用 目录 引言AWS概述AWS的核心服务 计算服务存储服务数据库服务网络服务管理和监控服务 AWS的基本使用 创建AWS账户使用EC2实例使用S3存储配置RDS数据库设置VPC网络 AWS的优势AWS的应用场景结论 引言 亚马逊网络服务(AWS&…

文物实时状态监控的保护系统

文物是宝贵的历史遗产和文化瑰宝,其保护是我们共同的责任。为了实现文物的安全保护,现代科技提供了各种环境监测设备,可以实时监控文物的状态并采取相应的保护措施。本文将介绍一种利用各种环境监测设备实现文物实时状态监控的保护系统。 一…

【视频讲解】ResNet深度学习神经网络原理及其在图像分类中的应用|附Python代码

全文链接:https://tecdat.cn/?p37134 原文出处:拓端数据部落公众号 分析师:Canglin Li 本文深入探讨了卷积层(Convolutional Layer)在深度学习框架中的核心作用与操作机制,并分析了其在特征提取、网络构…

近期代码报错解决笔记

1.TypeError: ‘bool’ object is not callable 想print("Type of head:", type(entity_emb[head])),结果报如下错误: 源代码: 因为 print 仍然被当作一个布尔值处理,而不是作为函数调用。这个问题的根源在于 print …

Android SurfaceFlinger——纹理的绘制流程(二十八)

在系统开机动画的播放流程中,会从给定的资源文件中加载纹理数据并初始化一个 OpenGL 纹理对象,这里我们就来解析软件模拟纹理的绘制流程。 一、纹理概述 在 Android 的 SurfaceFlinger 系统组件中,纹理(Texture)是一个核心概念,特别是在涉及到图形渲染和显示的过程中。 …

关于TS(typescript)的理论知识

关于TS(typescript)的理论知识 TypeScript 是一种由微软开发的开源编程语言,它是 JavaScript 的一个超集,添加了可选的静态类型和基于类的面向对象编程。TypeScript 最终会被编译成纯 JavaScript 代码,以便在任何支持 …

Adobe Photoshop(Ps)安装包软件下载

一、Adobe Photoshop简介 Adobe Photoshop(简称PS)是由Adobe Systems公司开发的图像处理软件,它是一款集图像扫描、编辑修改、图像制作、广告创意、图像输入与输出于一体的图形图像处理软件。广泛应用于专业测评、平面设计、广告摄影、影像创…

MongoDB多数据源配置与切换

在MongoDB中配置和使用多数据源主要涉及以下几个步骤: 定义多个数据源的配置: 在应用程序的配置文件中,定义多个MongoDB的数据源,例如在Spring Boot中可以通过application.yml或application.properties文件进行配置。 创建多个Mo…

学习小型gpt源码(自用)

数据集构建_哔哩哔哩_bilibili (b站上有一系列课,从数据处理到模型构建和训练使用) 什么是batch? 为什么一个batch内的句子要一样长? 不同batch的长度可以不一样,但是同一个batch内长度一样!…

【MySQL进阶之路 | 高级篇】数据操作类型的角度理解共享锁,排他锁

1. 从数据操作的类型划分:读锁,写锁 对于数据库并发事务的读-读情况并不会引起什么问题。对于写-写,读-写操作或写-写操作这些情况可能会引起一些问题,需要使用MVCC或者加锁的方式来解决它们。在使用加锁的方式解决问题时&#x…

Vue3点击按钮实现跳转页面并携带参数

前提&#xff1a;有完整的路由规则 1.源页面 <template><div><h1>源页面</h1><!--通过js代码跳转--><template #default"scope"><button click"toTargetView(scope.row)">点击跳转携带参数</button><…

动态超参数优化:在Mojo模型中实现自定义搜索的艺术

动态超参数优化&#xff1a;在Mojo模型中实现自定义搜索的艺术 在机器学习领域&#xff0c;超参数的调整是提高模型性能的关键步骤。Mojo模型&#xff0c;作为机器学习模型的泛称&#xff0c;通常需要通过调整超参数来达到最优状态。然而&#xff0c;传统的超参数搜索方法往往…

3.3-LSTM的改进

文章目录 1改进点1.1多层化1.2 dropout1.2.1具体概念1.2.2应该插入到LSTM模型的哪里 1.3权重共享 2改进之后的LSTMLM的代码实现2.1初始化2.2前向计算2.3反向传播 3相应的学习代码的实现4总结 1改进点 1.1多层化 加深神经网络的层数往往能够学习更复杂的模式&#xff1b;因此这…

NOI大纲——普及组——素数筛法

素数筛的进化史 1.最为基础的筛法——试除法 时间复杂度 O ( n 2 ) O(n^2) O(n2) int a[10000],tot0,n; for (int i2;i<n;i){bool flagfalse;for (int j2;j<i;j){if (i%j0)flagtrue;}if (flagfalse){a[tot]i;tot;} } for (int i0;i<tot;i){cout<<a[i]<&l…

【0-1 架构问题集合】

常见问题 大数据量高并发情况下如何更新缓存二级目录三级目录 大数据量高并发情况下如何更新缓存 首先是查询的时候&#xff0c;一般先查询缓存&#xff0c;在查询数据库&#xff0c;同步的去更新缓存但是都是异步去更新&#xff0c;引入消息队列MQ 本质是个队列&#xff0c;F…

JVM之经典垃圾收集器

目录 Serial收集 ParNew收集器 Parallel Scavenge收集器 Serial Old收集器 Parallel Old收集器 CMS垃圾收集器&#xff08;重点&#xff09;&#xff1a; Garbage First 收集器&#xff08;重点&#xff09;&#xff1a; Serial收集 使用一个处理器或一条收集线程去完成垃…

利用换元法计算积分的常见题型(考研高数复习)

考研中常见的几种换元法积分计算题 (1)被积式仅包含一个根式&#xff1a;根号下为有 a a a 和 x x x 的平方和/平方差 此种类型的积分题型&#xff0c;可以通过构造单个锐角大小为 t t t 的直角三角形&#xff0c;利用勾股定理和三角函数进行代换。 平方和的情况 形如 ∫…

Java高级工程师应该怎样准备笔试?

哈哈&#xff0c;大早上&#xff0c;有个粉丝问&#xff1a;Java高级工程师应该怎样准备笔试&#xff1f; 这问题还真是小意思啊。Java高级工程师的笔试怎么准备&#xff1f;你问得好&#xff01;咱们混迹江湖这么久&#xff0c;什么风浪没见过&#xff0c;面试笔试这些东西&a…