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


MySQL 5.6 リファレンスマニュアル  /  ...  /  レプリケーションとマスターまたはスレーブシャットダウン

17.4.1.19 レプリケーションとマスターまたはスレーブシャットダウン

マスターサーバーをシャットダウンしてあとで再起動することは安全です。スレーブがマスターへの接続を失った場合、スレーブはすぐに再接続しようとし、それが失敗した場合は定期的に再試行します。デフォルトでは 60 秒ごとに再試行します。これは、CHANGE MASTER TO ステートメントで変更できます。スレーブはネットワーク接続停止にも対応できます。ただし、スレーブは、マスターからのデータを slave_net_timeout 秒間受け取らなかったあとにのみ、ネットワーク停止を認識します。停止時間が短い場合は、slave_net_timeout を減らすことをお勧めします。セクション5.1.4「サーバーシステム変数」を参照してください。

マスター側で予期しないシャットダウン (たとえば、クラッシュ) が発生すると、マスターバイナリログファイルがフラッシュされていないため、マスターバイナリログにスレーブが読み取った最新の位置より前の最終位置が記録される可能性があります。このため、マスターが復帰したときにスレーブを複製できないことがあります。マスター my.cnf ファイルで sync_binlog=1 を設定することは、マスターがそのバイナリログをフラッシュする頻度が上がることになるため、この問題を最小化するのに役立ちます。

スレーブをクリーンにシャットダウンすることは、中断した場所が追跡されるため安全です。ただし、スレーブが一時テーブルを開いていないことを考慮してください。セクション17.4.1.22「レプリケーションと一時テーブル」を参照してください。予期しないシャットダウンにより問題が発生する場合があります (特に、ディスクキャッシュがディスクにフラッシュされない状態で問題が発生した場合)。

  • トランザクションについては、スレーブはコミットしてから relay-log.info を更新します。これら 2 つの操作の間にクラッシュが発生した場合、リレーログ処理はファイルが示す情報より先に進み、スレーブは再起動されたあとにリレーログ内の最後のトランザクションからイベントを再実行します。

  • 同様な問題は、スレーブが relay-log.info を更新したけれども、その書き込みがディスクにフラッシュされる前にサーバーホストがクラッシュした場合にも発生する可能性があります。これが発生する可能性を最小化するには、スレーブ my.cnf ファイルに sync_relay_log_info=1 を設定してください。sync_relay_log_info のデフォルト値は 0 で、この場合はディスクへの書き込みは強制されません。サーバーはオペレーティングシステムに依存して随時ファイルをフラッシュします。

システムのこのような問題に対する耐障害性は、優れた無停電電源があると大幅に向上します。