数据库进入只读状态的原因可能包括:
read_only
参数被设置为。如果非连接从库,或者自己的开启只读,稍微等待一下就行,业务上的数据自行修复或者优化代码操作逻辑
-- (关掉新主库的只读属性)
set global read_only=0;
flush privileges;
-- (开启新主库的只读属性)
set global read_only=1;
flush privileges;
-- 查看状态
SHOW GLOBAL VARIABLES LIKE 'READ_ONLY';
后续步骤的日志业务状态修改成功,自身修改任务状态失败卡住了——顺序不合理
对用户并发做限制,大于指定值就拒绝执行新的,对卡死有补偿逻辑,是从下游开始到上游,这里下游成功了上游失败,导致补偿逻辑失效
通过调整更新数据顺序可解决该问题(这种概率很低,写代码靠经验避免一下)