Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


17.2.2.2 スレーブステータスログ

レプリケーションスレーブサーバーは 2 つのログを作成します。デフォルトでは、これらのログは master.info および relay-log.info という名前のファイルで、データディレクトリ内に作成されます。これらのファイルの名前と場所はそれぞれ、--master-info-file および --relay-log-info-file オプションを使用して変更できます。MySQL 5.6 以降では、適切なオプションでサーバーを起動することで、これらのどちらかまたは両方のログを mysql データベース内のテーブルに書き込むこともできます: --master-info-repository を使用すると、マスター情報ログが mysql.slave_master_info テーブルに書き込まれ、--relay-log-info-repository を使用すると、リレーログ情報ログが mysql.slave_relay_log_info テーブルに書き込まれます。セクション17.1.4「レプリケーションおよびバイナリロギングのオプションと変数」を参照してください。

2 つのステータスログには、SHOW SLAVE STATUS ステートメントの出力で示されるような情報が含まれます (セクション13.4.2「スレーブサーバーを制御するための SQL ステートメント」を参照)。ステータスログはディスクに格納されるため、スレーブサーバーのシャットダウン後も存在します。スレーブは、次に起動するときに 2 つのログを読み取って、マスターからのバイナリログ読み取りがそれ自身のリレーログの処理がどのくらい進んだかを判断します。

マスター情報ログファイルまたはテーブルは、マスターに接続するためのパスワードを含んでいるため、保護することをお勧めします。セクション6.1.2.3「パスワードおよびロギング」を参照してください。

スレーブ I/O スレッドはマスター情報ログを更新します。次の表は、master.info ファイル内の行、mysql.slave_master_info テーブル内のカラム、および SHOW SLAVE STATUS で表示されるカラムの間の対応を示しています。

master.info ファイル内の行 slave_master_info テーブルのカラム SHOW SLAVE STATUS のカラム 説明
1 Number_of_lines [None] ファイル内の行、またはテーブル内のカラムの数
2 Master_log_name Master_Log_File マスターから現在読み取られているマスターバイナリログの名前
3 Master_log_pos Read_Master_Log_Pos マスターから読み取られたマスターのバイナリログ内の現在の位置です
4 Host Master_Host マスターのホスト名
5 User_name Master_User マスターへの接続に使用されるユーザー名
6 User_password パスワード (SHOW SLAVE STATUS では表示されない) マスターへの接続に使用されるパスワード
7 Port Master_Port マスターへの接続に使用されるネットワークポート
8 Connect_retry Connect_Retry マスターへの再接続を試みる前にスレーブが待機する期間 (秒単位)
9 Enabled_ssl Master_SSL_Allowed サーバーが SSL 接続をサポートするかどうかを示す
10 Ssl_ca Master_SSL_CA_File 認証局 (CA) 証明書に使用されるファイル
11 Ssl_capath Master_SSL_CA_Path 認証局 (CA) 証明書へのパス
12 Ssl_cert Master_SSL_Cert SSL 証明書ファイルの名前
13 Ssl_cipher Master_SSL_Cipher SSL 接続のハンドシェイクで使用される可能な暗号のリスト
14 Ssl_key Master_SSL_Key SSL キーファイルの名前
15 Ssl_verify_server_cert Master_SSL_Verify_Server_Cert サーバー証明書を検証するかどうか
16 Heartbeat [None] レプリケーションハートビートの間隔 (秒単位)
17 Bind Master_Bind マスターへの接続にスレーブのどのネットワークインタフェースを使用すべきか
18 Ignored_server_ids Replicate_Ignore_Server_Ids 無視するサーバー ID のリスト。Ignored_server_ids の場合、サーバー ID のリストの前に、無視するサーバー ID の合計数が付きます。
19 Uuid Master_UUID マスターの一意 ID
20 Retry_count Master_Retry_Count 許容される再接続試行の最大数
21 Ssl_crl [None] SSL 証明書失効リストファイルへのパス (MySQL バージョン 5.6.3 で追加)
22 Ssl_crl_path [None] SSL 証明書失効リストファイルを含むディレクトリへのパス (MySQL バージョン 5.6.3 で追加)
23 Enabled_auto_position Auto_position 自動ポジショニングが使用中かどうか (MySQL バージョン 5.6.5 で追加)
注記

