天天看點

mysqlbinlog 日常維護

常用的binlog日志操作指令

1)檢視所有binlog日志清單

mysql> show master logs;

+------------------+------------+

| Log_name         | File_size  |

| mysql-bin.000020 | 1233973852 |

| mysql-bin.000021 | 1098889933 |

| mysql-bin.000022 | 1073742725 |

| mysql-bin.000023 | 1076857649 |

2 rows in set (0.00 sec)

2)檢視master狀态,即最後(最新)一個binlog日志的編号名稱,及其最後一個操作事件pos結束點(Position)值

mysql> show master status;

+------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

|  mysql-bin.000023 | 4102 | | |

1 row in set (0.00 sec)

3)flush重新整理log日志,自此刻開始産生一個新編号的binlog日志檔案

mysql> flush logs;

Query OK, 0 rows affected (0.13 sec)

+------------------+-----------+

| Log_name | File_size |

| mysql-bin.000001 | 149 |

| mysql-bin.000002 | 4145 |

| mysql-bin.000003 | 106 |

3 rows in set (0.00 sec)

注意:

每當mysqld服務重新開機時,會自動執行此指令,重新整理binlog日志;在mysqldump備份資料時加 -F 選項也會重新整理binlog日志;

4)重置(清空)所有binlog日志

mysql> reset master;

Query OK, 0 rows affected (0.12 sec)

| mysql-bin.000001 | 106 |

5.1)清除binlog:

删除binlog.000022之前的檔案

//删除指定日志檔案的日志索引中binlog日志檔案

mysql> purge master logs to 'binlog.000022';

Query OK, 0 rows affected (0.04 sec)

+---------------+------------+

| Log_name      | File_size  |

| binlog.000022 |  185770450 |

| binlog.000023 |  209780654 |

| binlog.000024 |  210483780 |

| binlog.000025 |  210304097 |

| binlog.000026 |  210346860 |

| binlog.000027 |  209954750 |

| binlog.000028 |  210094938 |

5.2)指定時間進行删除:

purge master logs before'2018-10-02 21:40:00'; //删除指定日期以前的日志索引中binlog日志檔案

5.3)删除binlog注意事項:

注意時間和檔案名一定不可以寫錯,特别是時間中的年和檔案名中的序号,防止将正在使用的binlog删除,切勿删除正在使用的binlog。

使用該文法,會将對應的檔案和mysql-bin.index中的對應路徑删除。

繼續閱讀