Maxscaleで指定したサーバをメンテナンスモードにする
Pocket

Maxscaleを使っていて、再起動などで後ろにいる特定のDBサーバに接続させないようにしたい時もあるだろう。
そんなときは、指定したDBサーバをメンテナンスモードにすればよい。

Maxscaleで特定サーバをメンテナンスモードにしたい場合は、maxadminコマンドで以下のように実行すればよい。

maxadmin -p パスワード(初期:mariadb) set server サーバ名 maintenance

 

20160131_000001

[root@BS-PUB-GFRONT-01 ~]# maxadmin -p mariadb list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server             | Address         | Port  | Connections | Status
-------------------+-----------------+-------+-------------+--------------------
BS-PUB-GALERA-01   | 172.28.0.132    |  3306 |           1 | Slave, Synced, Running
BS-PUB-GALERA-02   | 172.28.0.133    |  3306 |           1 | Master, Synced, Running
BS-PUB-GALERA-03   | 172.28.0.134    |  3306 |           1 | Slave, Synced, Running
-------------------+-----------------+-------+-------------+--------------------
[root@BS-PUB-GFRONT-01 ~]# maxadmin -p mariadb set server BS-PUB-GALERA-03 maintenance
[root@BS-PUB-GFRONT-01 ~]# maxadmin -p mariadb list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server             | Address         | Port  | Connections | Status
-------------------+-----------------+-------+-------------+--------------------
BS-PUB-GALERA-01   | 172.28.0.132    |  3306 |           1 | Slave, Synced, Running
BS-PUB-GALERA-02   | 172.28.0.133    |  3306 |           1 | Master, Synced, Running
BS-PUB-GALERA-03   | 172.28.0.134    |  3306 |           1 | Maintenance, Slave, Synced, Running
-------------------+-----------------+-------+-------------+--------------------

 

Sponsored Links

これで、指定したサーバはメンテナンスモードに切り替わったため、このサーバにはアクセスされない。
なお、メンテナンスモードを終了する場合は以下のようにコマンドを実行する。

maxadmin -p パスワード(初期:mariadb) clear server サーバ名 maintenance

20160131_000003

[root@BS-PUB-GFRONT-01 ~]# maxadmin -p mariadb list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server             | Address         | Port  | Connections | Status
-------------------+-----------------+-------+-------------+--------------------
BS-PUB-GALERA-01   | 172.28.0.132    |  3306 |           1 | Slave, Synced, Running
BS-PUB-GALERA-02   | 172.28.0.133    |  3306 |           1 | Master, Synced, Running
BS-PUB-GALERA-03   | 172.28.0.134    |  3306 |           1 | Maintenance, Slave, Synced, Running
-------------------+-----------------+-------+-------------+--------------------
[root@BS-PUB-GFRONT-01 ~]# maxadmin -p mariadb clear server BS-PUB-GALERA-03 maintenance
[root@BS-PUB-GFRONT-01 ~]# maxadmin -p mariadb list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server             | Address         | Port  | Connections | Status
-------------------+-----------------+-------+-------------+--------------------
BS-PUB-GALERA-01   | 172.28.0.132    |  3306 |           1 | Slave, Synced, Running
BS-PUB-GALERA-02   | 172.28.0.133    |  3306 |           1 | Master, Synced, Running
BS-PUB-GALERA-03   | 172.28.0.134    |  3306 |           1 | Slave, Synced, Running
-------------------+-----------------+-------+-------------+--------------------

 

なお、Masterノードをメンテナンスモードにする場合は、そのままだと書き込みができなくなってしまうため、別途以下のようにコマンドを実行しMasterノードを切り替える必要がある。

maxadmin -p パスワード(初期:mariadb) set server サーバ名 master

20160131_000004

[root@BS-PUB-GFRONT-01 ~]# maxadmin -p mariadb list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server             | Address         | Port  | Connections | Status
-------------------+-----------------+-------+-------------+--------------------
BS-PUB-GALERA-01   | 172.28.0.132    |  3306 |           0 | Slave, Synced, Running
BS-PUB-GALERA-02   | 172.28.0.133    |  3306 |           0 | Master, Synced, Running
BS-PUB-GALERA-03   | 172.28.0.134    |  3306 |           0 | Synced, Running
-------------------+-----------------+-------+-------------+--------------------
[root@BS-PUB-GFRONT-01 ~]# maxadmin -p mariadb set server BS-PUB-GALERA-02 maintenance
[root@BS-PUB-GFRONT-01 ~]# mysql -u test -ppassword -h 127.0.0.1 -e 'insert into test1234.sample(id) values(1);'
ERROR 1045 (28000): failed to create new session
[root@BS-PUB-GFRONT-01 ~]# maxadmin -p mariadb set server BS-PUB-GALERA-03 master
[root@BS-PUB-GFRONT-01 ~]# maxadmin -p mariadb list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server             | Address         | Port  | Connections | Status
-------------------+-----------------+-------+-------------+--------------------
BS-PUB-GALERA-01   | 172.28.0.132    |  3306 |           0 | Slave, Synced, Running
BS-PUB-GALERA-02   | 172.28.0.133    |  3306 |           0 | Maintenance, Master, Synced, Running
BS-PUB-GALERA-03   | 172.28.0.134    |  3306 |           0 | Master, Synced, Running
-------------------+-----------------+-------+-------------+--------------------
[root@BS-PUB-GFRONT-01 ~]# mysql -u test -ppassword -h 127.0.0.1 -e 'insert into test1234.sample(id) values(1);'
[root@BS-PUB-GFRONT-01 ~]#

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。