Y-Ken Studio

新しもの好きのデータエンジニアが四方山話をお届けします。

ますます進化したMySQL-5.6のレプリケーション状況出力(SHOW SLAVE STATUS構文)をMySQL-5.0と比較する

MySQL-5.6ではSHOW SLAVE STATUS;の出力が大幅に変わりました。

嬉しいポイントとしては、Last_SQL_Error_Timestampというカラムが増えたことです。
これはレプリケーションエラーが起きた際、それが何時何分に起きたのかが分かるのです。
従来であればサーバのmysqld.logを確認する必要がありましたが、その必要はありません。

ますます進化したMySQL-5.6のSHOW SLAVE STATUS構文の出力結果を追ってみましょう!

どう変わったか

MySQL-5.0ではSHOW SLAVE STATUSの結果は33行でした。
MySQL-5.1/5.5を経て、5.6では54行にも増えました。

新しい21のカラム

私が注目する、4つの新機能から紹介します。

遅延スレーブの動作状況が見える

  • SQL_Delay
  • SQL_Remaining_Delay

Delayed Replicationという、レプリケーションマスタより指定秒数は
最低限遅れた状態を作ることが出来るMySQL-5.6.0からの新機能です。
これの、遅延スレーブの状況が確認できます。

バイナリログによる帯域枯渇対策が可能になった

  • Master_Bind

マスタとのレプリケーション同期をする際に、バイナリログの転送を行います。
そのバイナリログの転送により、帯域が枯渇する事があります。
その対策として、サービス側と、レプリケーションなどのバックエンド通信を
別のネットワークインターフェースに分けた方が安定するケースがあります。
そんな時にとても有用なMySQL 5.6.2からの新機能です。

スレーブの動作状況が分かるようになった

  • Slave_SQL_Running_State

これまでshow processlist;でしか確認出来なかった
スレーブプロセスのステータスをMySQL 5.6.0からは取得出来ます。
例:Slave has read all relay log; waiting for the slave I/O thread to update it

レプリケーションエラー発生時刻が分かる

  • Last_IO_Error_Timestamp
  • Last_SQL_Error_Timestamp

これは欲しかった機能です。MySQL 5.6.3にて追加されました。
レプリケーションエラーが起きた際、それが何時何分に起きたのかが分かります。
従来であればサーバのmysqld.logを確認する必要がありましたが、その必要はもうありません。

その他

  • Master_SSL_Verify_Server_Cert
    レプリケーション接続時のSSLオプションを指定する。MySQL 5.1.18より追加。
  • Last_IO_Errno, Last_IO_Error, Last_SQL_Errno, Last_SQL_Error
    これまで汎用的に使われていたLast_Errorから、種類別に分かれたようです。
    具体的にどのクエリが失敗したのか、Last_Errorだけでなくここでも分かります。
  • Replicate_Ignore_Server_Ids
    MySQL 5.5から追加された物で、マスタが複数台ある構成向けです。
    特定のサーバIDからのバイナリログは無視したいという事が出来ます。
  • Master_Server_Id
    マスタのサーバIDが分かります
  • Master_UUID
    マスタのUUIDが分かります。
    CentOSならこの設定は/var/lib/mysql/auto.cnfにあります。
  • Master_Info_File
    レプリケーションマスタへの接続情報・ポジション情報を記録するファイルパスです。
  • Master_Retry_Count
    MySQL-5.1から増えたマスタへの最大再接続回数です。デフォルトは86400となっています。
  • Master_SSL_Crl, Master_SSL_Crlpath
    マスタ・スレーブ間でSSL暗号化を利用する際の設定
  • Retrieved_Gtid_Set, Executed_Gtid_Set, Auto_Position GTID利用時の状況

従来通り

以下はこれまでと同様の出力です。

  • Slave_IO_State
  • Master_Host
  • Master_User
  • Master_Port
  • Connect_Retry
  • Master_Log_File
  • Read_Master_Log_Pos
  • Relay_Log_File
  • Relay_Log_Pos
  • Relay_Master_Log_File
  • Slave_IO_Running
  • Slave_SQL_Running
  • Replicate_Do_DB
  • Replicate_Ignore_DB
  • Replicate_Do_Table
  • Replicate_Ignore_Table
  • Replicate_Wild_Do_Table
  • Replicate_Wild_Ignore_Table
  • Last_Errno
  • Last_Error
  • Skip_Counter
  • Exec_Master_Log_Pos
  • Relay_Log_Space
  • Until_Condition
  • Until_Log_File
  • Until_Log_Pos
  • Master_SSL_Allowed
  • Master_SSL_CA_File
  • Master_SSL_CA_Path
  • Master_SSL_Cert
  • Master_SSL_Cipher
  • Master_SSL_Key
  • Seconds_Behind_Master

本日は以上です。