削除binlogのにMYSQL正しい方法

検索1.:

1
2
3
4
5
6
7
8
MySQL> show binary logs;
+—————-+———–+
| Log_name | File_size |
+—————-+———–+
| mysql-bin.000001 | 150462942 |
| mysql-bin.000002 | 125 |
| mysql-bin.000003 | 106 |
+—————-+———–+

2.(mysqlの-bin.000003を削除する前とMySQL-bin.000003が含まれていません)ビン・ログを削除します。

1
2
mysql> purge binary logs to 'mysql-bin.000003' ;
Query OK, 0 rows affected (0.16 sec)

3.クエリ結果(現在は1つのレコードのみ。)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mysql> show binlog events/G
*************************** 1. row ***************************
Log_name: mysql-bin.000003
Pos: 4
Event_type: Format_desc
Server_id: 1
End_log_pos: 106
Info: Server ver: 5.1.26-rc-log, Binlog ver: 4
1 row in set (0.01 sec)
(mysql-bin.000001和mysql-bin.000002已被删除)
mysql> show binary logs;
+—————-+———–+
| Log_name | File_size |
+—————-+———–+
| mysql-bin.000003 | 106 |
+—————-+———–+
1 row in set (0.00 sec)

(使用して他の形式は削除さ!)

1
2
PURGE {MASTER | BINARY } LOGS TO 'log_name'
PURGE {MASTER | BINARY } LOGS BEFORE 'date'

指定した日付より前にログインデックスにリストされている全てのバイナリログを削除するか、ログインするために使用されます。それは、与えられたログが最初になっているので、これらのログは、ログインデックスファイルに記録されているリストから削除されます。

例えば:

1
2
PURGE MASTER LOGS TO 'mysql-bin.010′;
PURGE MASTER LOGS BEFORE ' 2008-06-22 13:00:00′;

クリアは3日前BINLOG

1
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY );

BEFORE日付変数の引数は、 'YYYY-MM-DDのHH:MM:SS' かもしれ形式。MASTERとBINARYは同義語です。

あなたが現在あなたがログを削除しようとしているものを読んでいることをアクティブスレーブを持っている場合は、この文は仕事をしませんが、失敗し、エラーを伴います。スレーブが休止状態であり、あなたはそれを読みたいログのパージ1に起こる場合は、あなたは、スレーブサーバの起動をコピーすることはできません。スレーブサーバが複製されている場合、このステートメントは実行しても安全です。あなたはそれらを停止する必要はありません。

ログをクリーンアップするには、次の手順が必要です。

それは読んでいるログのチェックに各スレーブサーバ、利用SHOWのSLAVEのSTATUS 1.。

2. SHOWのMASTERログは、プライマリサーバ上のログのシリーズを得ます。

3.すべてのスレーブをログ早いを決定します。これは、ターゲットログです。すべてのスレーブが更新されている場合、これはリストの最後のログです。

4.削除したいすべてのログのバックアップを作成します。(このステップはオプションですが、お勧めします。)

5.クリーンすべてのログではなく、ターゲットログを含みます。

contab設定で:

コードのコピー コードを次のとおりです。
0 1 * * * `のMySQL -uroot -e 'DATE_SUB BEFORE PURGE MASTERログ(NOW()、INTERVAL 3日);`

おすすめ

転載: www.cnblogs.com/xzlive/p/12156250.html