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つの新機能から紹介します。
遅延スレーブの動作状況が見える
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
本日は以上です。
PlanetMySQL Voting: Vote UP / Vote DOWN