cconsole.log に以下のようなエラーが出力され、Cachéの起動に失敗する場合があります。
その際の復旧手順をご紹介します。
これは、ジャーナルファイルの破損によるCache起動時のリカバリ処理がエラーになっているということなので、通常起動を行わないで(例:ジャーナルの適用を行わない)、起動処理を行います。
【手順】
1. コマンドンプロンプトより、以下を実行します。
> cd C:\intersystems\cache\bin <- \binへ移動
> css force cache
2. 一旦、通常起動処理(STU)を行わないようにして起動します
2-1) Windowsの場合は、タスクマネージャで、全 cache.exe がないのを確認後、通常起動処理(STU)を行わないようにして起動します。
> ccontrol startnostu cache <---- cache=構成名 "nostuモード":あとで手動でSTUを行う。
※nostu ― スタートアップ・ルーチンを実行しません (^STU)。
> cache -s..\mgr -B <---- 空白に注意
2-2) Windows 以外の場合は、ps コマンドで cache プロセスが存在しないことを確認後、通常起動処理(STU)を行わない開始を指定します。
以下、2-1) 2-2) 共通です。
%SYS> というプロンプトになったらログイン成功です。
※古いバージョンは、...\intersystems\cache\mgr\> のようなプロンプトです。
※「Use emergency login to login to the system」 のメッセージが出て、上記プロンプトにならない場合、コマンドプロンプトを起動しているユーザが管理者(administrator または administrators グループ所属)であることを確認してください。
また、UACが有効になっている環境では、コマンドプロンプトを「管理者として実行」が必要になる場合もあります。
3. STURECOV ルーチンを実行してジャーナルリカバリ情報をリセットします
%SYS> do ^STURECOV
4. STUルーチンを実行して通常の起動処理を行います
%SYS>d ^STU <-----
5. キューブが青色に変更したら成功です。
※halt か exit でターミナルを抜ける
その後、念のためキューブからCachéを再起動し、再起動が成功したら、cconsole.log を確認してください。
最後の起動時にエラーが存在しなければ、復旧処理は完了です。
※復旧後は必ず整合性チェック (Do ^INTEGRIT または 管理ポータル > [システムオペレーション] > [データベース] > [整合性チェック]) を行うようにしてください。