Nov
19
2021
MGR修改max_binlog_cache_size参数导致异常
简介: MGR修改max_binlog_cache_size参数导致异常
一、问题来源
这是一位朋友的问题,因为前期朋友设置max_binlog_cache_size为8m,后面在线进行了修改了本参数,但是结果导致整个3节点的MGR集群除了primary节点其他两个second节点均掉线。大概的日志如下:
...
Nov
19
2021
MySQL压测时Linux中断异常飚高
1. 系统环境
OS: CentOS Linux release 7.8.2003 (Core)
Kernel: 3.10.0-1127.19.1.el7.x86_64
MySQL: 用5.0、5.7均有此问题,应该和版本无关
2. 压测工具
benchyou[1]
mysql_random_load[2]
3. 问题现象
利用 mysql_random_load 工具连接MySQL写入数据时,性能非常非常低。
由于 mysql_random...
Nov
19
2021
slave开启MTS时执行mysqldump引发死锁案例(2)
五、关于woker线程w2的等待
这里可能的原因有2个:
多线程并行的情况下,线程执行的顺序本生就是不定的,很可能线程由于丢失CPU而落后其他线程的处理,因为CPU调度的最小单位是线程。如果保证某个共享内存操作的完整性需要用到mutex、原子变量等技术。
如果w2中的事务本生就包含了多个DML语句,那么获取 GLOBAL READ LOCK 本身就是间歇性的,也就是每个语句结束都会释放,然后下一个语句开始的时候再次open table来获取。
我们来看看第二点,只考虑row_format格式的binlog。
...
Nov
19
2021
slave开启MTS时执行mysqldump引发死锁案例(1)
一、问题来源
这是一位客户的提供的案例如下,show processlist截图如下:
出现这种问题除非手动干预,杀掉FTWRL的session,复制线程方可以继续进行。版本社区版5.7.26。
二、堵塞图
如果分析上面的堵塞可以画图如下:
三、关于woker线程w1和w3的等待
这里我们需要重点关注参数 slave_preserve_commit_order,在我将要出版的《深入理解MySQL主从原理》一书中做了详细描述,这里简单说明如下:
这个...
Nov
19
2021
MySQL客户端连接登入hang住原因分析
一、问题来源
问题来自一位朋友
mysql客户端无法登陆,查看服务器负载没有发现高负载信息。通过pstack查看线程栈信息,没有发现异常信息。
二、问题诊断和解决
一般来讲出现这种情况,我们会使用pstack看看新建立的线程为在什么函数上卡住了,然后很容易就能找到原因。但是出现这个问题过后,当mysql发起连接后卡住后,使用pstack查看mysqld服务端的进程,发现根本就没有线程与之进行交互,因此mysqld怀疑监听线程是不是出了什么问题,因此对mysql客户端连接进程进行了pstack发现如下:
#0 ...
Nov
18
2021
Spring Boot 系统启动任务
有时候我们会希望在Spring Boot项目启动时,完成一些初始化工作。
例如加载初始化的缓存信息,初始化一些系统运行的基本参数。
此时,就可以通过Spring Boot系统启动任务实现,有两种实现方式,分别是ApplicationRunner和CommandLineRunner。
Nov
18
2021
Nov
18
2021
Nov
18
2021
Docker 容器启动失败,提示IPv4 forwarding is disabled. Networking will not work.
docker启动容器时,突然启动失败,提示无法连接数据库(容器外),并在启动时提示:
IPv4 forwarding is disabled. Networking will not work.
百度后,发现是 linux 配置 net.ipv4.ip_forward 参数被禁用了,导致ip无法进行转发
Nov
17
2021
使用egg-mysql操作MySQL数据库
MySQL事务
事务处理可以用来维护数据库的完整性,保证成批的SQL语句,要么全部执行,要么全部不执行。当批量执行SQL的时候,事务可以保证我们数据的一致性。
下面是完整的执行流程
begin; update user set balance = balance - 100 where id = 1; update user set balance = balance + 100 where id = 2; commit; 复制代码
如果遇到错误,可以不commit,而是使用rollback进...