🙄

galera cluster の最初のノードの mariadb が再起動できない時

2021/09/14に公開

はじめに

galera cluster はビックリするほど簡単に組め[1]てうれしいです

止まったノードを再起動しようとすると、こんなエラーで再起動できない奴がいました

sudo systemctl status mariadb
● mariadb.service - MariaDB 10.3.27 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2021-09-14 02:55:40 UTC; 20s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 12688 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
  Process: 12706 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 12714 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   &
  Process: 12825 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
 Main PID: 12825 (code=exited, status=1/FAILURE)
   Status: "MariaDB server is down"

Sep 14 02:55:35 scw-a systemd[1]: Starting MariaDB 10.3.27 database server...
Sep 14 02:55:38 scw-a sh[12714]: WSREP: Recovered position 6d4a0464-620e-11eb-9e95-32f29f45a3ef:9178
Sep 14 02:55:39 scw-a mysqld[12825]: 2021-09-14  2:55:39 0 [Note] /usr/sbin/mysqld (mysqld 10.3.27-MariaDB-0+deb10u1) starting as process 12825 ...
Sep 14 02:55:39 scw-a mysqld[12825]: 2021-09-14  2:55:39 0 [Warning] Could not increase number of max_open_files to more than 16384 (request: 32186)
Sep 14 02:55:40 scw-a systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
Sep 14 02:55:40 scw-a systemd[1]: mariadb.service: Failed with result 'exit-code'.
Sep 14 02:55:40 scw-a systemd[1]: Failed to start MariaDB 10.3.27 database server.

解決

最初のノードなので [galera] の wsrep_cluster_address になにも指定していません。まだ生きているノードの一つを指定してあげて再起動したら無事に起動しました

おまけ

galera のステータスの確認にはこちらの SOの回答に出ていた通り、SHOW STATUS LIKE 'wsrep%';を --exec を付けてシェルとして実行するのが便利ですのでこの場を借りてご紹介させていただきます

表示される各パラメータの意味はこちらが参考になると思います[2]

脚注
  1. ネットの常なのですがポイントのつかみにくい体験記事の氾濫のせいでわかりにくい印象をもってしまいかねないのですが、 Debian への導入 だとこちらのドキュメントが神レベルに分かりやすかったです。ちなみに mariadb のインストールそのものもこのドキュメントがわかりやすいです ↩︎

  2. ここに出てないパラメータもいくつかあるみたいです、たとえばwsrep_causal_readsとか ↩︎

Discussion