Linuxなどのメモ書き

MySQL バイナリログの削除


Rev.1を表示中。最新版はこちら

1. 概要

MySQLでレプリケーションを行っているとMasterにバイナリログが溜っていきディスクを圧迫するので定期的に削除してやる必要がある。

2. 手順

2.1 レプリケーション状態の確認

まず、どこまでバイナリログを削除してよいかを調べる。

Slave側でSHOW SLAVE STATUSを実行し、Slaveがバイナリログをどこまで読み取っているかを調べる。「Master_Log_File」が現在参照中のバイナリログ。以下の例ではskylancer00-bin.000084を使用していることになるので、skylancer00-bin.000083まで削除してしまってよいことになる。Slaveが複数いる場合は、全Slaveについて確認を行う。

mysql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: 192.168.0.100
                Master_User: xxxx
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: skylancer00-bin.000084
        Read_Master_Log_Pos: 65746708
             Relay_Log_File: skylancer01-relay-bin.000362
              Relay_Log_Pos: 65746851
      Relay_Master_Log_File: skylancer00-bin.000084
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
    <略>
 Master_SSL_Cipher:
             Master_SSL_Key:
      Seconds_Behind_Master: 0
1 row in set (0.00 sec)

2.2 バイナリログの削除

Master側でSHOW MASTER LOGSを実行すると、バイナリログの一覧が表示される。レプリケーションが順調に動作しているのであれば、最後のバイナリログと2.1で確認した「Master_Log_File」は同じものであるはず。
mysql> SHOW MASTER LOGS;
+------------------------+------------+
| Log_name               | File_size  |
+------------------------+------------+
| skylancer00-bin.000001 | 1074149684 |
| skylancer00-bin.000002 | 1073741963 |
| skylancer00-bin.000003 | 1073742026 |
| skylancer00-bin.000004 | 1073741905 |
:
| skylancer00-bin.000083 | 1073742014 |
| skylancer00-bin.000084 |   65746708 |
+------------------------+------------+
84 rows in set (0.00 sec)

ここでは、2.1で確認したskylancer00-bin.000084より前のバイナリログを削除するには、PURGE MASTER LOGS TO 'skylancer00-bin.000084'とすればよい。指定したファイルより前のログファイルが削除される。

mysql> PURGE MASTER LOGS TO 'skylancer00-bin.000084';
Query OK, 0 rows affected (2 min 8.51 sec)

mysql> SHOW MASTER LOGS;
+------------------------+------------+
| Log_name               | File_size  |
+------------------------+------------+
| skylancer00-bin.000084 |   65746708 |
+------------------------+------------+
1 rows in set (0.00 sec)

関連ページ

MySQL レプリケーションの設定


最終更新 2007/03/07 12:58:21 - kztomita
(2007/03/07 12:58:21 作成)


リンク

その他のWiki
Linuxメモ
Xnuメモ

会社
(有)ビットハイブ
受託開発やってます。

よくやる仕事

・Webシステム開発(LAMP環境)
・Linuxサーバー設定関連
サーバー移転作業代行

開発事例にデジタルカタログ/マンガビューワーを追加しました。

draggable.jsのスマホ対応版デモページを追加しました。説明はこちら

検索

Adsense
最近のコメント