云数据库 MySQL

备份失败原因

最近更新时间:2024-07-01 14:30:01

我的收藏

单实例的表数量超过30万

单个实例的表数量超过30万后,可能会造成备份失败,同时也会影响数据库监控,请合理规范表的数量,控制单个实例表数量不超过30万。

无主键表导致的大事务

原因分析

实例中存在无主键表且 binlog 为 row 格式时,当一条 sql 更新/删除了大量数据,在备机回放会造成大事务,从而导致备份线程无法获取锁,造成备份失败。

处理方案

1. 通过 sql 检查实例中所有存在的无主键表。
select TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE,ENGINE,TABLE_ROWS from information_schema.tables where (table_schema,table_name) not in (select table_schema,table_name from information_schema.columns where COLUMN_KEY='PRI') and table_schema not in ('sys','mysql','information_schema','performance_schema');
2. 对无主键表添加主键。
alter table table_name add primary key(`column_name`);