Slave_SQL线程异常终止处理之跳过错误
手动跳过1个或更多个事务
/* 传统点位模式复制 */ SQL>set global sql_slave_skip_counter=1; SQL>start sql_thread;/* GTID模式复制 */ SQL>set gtid_next='e29d3917-9dbb-11e9-8b64-e4434b6e2c80:11103335-16054791'; SQL>begin;commit; SQL>set gtid_next='AUTOMATIC';
自动连续跳过错误
若是一直报错,然则,这些报错又可以忽略可以怎么处置,此时也有许多方式,通常使用的是如下几种:
方式一: 使用pt-slave-restart工具跳过对应错误
然则使用pt-slave-restart工具跳过报错时,必须关闭多线程复制,由于工具分不清到底哪个线程复制出了问题,然后会报类似如下的报错:
Cannot skip transactions properly because GTID is enabled and slave_parallel_workers > 0. See 'GLOBAL TRANSACTION IDS' in the tool's documentation
处置步骤为:
/* 暂停并行复制 */ SQL> set global slave_parallel_workers=0;/* 使用pt-slave-restart工具跳过错误(填写错误号)*/ pt-slave-restart --user=root --password='Admin@123' --socket=/data/mysql3306/tmp/mysql.sock --error-numbers=1062/* 不再报错时,再开启并行复制 */ mysql> set global slave_parallel_workers=8;
方法二:在设置文件里设置跳过指定错误
在设置文件[mysqld]项里加入参数slave-skip-errors
slave-skip-errors=1032,1062
然则,此方式存在一个致命瑕玷:该参数是静态参数,无法动态修改,需要修改设置文件后重启数据库方可生效。
幂等模式
由于手动跳过事务时,会忽略相同事务下的其他正常的SQL在从库的应用;pt-slave-restart工具需要住手多线程复制,影响从库应用速率;设置slave-skip-errors又需要重启数据库方可生效。那么有没有一种方式既不会跳过多余的SQL,又无需重启数据库也不影响从库应用SQL的速率呢?谜底是有的,也就是将slave_exec_mode参数设置为IDEMPOTENT,即幂等模式(默以为严酷模式STRICT)。
/* 在线动态修改 */ SQL > set global slave_exec_mode='IDEMPOTENT';
改为幂等模式后,可以忽略1032及1062的错误,对统一事务内的其他SQL无影响,依旧能正常执行。
附pt工具安装错误排查
percona-toolkit执行时遇到install_driver(mysql) failed: Attempt to reload DBD/mysql.pm aborted错误
执行pt-table-checksum报错如下:
[root@db ~]# pt-table-checksum S=/data/mysql/mysqldata3306/sock/mysql.sock,h=localhost
11-01T17:07:02 install_driver(mysql) failed: Attempt to reload DBD/mysql.pm aborted.
Compilation failed in require at (eval 14) line 3.
at /usr/local/bin/pt-table-checksum line 1623
而主机上已经安装了相应的软件包:
[root@db ~]# rpm -qa | grep -i mysql
perl-DBD-MySQL-4.013-3.el6.x86_64
mysql-libs-5.1.73-8.el6_8.x86_64
发现系统没有加载mysql的动态链接库:
[root@db ~]# ldconfig -p | grep mysql
那就添加一下:
[root@db ~]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
[root@db ~]# ldconfig
[root@db ~]# ldconfig -p | grep mysql
libmysqlclient.so.20 (libc6,x86-64) => /usr/local/mysql/lib/libmysqlclient.so.20
再次执行pt-table-checksum仍然报错:
[root@db ~]# pt-table-checksum S=/data/mysql/mysqldata3306/sock/mysql.sock,h=localhost
11-01T17:07:02 install_driver(mysql) failed: Attempt to reload DBD/mysql.pm aborted.
Compilation failed in require at (eval 14) line 3.
at /usr/local/bin/pt-table-checksum line 1623
这里需要把libmysqlclient.so文件复制一份到/usr/lib64/mysql/libmysqlclient.so.18
如果还是没有找到:
找到 mysql的动态链接库:
[root@db ~]# ldd /usr/lib64/perl5/auto/DBD/mysql/mysql.so
linux-vdso.so.1 => (0x00007ffecb770000)
libmysqlclient.so.18 => not found --还是没有找到
libz.so.1 => /lib64/libz.so.1 (0x00007f3be2321000)
需要重装下perl-DBD-MySQL包
[root@db lib]# yum reinstall perl-DBD-MySQL
Slave_SQL线程异常终止处理之跳过错误相关推荐
- MySQL GTID复制Slave跳过错误事务Id以及复制排错问题总结
GTID复制典型的复制错误有两种: 1,数据对象级别的错误,包括主库上update的数据在从库上不存在,主从逐渐冲突,库表索引等对象的冲突等等, 如果是纯粹的跳过错误的话,这一类的错误需要跳过思路 ...
- MySQL主从- slave跳过错误
目录 一.跳过指定数量的事务 二.修改mysql的配置文件 三.模拟错误场景 mysql主从复制,经常会遇到错误而导致slave端复制中断,这个时候一般就需要人工干预,跳过错误才能继续 跳过错误有两种 ...
- MySQL复制跳过错误--slave_skip_errors、sql_slave_skip_counter、slave_exec_mode
MySQL主从复制中的跳过错误处理参数--slave_skip_errors.sql_slave_skip_counter.slave_exec_mode 跳过复制错误--slave_skip_err ...
- python线程的注意点(线程之间执行是无序的、主线程会等待所有的子线程执行结束再结束(守护主线程)、线程之间共享全局变量、线程之间共享全局变量数据出现错误问题(线程等待(join)、互斥锁))
1. 线程的注意点介绍 线程之间执行是无序的 主线程会等待所有的子线程执行结束再结束 线程之间共享全局变量 线程之间共享全局变量数据出现错误问题 2. 线程之间执行是无序的 import thread ...
- 主从复制跳过错误(未采用GTID)
DB:5.6.15 主从库没有采用GTID 案例1:从库对象不存在 mysql> show slave status \G; *************************** 1. row ...
- SQL Server 无法生成 FRunCM 线程。请查看 SQL Server 错误日志和 Windows 事件日志(转)...
前言: 今天遇到这个sql服务无法启用 .无法登陆 的情况..在google 百度 搜了一下.发现很多网站都是采集来的数据..(很奇怪这些采集站都那么靠前!) 照着文章里边的方法去试试都不行,,,后来 ...
- jmc线程转储_查找线程转储中的异常和错误
jmc线程转储 线程转储是解决生产问题/调试生产问题的重要工件. 在像过去我们已经讨论了几种有效的线程转储故障模式: 堵车 , 跑步机 , RSI , 一个 LL条条大路通罗马 .......... ...
- 工作112:vue路由跳转错误:Error: Redirected when going from “/login“ to “/home“ via a navigation guard.
vue路由跳转错误:Error: Redirected when going from "/login" to "/home" via a navigation ...
- mysql 主从 跳过_mysql主从同步如何跳过错误
mysql主从同步跳过错误的方法:1.跳过指定数量的事务,代码为[mysql>SET GLOBAL SQL_SLAVE_SKIP..]:2.修改mysql的配置文件,通过[slave_skip_ ...
最新文章
- 「实战篇」开源项目docker化运维部署-后端java部署(七)
- 为什么薄膜干涉的厚度要很小_薄膜干涉的薄膜为什么不能太厚?1.这里的厚是用什么来衡量的?2.假如一个厚为1mm的薄膜,是否薄?...
- 关于python中excel写入案例
- 基于JavaConfig配置的Spring MVC的构建
- 使用WEB方式更改域用户帐户密码
- 业务、架构、技术,我们应该关注什么
- sin18度用计算机怎么算,sin18度等于多少怎么计算?谢谢
- Java数据类型占用内存最多的_java基础数据类型的内存占用
- 华侨大学计算机等级,全国计算机等级考试报名系统-华侨大学.doc
- 日志易——中国版的splunk
- Python3实现的m3u8批量下载器 解密合并多线程
- 解决一例Fedora 31安装NVIDIA官方驱动程序无法使用DKMS注册的问题
- Android单点触摸与多点触摸
- Oracle的本地网络服务名配置
- 鳄克斯系列服务器,英雄联盟:FPX冠军庆典活动进行中 一半宝石入手海科克斯系列皮肤...
- Jenkins 打包配置
- struct timeval
- win10开机有东西一闪而过_Win10 开机以后不一会儿会弹出一个黑框,usoclient.exe 一闪而过。这东西对电脑有...
- ICA原理及相关链接
- 认真聊聊中断(软中断)
热门文章
- 程序员面试——C++工程师面试大全第一部分
- 软件测试之软件开发模型
- vscode代码提示只显示一行_模型秒变API只需一行代码,支持TensorFlow等框架
- 吴恩达《机器学习》第十二章:支持向量机SVM
- 什么是微服务 Martin Fowler的microservices
- Go36-3-代码包
- SpringBoot App Registers UNKNOWN with Eureka in Brixton SR3
- Android音乐播放器-使用FFmpeg及OpenSLES
- linux generic什么意思_Linux下ps aux中进程状态为Ss,S+, Rs,Ds是什么意思?
- 计算机算法知识点总结,2021计算机考研知识点总结(1)