MGR修改max_binlog_cache_size参数导致异常

MGR修改max_binlog_cache_size参数导致异常
简介: MGR修改max_binlog_cache_size参数导致异常 一、问题来源 这是一位朋友的问题,因为前期朋友设置max_binlog_cache_size为8m,后面在线进行了修改了本参数,但是结果导致整个3节点的MGR集群除了primary节点其他两个second节点均掉线。大概的日志如下: ...

阅读全文>>

阅读全文...

MySQL压测时Linux中断异常飚高

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...

阅读全文>>

阅读全文...

slave开启MTS时执行mysqldump引发死锁案例(2)

slave开启MTS时执行mysqldump引发死锁案例(2)
五、关于woker线程w2的等待 这里可能的原因有2个: 多线程并行的情况下,线程执行的顺序本生就是不定的,很可能线程由于丢失CPU而落后其他线程的处理,因为CPU调度的最小单位是线程。如果保证某个共享内存操作的完整性需要用到mutex、原子变量等技术。 如果w2中的事务本生就包含了多个DML语句,那么获取 GLOBAL READ LOCK 本身就是间歇性的,也就是每个语句结束都会释放,然后下一个语句开始的时候再次open table来获取。 我们来看看第二点,只考虑row_format格式的binlog。 ...

阅读全文>>

阅读全文...

slave开启MTS时执行mysqldump引发死锁案例(1)

slave开启MTS时执行mysqldump引发死锁案例(1)
一、问题来源 这是一位客户的提供的案例如下,show processlist截图如下: 出现这种问题除非手动干预,杀掉FTWRL的session,复制线程方可以继续进行。版本社区版5.7.26。 二、堵塞图 如果分析上面的堵塞可以画图如下: 三、关于woker线程w1和w3的等待 这里我们需要重点关注参数 slave_preserve_commit_order,在我将要出版的《深入理解MySQL主从原理》一书中做了详细描述,这里简单说明如下: 这个...

阅读全文>>

阅读全文...

MySQL客户端连接登入hang住原因分析

MySQL客户端连接登入hang住原因分析
一、问题来源 问题来自一位朋友 mysql客户端无法登陆,查看服务器负载没有发现高负载信息。通过pstack查看线程栈信息,没有发现异常信息。 二、问题诊断和解决 一般来讲出现这种情况,我们会使用pstack看看新建立的线程为在什么函数上卡住了,然后很容易就能找到原因。但是出现这个问题过后,当mysql发起连接后卡住后,使用pstack查看mysqld服务端的进程,发现根本就没有线程与之进行交互,因此mysqld怀疑监听线程是不是出了什么问题,因此对mysql客户端连接进程进行了pstack发现如下: #0 ...

阅读全文>>

阅读全文...

Spring Boot 系统启动任务

Spring Boot 系统启动任务

有时候我们会希望在Spring Boot项目启动时,完成一些初始化工作。

例如加载初始化的缓存信息,初始化一些系统运行的基本参数。

此时,就可以通过Spring Boot系统启动任务实现,有两种实现方式,分别是ApplicationRunner和CommandLineRunner。

阅读全文>>

阅读全文...

Spring Boot 单元测试

Spring Boot 单元测试

一般来说,对控制层的接口访问可以使用PostMan进行,或者通过Swagger进行自动化的测试。


但是对于Service层或者Dao层的测试,就需要借助单元测试了。

阅读全文>>

阅读全文...

微信公众平台开发使用Swagger便于接口调试

微信公众平台开发使用Swagger便于接口调试

在之前的示例中,我们都是通过访问URL发起测试的,这种方式比较麻烦。

我们可以在SpringBoot中引入Swaager,这样打开Swagger页面就可以直接可视化调试了。

阅读全文>>

阅读全文...

Docker 容器启动失败,提示IPv4 forwarding is disabled. Networking will not work.

Docker 容器启动失败,提示IPv4 forwarding is disabled. Networking will not work.

docker启动容器时,突然启动失败,提示无法连接数据库(容器外),并在启动时提示:

IPv4 forwarding is disabled. Networking will not work.

百度后,发现是 linux 配置 net.ipv4.ip_forward 参数被禁用了,导致ip无法进行转发

阅读全文>>

阅读全文...

使用egg-mysql操作MySQL数据库

使用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进...

阅读全文>>

阅读全文...