Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


17.3.1.2 スレーブからローデータをバックアップする

コピーされるファイルの完全性を保証するには、MySQL レプリケーションスレーブ上のローデータファイルのバックアップが、スレーブサーバーがシャットダウンしている間に実行されるべきです。MySQL サーバーがまだ実行中の場合は、バックグラウンドタスクがデータベースファイルをまだ更新中の可能性があります (特に、InnoDB などのストレージエンジンをバックグラウンドプロセスで使用するもの)。InnoDB の場合、これらの問題はクラッシュリカバリ中に解決されるはずですが、バックアッププロセス中にマスターの実行に影響を与えずにスレーブサーバーをシャットダウンできるため、この機能を利用することは意味があります。

サーバーをシャットダウンしてファイルをバックアップするには:

  1. スレーブ MySQL サーバーをシャットダウンします。

    shell> mysqladmin shutdown
  2. データファイルをコピーします。cptarWinZip など、コピーまたはアーカイブに適したユーティリティーを使用できます。たとえば、データディレクトリが現在のディレクトリの下にある場合、ディレクトリ全体を次のようにアーカイブできます。

    shell> tar cf /tmp/dbbackup.tar ./data
  3. MySQL サーバーを再起動します。Unix の場合:

    shell> mysqld_safe &

    Windows の場合:

    C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld"

通常は、スレーブ MySQL サーバーのデータディレクトリ全体をバックアップしてください。データをリストアしてそれらをスレーブとして運用できるようにしたい場合 (たとえば、スレーブの障害時)、スレーブのデータに加えて、スレーブステータスファイル、マスター情報およびリレーログ情報リポジトリ、およびリレーログファイルもバックアップしてください。これらのファイルは、スレーブのデータをリストアしたあとにレプリケーションを再開するために必要です。

リレーログを失ったけれども relay-log.info ファイルがある場合は、これを調べることで SQL スレッドがマスターバイナリログ内でどのくらい実行されたかを判断できます。それから MASTER_LOG_FILE および MASTER_LOG_POS オプションで CHANGE MASTER TO を使用することで、そのポイントからバイナリログを再度読み取るようにスレーブに指示できます。これには、マスターサーバー上にバイナリログが残っている必要があります。

スレーブが LOAD DATA INFILE ステートメントをレプリケートする場合、スレーブがこのために使用するディレクトリ内に存在する SQL_LOAD-* ファイルもバックアップしてください。スレーブは、中断した LOAD DATA INFILE 操作のレプリケーションを再開するためにこれらのファイルを必要とします。このディレクトリの場所は --slave-load-tmpdir オプションの値です。そのオプションでサーバーを起動しなかった場合、ディレクトリの場所は tmpdir システム変数の値になります。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.