OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

Vertica起動が”Startup Failed, ASR Required”で失敗した場合の対処方法

公開日:
更新日:
アーキテクチャ
#トラブルシューティング

はじめに

Verticaの起動時に、”Startup Failed, ASR Required”が発生し起動に失敗する場合があります。本記事では、同エラーが発生した場合のトラブルシューティングをご紹介します。

”Startup Failed, ASR Required”エラーの発生例

$ admintools -t start_db -d test -p test
Starting nodes:
    v_test_node0001 (XXX.XXX.XX.XX)
    v_test_node0002 (XXX.XXX.XX.XX)
    v_test_node0003 (XXX.XXX.XX.XX)
Starting Vertica on all nodes. Please wait, databases with a large catalog may take a while to initialize.
Node Status: v_test_node0001: (DOWN) v_test_node0002: (DOWN) v_test_node0003: (DOWN)

Node Status: v_test_node0001: (DOWN) v_test_node0002: (DOWN) v_test_node0003: (DOWN)
Found these errors in startup.logs on hosts:
hosts [‘XXX.XXX.XX.XX’, ‘XXX.XXX.XX.XX’, ‘XXX.XXX.XX.XX’] report: Startup Failed, ASR Required
Do you want to continue waiting? (yes/no) [yes] yes
Node Status: v_test_node0001: (DOWN) v_test_node0002: (DOWN) v_test_node0003: (DOWN)

Node Status: v_test_node0001: (DOWN) v_test_node0002: (DOWN) v_test_node0003: (DOWN)
Found these errors in startup.logs on hosts:
hosts [‘XXX.XXX.XX.XX’, ‘XXX.XXX.XX.XX’, ‘XXX.XXX.XX.XX’] report: Startup Failed, ASR Required
Do you want to continue waiting? (yes/no) [yes] yes

原因

本事象は、Verticaが不正に停止されたことよって、データが不完全な状態になった場合に発生します。お客様からは、Verticaを停止しない状態でOSを停止した場合に、本事象のお問い合わせをいただくことがあります。OSを停止する場合は、事前に「admintools」や「Management Console」を使用して、正しい手順でVerticaを停止してください。

対処方法

restart_dbコマンドに”-e last”オプションを付与して実行し、DBを再起動します。”-e last”オプションを使用するとリカバリが可能な最も直近のポイント(LGE:Last Good Epoch)の情報を使用しVerticaを起動します。

手順概要

Step1:ステータスがDOWNであることを確認
Step2:プロセスが残存していないことを確認
Step3:復旧可能時間を確認
Step4:”-e last”を指定して起動
Step5:ステータスがUPであることを確認

Step1:ステータスがDOWNであることを確認

以下のコマンドで、Verticaの全ノードが停止していることを確認します。

$ admintools -t list_allnodes
Node        | Host      | State | Version      | DB
-----------------+---------------+-------+------------------+-------
v_test_node0001  | xxx.xxx.xx.xx | DOWN | vertica-24.2.0.1 | test
v_test_node0002  | xxx.xxx.xx.xx | DOWN | vertica-24.2.0.1 | test
v_test_node0003  | xxx.xxx.xx.xx | DOWN | vertica-24.2.0.1 | test

Step2:プロセスが残存していないことを確認

以下のコマンドを実行し、Verticaのプロセスが残存していないことを確認します。
※残存している場合は、Verticaのプロセスをkillしてください。

# ps -ef | grep -i "vertica -D" | grep -v grep | grep -v java

Step3:復旧可能時間を確認

epoch.logのLast good epochより最後にepochが書き込まれた時刻(復旧可能時刻)を確認します。
※epoch.logはVertica停止時に作成され、Vertica起動時に自動削除されます。

## epoch.log の出力先 ##
/"カタログディレクトリ"/"DB名"/"ノード名"_catalog/epoch.log
## epoch.log の確認結果 ##
$ cat /home/dbadmin/test/v_test_node0001_catalog/Epoch.log
Last good epoch: 0x13 ended at ★'2024-07-02 17:58:51.007828+09'
Last good catalog version: 0x2dc
K-safety: 1
AHM: 0x13 ended at '2024-07-02 17:58:51.007828+09'

上記は、2024-07-02 17:58:51.007828+09時点まで復旧が可能です。「2024-07-02 17:58:51.007828+09」以降にデータの追加/更新をおこなっている場合は、DB復旧後、処理を再実行してください。

Step4:”-e last”を指定して起動

restart_dbコマンドに”-e last”オプションを付与してVerticaを起動します。

$ admintools -t restart_db -d "DB名" -p "パスワード" -e last
*** Restarting database test at '2024-07-02 17:58:51.007828+09' epoch 19 ***
Starting nodes:
v_test_node0001 (xxx.xxx.xx.xx)
v_test_node0002 (xxx.xxx.xx.xx)
v_test_node0003 (xxx.xxx.xx.xx)
Starting Vertica on all nodes. Please wait, databases with a large catalog may take a while 
to initialize.
Node Status: v_test_node0001: (DOWN) v_test_node0002: (DOWN) v_test_node0003: (DOWN)
Node Status: v_test_node0001: (DOWN) v_test_node0002: (DOWN) v_test_node0003: (DOWN)
Node Status: v_test_node0001: (DOWN) v_test_node0002: (DOWN) v_test_node0003: (DOWN)
Node Status: v_test_node0001: (DOWN) v_test_node0002: (DOWN) v_test_node0003: (DOWN)
Node Status: v_test_node0001: (RECOVERING) v_test_node0002: (RECOVERING) 
v_test_node0003: (RECOVERING)
Node Status: v_test_node0001: (UP) v_test_node0002: (UP) v_test_node0003: (UP)
Database startup successful

Step5:ステータスがUPであることを確認

以下のコマンドで、Verticaの全ノードが起動していることを確認します。

$ admintools -t list_allnodes 

Node        | Host      | State | Version      | DB 
-----------------+---------------+-------+------------------+------- 
v_test_node0001  | xxx.xxx.xx.xx |  UP  | vertica-24.2.0.1 | test 
v_test_node0002  | xxx.xxx.xx.xx |  UP  | vertica-24.2.0.1 | test 
v_test_node0003  | xxx.xxx.xx.xx |  UP  | vertica-24.2.0.1 | test

検証バージョンについて

この記事の内容はVertica 24.3で確認しています。

更新履歴

2024/08/22 本記事を公開