关于mysql做完大transaction

环境:mysql 5.7 linux 7 256内存 32核 

前景交代 

做了一个select 大约5亿条记录  之后做了delete  all  删除到一半的时候发现不对 取消掉 rollback 

按照道理 安静等待mysql 的回滚就能恢复数据  

从28号开始回滚到29号 都没结束这个事物

感觉不太对   

然后进mysql.information_schema.INNODB_TRX

 

 

奇怪的是在mysql.information_schema.INNODB_LOCKS    INNODB_LOCK_WAITS 这两张表 并没有数据返回

show engine innodb status 发现也是这个事物  

直接执行 systemctl restart mysqld (一直tail着mysql的err日志)

等待5分钟 根本shutdown 不下来 全部失败 这个看ps -ef|grep mysqld  发现还是存活的状态 登录mysql 发现有已经登录不上了socket 已经掉了  

 

决定kill 这个进成    先kill mysqld_safe  在kill mysqld   

等全部进程kill 完毕  启动mysql  开始innodb_recover 

start mysql 那个脚本启动file 不用担心 这个是脚本启动超时 进程依旧存在 

等到mysqld ready   kill掉mysql 重启 就可以了 

完事show processlist 看看kill 进程还是否存在 存在的话就kill 掉 

 

其实可以采用更加方便的(如果表小的话 表小 表小 表下) innodb_force_recover=3 不让它回滚undo 然后做mysqldump 这个表太大 能不采用那种方法就不用那种方法  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值