MySQL 5.1 リファレンスマニュアル :: 12 SQL ステートメント構文 :: 12.6 複製ステートメント :: 12.6.1 マスタ サーバをコントロールする SQL ステートメント :: 12.6.1.1 PURGE MASTER LOGS 構文
« 12.6.1 マスタ サーバをコントロールする SQL ステートメント

12.6.1.2 RESET MASTER 構文 »
Section Navigation      [Toggle]
  • 12.6.1 マスタ サーバをコントロールする SQL ステートメント
  • 12.6.1.1 PURGE MASTER LOGS 構文
  • 12.6.1.2 RESET MASTER 構文
  • 12.6.1.3 SET SQL_LOG_BIN 構文
  • 12.6.1.4 SHOW BINLOG EVENTS 構文
  • 12.6.1.5 SHOW BINARY LOGS 構文
  • 12.6.1.6 SHOW MASTER STATUS 構文
  • 12.6.1.7 SHOW SLAVE HOSTS 構文

12.6.1.1. PURGE MASTER LOGS 構文

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

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

例:

PURGE MASTER LOGS TO 'mysql-bin.010';
PURGE MASTER LOGS BEFORE '2003-04-02 22:46:26';

BEFORE 異型の date 引数は 'YYYY-MM-DD hh:mm:ss' フォーマットになり得ます。MASTER と BINARY は同義語です。

このステートメントは、スレーブが複製中に起動しても安全です。それらを停止させる必要はありません。現在削除しようとしているログの1つを読み込んでいる、アクティブ スレーブを持っていれば、このステートメントは何もせず、エラーで失敗します。しかし、もしスレーブが休止状態で、まだ読み込まれていないログの1つを消去してしまったら、そのスレーブはその後複製が不可能になります。

ログを安全に消去するには、次の手順に従ってください。

  1. 各スレーブ サーバ上で、どのログがそれを読み込んでいるのか確認する為に SHOW SLAVE STATUS を利用してください。

  2. SHOW BINARY LOGS を利用してマスタ サーバ上でバイナリ ログのリストを手に入れてください。

  3. 全てのスレーブの中で一番最初のログを確認してください。.これがターゲット ログです。もし全てのスレーブが最新であれば、これがリスト上の最後のログになります。

  4. 削除しようとしている全てのログのバックアップを作成してください。(このステップは任意ですが、常に推奨されている物です。)

  5. ターゲット ログを含まず、そこまでの全てのログを消去してください。

指定した日数後に(項4.2.3. 「システム変数」 を参照)バイナリ ログを自動的に無効にする expire_logs_days システム変数も設定できます。もし複製を利用しているなら、ご利用のスレーブがマスタよりも遅れるであろう最大日数よりも低く変数を設定しなければいけません。

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates