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


















