昨天晚上业务平台迁移到阿里云, 其中包括一台用于上线前做内部测试的预发布服务器;
凌晨迁移完以后直到下班数据库均无异常,等我收拾好东西准备回去的时候,收到告警说从库报1062主键冲突, 线上的数据库没有使用审计相关功能也没有开general_log, 主键冲突的是t_users表, desc查看表结构有主键, 根据主键查询表数据,看到有一个registerIP字段是专门用于测试的IP,把发给开发看确认数据是从预发布过来的, 可以删除这条数据;于是手工操作set sql_log_bin=0; delete from xx.t_users where id='xxx'; set sql_log_bin=1; start slave sql_thread;主从故障恢复;同时开发检查代码证实数据来源是预发布写的,而不是被入侵(嗯~还好不是被入侵);
后续处理办法: 从库禁止写即把read_only打开, 同时通知开发人员详细检查一下应用程序读写数据库的配置是否正确。再后续用Python开发工具去实现自动分析故障以及手功确认后自动处理。
暂无评论