标准步骤
场景说明
| 场景说明 | 其他说明 |
|---|---|
| slow_log.csv文件过大,且实例角色为主库 | 这个表是slow-log TABLE格式的数据文件,默认用的是CSV引擎 |
| slow_log.csv文件过大,且实例角色为从库 |
场景1,slow_log.csv文件过大,且实例角色为主库
-
暂停主从的慢查功能
暂停主库和从库的慢查功能:
mysql> SET GLOBAL slow_query_log = 'OFF';
配置类的SQL不会同步到从库上,因此清理主库慢查csv之前,主从上都要手工停止slow log;否则从库将无法执行后续重命名,重建表的SQL,导致复制停止。报错示例:
Worker 16 failed executing transaction '5ce8be00-2984-11eb-87ff-3868dd2aded8:736835887' at master log mysql-bin.010720, end_log_pos 148424470; Error 'Table 'mysql.slow_log_drop' doesn't exist' on query. Default database: 'mysql'. Query: 'CREATE TABLE slow_log LIKE slow_log_drop'
-
在主库上,重命名slow_log表
mysql> ALTER TABLE slow_log RENAME slow_log_drop;
-
在主库上,重建新的slow_log表
mysql> CREATE TABLE slow_log LIKE slow_log_drop;
-
在主从上,重启慢查功能
mysql> SET GLOBAL slow_query_log = 'ON';
-
清理旧slow log表
mysql> DROP TABLE slow_log_drop;
场景2,slow_log.csv文件过大,且实例角色为从库
-
在从库上,暂停慢查功能
mysql> SET GLOBAL slow_query_log = 'OFF';
-
临时关闭从库的binlog
防止后续SQL多GTID,影响复制
mysql> set session sql_log_bin = 0;
-
在从库上,重命名slow_log表
mysql> ALTER TABLE slow_log RENAME slow_log_drop;
-
在从库上,重建新的slow_log表
mysql> CREATE TABLE slow_log LIKE slow_log_drop;
-
在从库上,重启慢查功能
mysql> SET GLOBAL slow_query_log = 'ON';
-
清理旧slow log表
mysql> DROP TABLE slow_log_drop;
-
在从库上,开启binlog
mysql> set session sql_log_bin=1;
事后验证
- 观察告警/监控屏/
df -h命令输出 ls -hl检查文件大小