はじめに

複数台あるMySQLのDBサーバーでレプリケーション管理を行うという事は、マスターとスレーブが存在する事になります。

何らかの事情により、直接DB内のレコードを操作する必要がある場合、誤ってスレーブで作業してしまうと、レプリが切れて障害へと繋がる危険性が高いです。

本来はホスト名などで管理するので、そうそうmasterとslaveを見失うという事はないでしょうが、MHAなどで死活管理していると、何らかのホスト障害のタイミングでマスタースレーブが入れ替わり、気付かずそのまま、という事も無くはありません。

今回はMySQLにおけるレプリケーション設定の確認と、マスター・スレーブの見分け方をメモします

 

・マスターであることを確認

1.show slave status\G での確認

とコマンドを入力し、結果がemptyであればそのサーバが他のサーバからレプリケーションをしてないことが確認できる。

 

2.show processlist での確認

とコマンドを入力し、結果の Command カラムに Binlog Dumpというのがあればそのサーバに対してレプリケーションをはってるサーバがいるという事

※ただし、だからと言って必ずマスタであるとは限らない

  • 親・子・孫と階段上にレプリケーションを貼ることもできるから
  • ただ、通常は基本しない

MHA構成でマスターに付けるaliasIP(それに対して内部DNSを登録してる場合もある)がある場合、そこのIPにsshするなどしてマスターであることを確認する。

 

・スレーブであることを確認

1.show slave status\G での確認

とコマンドを入力して、Slave_IO_RunningとSlave_SQL_Runningが両方YESの場合はスレーブでちゃんとレプリケーションされている状態であるということが確認できます。

Master_Hostの項目のFQDN or IPアドレスがそのサーバがレプリケーションをしてる元のサーバであることがわかります。

 

2.show processlist での確認

とコマンドを入力して、結果のCommandカラムにBinlog Dump というのがなければそのサーバにスレーブがいない事が確認でき、スレーブである事がわかります

 

・結論

面倒ではありますが、頑張ってレプリ構成を追うのが確実です。

aliasIPがある場合は、aliasIPにsshして $ mysql -u root -e ‘show slave status\G’empty になることを確認するのが一番確実で早い方法となります。

 

 

 

 

 


http://astone.jeez.jp/wp-content/uploads/2016/04/168H.jpghttp://astone.jeez.jp/wp-content/uploads/2016/04/168H-150x150.jpgmilksoapServerMySQL,server,メモ,レプリケーション
はじめに 複数台あるMySQLのDBサーバーでレプリケーション管理を行うという事は、マスターとスレーブが存在する事になります。 何らかの事情により、直接DB内のレコードを操作する必要がある場合、誤ってスレーブで作業してしまうと、レプリが切れて障害へと繋がる危険性が高いです。 本来はホスト名などで管理するので、そうそうmasterとslaveを見失うという事はないでしょうが、MHAなどで死活管理していると、何らかのホスト障害のタイミングでマスタースレーブが入れ替わり、気付かずそのまま、という事も無くはありません。 今回はMySQLにおけるレプリケーション設定の確認と、マスター・スレーブの見分け方をメモします   ・マスターであることを確認 1.show slave status\G での確認 とコマンドを入力し、結果がemptyであればそのサーバが他のサーバからレプリケーションをしてないことが確認できる。   2.show processlist での確認 とコマンドを入力し、結果の Command カラムに Binlog Dumpというのがあればそのサーバに対してレプリケーションをはってるサーバがいるという事 ※ただし、だからと言って必ずマスタであるとは限らない 親・子・孫と階段上にレプリケーションを貼ることもできるから ただ、通常は基本しない MHA構成でマスターに付けるaliasIP(それに対して内部DNSを登録してる場合もある)がある場合、そこのIPにsshするなどしてマスターであることを確認する。   ・スレーブであることを確認 1.show slave status\G での確認 とコマンドを入力して、Slave_IO_RunningとSlave_SQL_Runningが両方YESの場合はスレーブでちゃんとレプリケーションされている状態であるということが確認できます。 Master_Hostの項目のFQDN or IPアドレスがそのサーバがレプリケーションをしてる元のサーバであることがわかります。   2.show processlist での確認 とコマンドを入力して、結果のCommandカラムにBinlog Dump というのがなければそのサーバにスレーブがいない事が確認でき、スレーブである事がわかります   ・結論 面倒ではありますが、頑張ってレプリ構成を追うのが確実です。 aliasIPがある場合は、aliasIPにsshして $ mysql -u root -e 'show slave status\G' で empty になることを確認するのが一番確実で早い方法となります。