MySQL 5.6.3 より前では、Ssl_verify_server_cert カラムの名前は Ssl_verify_servert_cert でした。(Bug #12407446、Bug #60988)

スレーブ SQL スレッドはリレーログ情報ログを更新します。MySQL 5.6 では、relay-log.info ファイルに行数とレプリケーション遅延値が含まれます。次の表は、relay-log.info ファイル内の行、mysql.slave_relay_log_info テーブル内のカラム、および SHOW SLAVE STATUS で表示されるカラムの間の対応を示します。

relay-log.info 内の行 slave_relay_log_info テーブルのカラム SHOW SLAVE STATUS のカラム 説明
1 Number_of_lines [None] ファイル内の行またはテーブル内のカラムの数
2 Relay_log_name Relay_Log_File 現在のリレーログファイルの名前
3 Relay_log_pos Relay_Log_Pos リレーログファイル内の現在の位置。この位置までのイベントがスレーブデータベースで実行された
4 Master_log_name Relay_Master_Log_File リレーログファイル内のイベントが読み取られたマスターバイナリログファイルの名前
5 Master_log_pos Exec_Master_Log_Pos すでに実行されたイベントの、マスターのバイナリログファイル内での対応位置
5 Sql_delay SQL_Delay スレーブがマスターより遅れる必要がある秒数
6 Number_of_workers [None] レプリケーションイベント (トランザクション) を並列に実行するためのスレーブワーカースレッドの数 (MySQL バージョン 5.6.7 で追加)
7 Id [None] スレーブがマスターより遅れる必要がある秒数 (MySQL バージョン 5.6.7 で追加)

MySQL 5.6 より前では、relay-log.info ファイルに行数または遅延値が含まれません (さらに、slave_relay_log_info テーブルを使用できません)。

Status カラム 説明
1 Relay_Log_File 現在のリレーログファイルの名前
2 Relay_Log_Pos リレーログファイル内の現在の位置。この位置までのイベントがスレーブデータベースで実行された
3 Relay_Master_Log_File リレーログファイル内のイベントが読み取られたマスターバイナリログファイルの名前
4 Exec_Master_Log_Pos すでに実行されたイベントの、マスターのバイナリログファイル内での対応位置
注記

スレーブサーバーを MySQL 5.6 より古いバージョンにダウングレードした場合、古いサーバーは relay-log.info ファイルを正しく読み取りません。これに対処するには、テキストエディタでファイルを変更し、行数を含む最初の行を削除してください。

relay-log.info ファイルの内容と SHOW SLAVE STATUS ステートメントで表示される状態は、relay-log.info ファイルがディスクにフラッシュされていない場合には一致しない場合があります。理想を言えば、オフライン (つまり、mysqld が動作していない) であるスレーブ上でのみ relay-log.info を表示することをお勧めします。動作中のシステムでは、SHOW SLAVE STATUS を使用するか、ステータスログをテーブルに書き込んでいる場合は slave_master_info および slave_relay_log_info テーブルを照会できます。

スレーブのデータをバックアップするときは、リレーログファイルに加えてこれらの 2 つのステータスログもバックアップすることをお勧めします。ステータスログは、スレーブからデータをリストアしたあとにレプリケーションを再開するために必要です。リレーログを失ったけれども、まだリレーログ情報ログがある場合には、それを調べて、マスターバイナリログで SQL スレッドがどのくらい離れて実行されたかを判断できます。それから MASTER_LOG_FILE および MASTER_LOG_POS オプションで CHANGE MASTER TO を使用することで、そのポイントからバイナリログを再度読み取るようにスレーブに指示できます。もちろん、これにはバイナリログがまだマスター上に存在している必要があります。


User Comments
Sign Up Login You must be logged in to post a comment.