某地域RO数据库挂掉
挂掉的原因是由于A表中有duplicate key ‘id’
根因是这个表使用的引擎archive有个bug,主库自增id正常增长,但是从库持有的自增id 为1,在发生主从切换之后,从库提主,新插入的数据id从1开始增长,但是ro和备库同步的时候会认为这个输入有重复key因此报错
修复
主从库分别修改这张表的引擎
rename table api_operate_detail to api_operate_detail_bak;
create table api_operate_detail like api_operate_detail_bak;
alter table api_operate_detail engine = innodb;
INSERT INTO api_operate_detail SELECT * FROM api_operate_detail_bak WHERE createTime < '2024-09-25 10:18:52' AND createTime > '2023-09-25 10:18:52';
思考
1.MySQL5.7还是有点老了,尽量不使用archive这种较新的引擎
2.archive引擎,适用于归档场景,记录操作日志等,没有事务,响应速度比较快