IRIS の開始に失敗し messages.log に ^STURECOV を使用して復旧するように記載されている場合の操作方法
これはInterSystems FAQ サイトの記事です。
IRIS の開始ができず、messages.log に以下のようなエラーが出力された場合の対処方法についてご説明します。
08/11-08:55:14:180 ( 2224) 1 errors during journal rollback,
see message.log file for details.
Startup aborted, entering single user mode. Enter IRIS with
c:\intersystems\IRIS\bin\iris -sc:\intersystems\IRIS\mgr -B
and D ^STURECOV for help recovering from the errors.
-----------------------------------------------------------------
このメッセージは、ジャーナルファイルの破損による IRIS 開始時のリカバリ処理がエラーになっていることを示しています。
IRIS を開始するためには、通常の開始処理を行わず (例:ジャーナルの適用を行わない) 開始するように ^STURECOV を使用して手順を変更します。
具体的な手順は以下の通りです。
1) IRIS のインストールディレクトリ以下 bin ディレクトリへ移動し、以下のコマンドを実行します。
> iris force IRIS
2) 一旦、通常起動処理 (STU) を行わないようにして IRIS を開始します。
2-1) Windows の場合は、タスクマネージャで、全 irisdb.exe がないのを確認後、通常起動処理(STU)を行わないようにして起動します。
> iris startnostu IRIS <---- IRIS=構成名 "nostuモード":あとで手動でSTUを行う。
※nostu ― スタートアップ・ルーチンを実行しません (^STU)。
> irisdb -s ..\mgr -B
2-2) Windows 以外の場合は、ps コマンドで irisdb が存在しないことを確認後、通常起動処理(STU)を行わない開始を指定します。
> iris start iris nostu
> iris session iris -B
以下、2-1) 2-2) 共通です。
上記実行で、プロンプトに %SYS> が表示されたらログイン成功です。
【注意】Windows で実行する場合「Use emergency login to login to the system」 のメッセージ、または
のメッセージが出力される場合は、コマンドプロンプトを起動しているユーザが管理者 (administrator または administrators グループ所属) であるか、ご確認ください。
また、Windows で UAC が有効になっている環境では、コマンドプロンプトを「管理者として実行」が必要になる場合もあります。
3) STURECOV ルーチンを実行してジャーナルリカバリ情報をリセットします(記入例は赤字部分をご参照ください)。
Do you want to continue ? No => yes <---- yes
Enter error type (? for list) [^] => JRN <---- JRN入力
Journal recovery options
...
8) Reset system so journal is not restored at startup
...
Enter choice (1-10) or [Q]uit/[H]elp? 8 <---- 8入力
Are you sure you want to do this? No => yes <---- yes
Journal recovery options
...
Enter choice (1-10) or [Q]uit/[H]elp? quit <---- quit
Exiting
%SYS>
5) Windowsでは、IRISのランチャーがグレーからカラーの表示に変更したら成功です。Windows以外のOSでは、 iris list の結果から status が running であれば成功です。
確認後、halt でターミナルを抜けます。
iris list の実行例は以下の通りです。
Configuration 'IRIS' (default)
directory: /usr/irissys
versionid: 2020.1.0.215.0
datadir: /usr/irissys
conf file: iris.cpf (SuperServer port = 51773, WebServer = 52773)
status: running, since Sat Apr 18 18:24:10 2020
state: ok
product: InterSystems IRISHealth
$
その後、IRIS を再起動し、再起動が成功したら、messages.log を確認してください。
最後の起動時にエラーが存在しなければ、復旧処理は完了です。
※復旧後は必ず整合性チェック (Do ^INTEGRIT または 管理ポータル > [システムオペレーション] > [データベース] > [整合性チェック]) を行うようにしてください。