您好,登錄后才能下訂單哦!
常用的binlog日志操作命令
1)查看所有binlog日志列表
mysql> show master logs;
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)
mysql> show master logs;
+------------------+-----------+
| 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> show master logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 106 |
+------------------+-----------+
1 row in set (0.00 sec)
5.1)清除binlog:
刪除binlog.000022之前的文件
//刪除指定日志文件的日志索引中binlog日志文件
mysql> purge master logs to 'binlog.000022';
Query OK, 0 rows affected (0.04 sec)
mysql> show master logs;
+---------------+------------+
| 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中的對應路徑刪除。
5.4)通過設置binlog過期的時間,使系統自動刪除binlog文件:
mysql> show variables like 'expire_logs_days';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| expire_logs_days | 0 |
+------------------+-------+
mysql> set global expire_logs_days = 14; #設置binlog多少天過期
注意:
過期時間設置的要適當,對于主從復制,要看從庫的延遲決定過期時間,特別是一些繁忙的業務系統,避免主庫binlog還未傳到從庫便因過期而刪除,
導致主從不一致,另外保留足夠多的binlog日志做恢復使用。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。