目次
はじめに
Verticaクラスタを複数ノードで構築した場合、サーバメンテナンスなどの目的で1ノードずつ起動/停止したいケースがあります。本記事では、ある1ノードのIPアドレスを指定してVerticaプロセスやサービスを起動/停止する方法をご紹介します。
なお、Verticaには大きく分けて下記3つのサービスがあり、それぞれの依存関係を意識して起動/停止を実行します。
※本記事では特定ノードの起動/停止方法を紹介しているため、上記の「Verticaデータベース」を「Verticaプロセス」と記載しています。
RHEL 6 または CentOS 6 の場合
Verticaプロセスと関連サービスの停止方法(ノード指定)
Management Console、エージェント、Verticaプロセスの順に停止します。Management Consoleの停止
rootユーザで以下のコマンドを実行します。Management Consoleをインストールしているノードのみ、実行します。
【構文】
1 |
# /etc/init.d/vertica-consoled stop |
【実行例】
1 2 3 4 5 6 |
# /etc/init.d/vertica-consoled stop Vertica Console: Management Console stopped stop OK # [ OK ] <「stop OK」が表示されることを確認します> |
エージェントの停止
rootユーザで以下のコマンドを実行します。停止したいノードで実行します。
【構文】
1 |
# /etc/init.d/vertica_agent stop |
【実行例】
1 2 3 4 |
# /etc/init.d/vertica_agent stop Stopping vertica agent: <「Stopping vertica agent:」が表示されることを確認します> |
Verticaプロセスの停止
dbadminユーザ(OS)で以下のコマンドを実行します。クラスタ内のいずれかのノードで実行します。
【構文】
1 |
$ admintools -t stop_node -s <停止するノードのインターコネクト用IPアドレス> |
【実行例】
1 2 3 4 5 |
$ admintools -t stop_node -s 10.2.1.1 *** Forcing host shutdown *** Sending host shutdown command to '10.2.1.1' <「Sending host shutdown command to 'IPアドレス'」が表示されることを確認します> |
Verticaプロセスと関連サービスの起動方法(ノード指定)
Verticaプロセス、エージェント、Management Consoleの順に起動します。Verticaプロセスの起動
dbadminユーザ(OS)で以下のコマンドを実行します。クラスタ内のいずれかのノードで実行します。
【構文】
1 |
$ admintools -t restart_node -d <データベース名> -s <起動するノードのインターコネクト用IPアドレス> |
【実行例】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ admintools -t restart_node -d vdb -s 10.2.1.1 Info: no password specified, using none *** Restarting nodes for database vdb *** Restarting host [10.2.1.1] with catalog [v_vdb_node0001_catalog] Issuing multi-node restart Starting nodes: v_vdb_node0001 (10.2.1.1) Starting Vertica on all nodes. Please wait, databases with a large catalog may take a while to initialize. Node Status: v_vdb_node0001: (DOWN) v_vdb_node0002: (UP) Node Status: v_vdb_node0001: (DOWN) v_vdb_node0002: (UP) Node Status: v_vdb_node0001: (DOWN) v_vdb_node0002: (UP) Node Status: v_vdb_node0001: (DOWN) v_vdb_node0002: (UP) Node Status: v_vdb_node0001: (RECOVERING) v_vdb_node0002: (UP) Node Status: v_vdb_node0001: (UP) v_vdb_node0002: (UP) Restart Nodes result: 1 <「Restart Nodes result: 1」が表示されることを確認します> |
エージェントの起動
rootユーザで以下のコマンドを実行します。起動したいノードで実行します。
【構文】
1 |
# /etc/init.d/vertica_agent start |
【実行例】
1 2 3 4 5 6 7 8 9 |
# /etc/init.d/vertica_agent start starting agent Opening PID file "/opt/vertica/log/agent.pid". Overwriting /opt/vertica/log/agent_dbadmin.log Overwriting /opt/vertica/log/agent_dbadmin.err OK for user: dbadmin # [ OK ] <「OK for user: dbadmin」が表示されることを確認します> |
Management Consoleの起動
rootユーザで以下のコマンドを実行します。Management Consoleをインストールしているノードのみ、実行します。
Magement Console 8.0.1-4未満のバージョンでは、Management Consoleの起動時に注意点があります。
「LANG=ja_JP.UTF-8」の状態でManagement Consoleを起動すると、ブラウザ表示が行われない場合があります。
その場合は、後述の回避策を適用してください。
【構文】
1 |
# /etc/init.d/vertica-consoled start |
【実行例】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# /etc/init.d/vertica-consoled start Vertica Console: 2019-05-30 11:33:24.467:INFO:cv.Startup:Attempting to load properties from /opt/vconsole/config/console.properties 2019-05-30 11:33:24.470:INFO:cv.Startup:Starting setuidserver <中略> ************************************************************************************************************ Please open the Vertica Management Console at https://vdbsrv01:5450/webui ************************************************************************************************************ <中略> 2019-05-30 11:33:52.306:INFO:oejs.AbstractConnector:Started SslSelectChannelConnector@0.0.0.0:5450 STARTING 2019-05-30 11:33:52.328:INFO:oms.SetUIDServer:Setting UID=500 start OK # [ OK ] <「start OK」が表示されることを確認します> |
【注意点】
Magement Console 8.0.1-4未満のバージョンで、Management Consoleの画面がブラウザ表示されない場合は、以下の回避策を実施してください。
■回避策1
Management Consoleを起動する前に、rootユーザの環境変数を設定する方法です。
1 2 |
# export LANG=en_US.UTF-8 # /etc/init.d/vertica-consoled start |
■回避策2
/opt/vconsole/bin/mctlファイルを編集します。
START_CMDが定義されている行にて、「-Duser.language=en」を「-jar $VCONSOLE_HOME/lib/webui.war」の前に追加します。
この設定実施後に、通常のコマンドで起動を行ってください。
[変更前]
1 |
START_CMD="$JAVA_HOME/bin/java $JVM_OPTS -Dvertica.home=$VERTICA_HOME -Dvconsole.home=$VCONSOLE_HOME -Djava.library.path=$VCONSOLE_HOME/lib -Dderby.system.home=$VCONSOLE_HOME/mcdb/derby -Xmx2048m -Xms1024m -XX:MaxPermSize=256m -jar $VCONSOLE_HOME/lib/webui.war" |
[変更後]
1 |
START_CMD="$JAVA_HOME/bin/java $JVM_OPTS -Dvertica.home=$VERTICA_HOME -Dvconsole.home=$VCONSOLE_HOME -Djava.library.path=$VCONSOLE_HOME/lib -Dderby.system.home=$VCONSOLE_HOME/mcdb/derby -Xmx2048m -Xms1024m -XX:MaxPermSize=256m -Duser.language=en -jar $VCONSOLE_HOME/lib/webui.war" |
ステータス確認方法
Verticaデータベースのステータス確認
dbadminユーザ(OS)で以下のコマンドを実行します。クラスタ内のいずれかのノードで実行します。
【構文】
1 |
$ admintools -t list_allnodes |
【起動時の実行例】
1 2 3 4 5 6 7 8 |
$ admintools -t list_allnodes Node | Host | State | Version | DB ----------------+----------+-------+-----------------+----- v_vdb_node0001 | 10.2.1.1 | UP | vertica-9.2.1.0 | vdb v_vdb_node0002 | 10.2.1.2 | UP | vertica-9.2.1.0 | vdb v_vdb_node0003 | 10.2.1.3 | UP | vertica-9.2.1.0 | vdb <起動の指定をしたノードのStateがUPであることを確認します> |
【停止時の実行例】
1 2 3 4 5 6 7 8 |
$ admintools -t list_allnodes Node | Host | State | Version | DB ----------------+----------+-------+-----------------+----- v_vdb_node0001 | 10.2.1.1 | DOWN | vertica-9.2.1.0 | vdb v_vdb_node0002 | 10.2.1.2 | UP | vertica-9.2.1.0 | vdb v_vdb_node0003 | 10.2.1.3 | UP | vertica-9.2.1.0 | vdb <停止の指定をしたノードのStateがDOWNであることを確認します> |
エージェントのステータス確認
rootユーザで以下のコマンドを実行します。ステータスを確認したいノードで実行します。
【構文】
1 |
# /etc/init.d/vertica_agent status |
【起動時の実行例】
1 2 3 4 |
# /etc/init.d/vertica_agent status Vertica Agent: sh (pid 36205) を実行中... <「sh (pid xxx) を実行中」が表示されることを確認します> |
【停止時の実行例】
1 2 3 4 |
# /etc/init.d/vertica_agent status Vertica Agent: sh は停止しています <「sh は停止しています」が表示されることを確認します> |
Management Consoleのステータス確認
rootユーザで以下のコマンドを実行します。Management Consoleをインストールしているノードのみ、実行します。
【構文】
1 |
# ps -ef | grep /opt/vconsole | grep -v grep |
【起動時の実行例】
1 2 3 4 |
# ps -ef | grep /opt/vconsole | grep -v grep dbadmin 39919 1 99 11:45 pts/1 00:00:54 /opt/vconsole/vendor/OpenJDK/Zulu/java/1.7u191/jre//bin/java -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true -Duser.language=en -Dvertica.home=/opt/vertica -Dvconsole.home=/opt/vconsole -Djava.library.path=/opt/vconsole/lib -Dderby.system.home=/opt/vconsole/mcdb/derby -Xmx2g -Xms1g -XX:MaxPermSize=256m -jar /opt/vconsole/lib/webui.war <プロセスが存在することを確認します> |
【停止時の実行例】
1 2 3 4 |
# ps -ef | grep /opt/vconsole | grep -v grep # <プロセスが存在しないことを確認します> |
RHEL 7 または CentOS 7 の場合
Verticaプロセスと関連サービスの停止方法(ノード指定)
Management Console、エージェント、Verticaプロセスの順に停止します。Management Consoleの停止
rootユーザで以下のコマンドを実行します。Management Consoleをインストールしているノードのみ、実行します。
【構文】
1 |
# systemctl stop vertica-consoled |
【実行例】
1 2 3 |
# systemctl stop vertica-consoled # <標準出力に何も表示されません> |
エージェントの停止
rootユーザで以下のコマンドを実行します。停止したいノードで実行します。
【構文】
1 |
# systemctl stop vertica_agent |
【実行例】
1 2 3 |
# systemctl stop vertica_agent # <標準出力に何も表示されません> |
Verticaプロセスの停止
dbadminユーザ(OS)で以下のコマンドを実行します。クラスタ内のいずれかのノードで実行します。
【構文】
1 |
$ admintools -t stop_node -s <停止するノードのインターコネクト用IPアドレス> |
【実行例】
1 2 3 4 5 |
$ admintools -t stop_node -s 10.1.1.11 *** Forcing host shutdown *** Sending host shutdown command to '10.1.1.11' <「Sending host shutdown command to 'IPアドレス'」が表示されることを確認します> |
Verticaプロセスと関連サービスの起動方法(ノード指定)
Verticaプロセス、エージェント、Management Consoleの順に起動します。Verticaプロセスの起動
dbadminユーザ(OS)で以下のコマンドを実行します。クラスタ内のいずれかのノードで実行します。
【構文】
1 |
$ admintools -t restart_node -d <データベース名> -s <起動するノードのインターコネクト用IPアドレス> |
【実行例】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ admintools -t restart_node -d vdb -s 10.1.1.11 Info: no password specified, using none *** Restarting nodes for database vdb *** Restarting host [10.1.1.11] with catalog [v_vdb_node0001_catalog] Issuing multi-node restart Starting nodes: v_vdb_node0001 (10.1.1.11) Starting Vertica on all nodes. Please wait, databases with a large catalog may take a while to initialize. Node Status: v_vdb_node0001: (DOWN) v_vdb_node0002: (UP) Node Status: v_vdb_node0001: (DOWN) v_vdb_node0002: (UP) Node Status: v_vdb_node0001: (DOWN) v_vdb_node0002: (UP) Node Status: v_vdb_node0001: (DOWN) v_vdb_node0002: (UP) Node Status: v_vdb_node0001: (RECOVERING) v_vdb_node0002: (UP) Node Status: v_vdb_node0001: (UP) v_vdb_node0002: (UP) Restart Nodes result: 1 <「Restart Nodes result: 1」が表示されることを確認します> |
エージェントの起動
rootユーザで以下のコマンドを実行します。起動したいノードで実行します。
【構文】
1 |
# systemctl start vertica_agent |
【実行例】
1 2 3 |
# systemctl start vertica_agent # <標準出力に何も表示されません> |
Management Consoleの起動
rootユーザで以下のコマンドを実行します。Management Consoleをインストールしているノードのみ、実行します。
Magement Console 8.0.1-4未満のバージョンでは、Management Consoleの起動時に注意点があります。
「LANG=ja_JP.UTF-8」の状態でManagement Consoleを起動すると、ブラウザ表示が行われない場合があります。
その場合は、後述の回避策を適用してください。
【構文】
1 |
# systemctl start vertica-consoled |
【実行例】
1 2 3 |
# systemctl start vertica-consoled # <標準出力に何も表示されません> |
【注意点】
Magement Console 8.0.1-4未満のバージョンで、Management Consoleの画面がブラウザ表示されない場合は、以下の回避策を実施してください。
■回避策1
Management Consoleを起動する前に、rootユーザの環境変数を設定する方法です。
1 2 |
# export LANG=en_US.UTF-8 # /etc/init.d/vertica-consoled start |
■回避策2
/opt/vconsole/bin/mctlファイルを編集します。
START_CMDが定義されている行にて、「-Duser.language=en」を「-jar $VCONSOLE_HOME/lib/webui.war」の前に追加します。
この設定実施後に、通常のコマンドで起動を行ってください。
[変更前]
1 |
START_CMD="$JAVA_HOME/bin/java $JVM_OPTS -Dvertica.home=$VERTICA_HOME -Dvconsole.home=$VCONSOLE_HOME -Djava.library.path=$VCONSOLE_HOME/lib -Dderby.system.home=$VCONSOLE_HOME/mcdb/derby -Xmx2048m -Xms1024m -XX:MaxPermSize=256m -jar $VCONSOLE_HOME/lib/webui.war" |
[変更後]
1 |
START_CMD="$JAVA_HOME/bin/java $JVM_OPTS -Dvertica.home=$VERTICA_HOME -Dvconsole.home=$VCONSOLE_HOME -Djava.library.path=$VCONSOLE_HOME/lib -Dderby.system.home=$VCONSOLE_HOME/mcdb/derby -Xmx2048m -Xms1024m -XX:MaxPermSize=256m -Duser.language=en -jar $VCONSOLE_HOME/lib/webui.war" |
ステータス確認方法
Verticaデータベースのステータス確認
dbadminユーザ(OS)で以下のコマンドを実行します。クラスタ内のいずれかのノードで実行します。
【構文】
1 |
$ admintools -t list_allnodes |
【起動時の実行例】
1 2 3 4 5 6 7 8 |
$ admintools -t list_allnodes Node | Host | State | Version | DB ----------------+-----------+-------+-----------------+----- v_vdb_node0001 | 10.1.1.11 | UP | vertica-9.2.1.0 | vdb v_vdb_node0002 | 10.1.1.12 | UP | vertica-9.2.1.0 | vdb v_vdb_node0003 | 10.1.1.13 | UP | vertica-9.2.1.0 | vdb <起動の指定をしたノードのStateがUPであることを確認します> |
【停止時の実行例】
1 2 3 4 5 6 7 8 |
$ admintools -t list_allnodes Node | Host | State | Version | DB ----------------+-----------+-------+-----------------+----- v_vdb_node0001 | 10.1.1.11 | DOWN | vertica-9.2.1.0 | vdb v_vdb_node0002 | 10.1.1.12 | UP | vertica-9.2.1.0 | vdb v_vdb_node0003 | 10.1.1.13 | UP | vertica-9.2.1.0 | vdb <停止の指定をしたノードのStateがDOWNであることを確認します> |
エージェントのステータス確認
rootユーザで以下のコマンドを実行します。ステータスを確認したいノードで実行します。
【構文】
1 |
# systemctl status vertica_agent |
【起動時の実行例】
1 2 3 4 5 6 7 |
# systemctl status vertica_agent ● vertica_agent.service - Vertica management agent Loaded: loaded (/etc/systemd/system/vertica_agent.service; enabled; vendor preset: disabled) Active: active (running) since 水 2019-05-29 14:49:05 JST; 7h ago <以降、省略> <「Active: active」が表示されることを確認します> |
【停止時の実行例】
1 2 3 4 5 6 7 |
# systemctl status vertica_agent ● vertica_agent.service - Vertica management agent Loaded: loaded (/etc/systemd/system/vertica_agent.service; enabled; vendor preset: disabled) Active: inactive (dead) since 水 2019-05-29 22:45:42 JST; 8min ago <以降、省略> <「Active: inactive」が表示されることを確認します> |
Management Consoleのステータス確認
rootユーザで以下のコマンドを実行します。Management Consoleをインストールしているノードのみ、実行します。
【構文】
1 |
# systemctl status vertica-consoled |
【起動時の実行例】
1 2 3 4 5 6 7 |
# systemctl status vertica-consoled ● vertica-consoled.service - LSB: Startup/shutdown script for the HP Vertica Management Console Loaded: loaded (/etc/rc.d/init.d/vertica-consoled; bad; vendor preset: disabled) Active: active (running) since 水 2019-05-29 23:10:09 JST; 2min 14s ago <以降、省略> <「Active: active」が表示されることを確認します> |
【停止時の実行例】
1 2 3 4 5 6 7 |
# systemctl status vertica-consoled ● vertica-consoled.service - LSB: Startup/shutdown script for the HP Vertica Management Console Loaded: loaded (/etc/rc.d/init.d/vertica-consoled; bad; vendor preset: disabled) Active: inactive (dead) since 水 2019-05-29 23:55:17 JST; 4s ago <以降、省略> <「Active: inactive」が表示されることを確認します> |