# ls -l
でバイナリログの日時と番号を確認しながら以下を実施。
#消しすぎないように~。
<バイナリログの手動削除>
マスタ側でバイナリログの一覧を表示する。
mysql> show master logs;
+------------------------+------------+
| Log_name | File_size |
+------------------------+------------+
| xxxxxxxxx-bin.000001 | 1074149684 |
| xxxxxxxxx-bin.000002 | 1073741963 |
| xxxxxxxxx-bin.000003 | 1073742026 |
:
+------------------------+------------+
84 rows in set (0.00 sec)
例えば000001のログを消す場合は以下を実行。
mysql> purge master logs to 'xxxxxxxxxx-bin.000002';
Query OK, 0 rows affected (0 min 0.82 sec)
mysql> show master logs;
+------------------------+------------+
| Log_name | File_size |
+------------------------+------------+
| xxxxxxxxx-bin.000002 | 1073741963 |
| xxxxxxxxx-bin.000003 | 1073742026 |
:
+------------------------+------------+
84 rows in set (0.00 sec)
※注意※
指定した番号の前までが削除されます。
一度に大量のログの削除処理を走らせるとI/O負荷が高くなるので
気をつけましょう。
<バイナリログの自動削除>
例えば14日を経過したバイナリログを自動的に削除する場合は
mysql> set global expire_logs_days = 14;
mysql> show global variables like 'expire_logs_days';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| expire_logs_days | 14 |
+------------------+-------+
1 row in set (0.00 sec)
とする。
mysqlを再起動しても反映されるようにするには
my.cnfの[mysqld]部分に
set-variable = expire_logs_days = 14
を指定しておく。
尚、自動削除は
バイナリログがローテーションされたとき
か
mysqlを起動したとき
に削除されるらしい。
でバイナリログの日時と番号を確認しながら以下を実施。
#消しすぎないように~。
<バイナリログの手動削除>
マスタ側でバイナリログの一覧を表示する。
mysql> show master logs;
+------------------------+------------+
| Log_name | File_size |
+------------------------+------------+
| xxxxxxxxx-bin.000001 | 1074149684 |
| xxxxxxxxx-bin.000002 | 1073741963 |
| xxxxxxxxx-bin.000003 | 1073742026 |
:
+------------------------+------------+
84 rows in set (0.00 sec)
例えば000001のログを消す場合は以下を実行。
mysql> purge master logs to 'xxxxxxxxxx-bin.000002';
Query OK, 0 rows affected (0 min 0.82 sec)
mysql> show master logs;
+------------------------+------------+
| Log_name | File_size |
+------------------------+------------+
| xxxxxxxxx-bin.000002 | 1073741963 |
| xxxxxxxxx-bin.000003 | 1073742026 |
:
+------------------------+------------+
84 rows in set (0.00 sec)
※注意※
指定した番号の前までが削除されます。
一度に大量のログの削除処理を走らせるとI/O負荷が高くなるので
気をつけましょう。
<バイナリログの自動削除>
例えば14日を経過したバイナリログを自動的に削除する場合は
mysql> set global expire_logs_days = 14;
mysql> show global variables like 'expire_logs_days';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| expire_logs_days | 14 |
+------------------+-------+
1 row in set (0.00 sec)
とする。
mysqlを再起動しても反映されるようにするには
my.cnfの[mysqld]部分に
set-variable = expire_logs_days = 14
を指定しておく。
尚、自動削除は
バイナリログがローテーションされたとき
か
mysqlを起動したとき
に削除されるらしい。