messages.log に以下のようなエラーが出力され、IRISの起動に失敗する場合があります。
その際の復旧手順をご紹介します。
これは、ジャーナルファイルの破損によるIRIS起動時のリカバリ処理がエラーになっているということなので、通常起動を行わないで(例:ジャーナルの適用を行わない)、起動処理を行います。
【手順】
1. IRISのインストールディレクトリ以下 bin ディレクトリへ移動し、以下のコマンドを実行します。
> cd C:\intersystems\IRIS\bin <- \binへ移動
> iris force IRIS
2. 一旦、通常起動処理(STU)を行わないようにして起動します
タスクマネージャで、全 irisdb.exe がないのを確認後、通常起動処理(STU)を行わないようにして起動します。
> iris startnostu IRIS <---- IRIS=構成名 "nostuモード":あとで手動でSTUを行う。
※nostu ― スタートアップ・ルーチンを実行しません (^STU)。
> iris start IRIS -s..\mgr\iris.cpf /EmergencyId=xxx,zzz <---- 空白に注意
%SYS> というプロンプトになったらログイン成功です。
※「Use emergency login to login to the system」 のメッセージが出て、上記プロンプトにならない場合、コマンドプロンプトを起動しているユーザが管理者(administrator または administrators グループ所属)であることを確認してください。
※ Windowsの場合、UACが有効になっている環境では、コマンドプロンプトを「管理者として実行」が必要になる場合もあります。
3. STURECOV ルーチンを実行してジャーナルリカバリ情報をリセットします
4. STUルーチンを実行して通常の起動処理を行います
<-----
5. Windowsでは、IRISのランチャーがグレーからカラーの表示に変更したら成功です。
Windows以外のOSでは、 iris list の結果から status が running であれば成功です。
※halt か exit でターミナルを抜けます。
iris list の実行例は以下の通りです。
$ 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) を行うようにしてください。