先日Dominoのバックアップのテストをしていて、遭遇した事象と対応策です。
【前提知識】
Fastbackのインフォメーションセンターによると、Dominoを整合性を持ってバックアップするならOFFLINEの方法(=一旦遮断する)がいいよ、とあります。(こちら
)
FastbackはDomino用に①domino_preconpoint.cmd ②domino_presnapshot.cmdをご提供しています。
このスクリプトのサーバー名などのコンスタント数箇所を直すだけで
- Dominoの遮断
- ディスクの整合性ポイントの確立(数秒)
- Dominoの起動
- スナップショットの採取
の一連の処理を自動化できるようになっています。
【事象】
Dominoで多数のプロセスを動かしていると遮断に時間がかかります。
その場合、domino_preconpoint.cmdが失敗し、スナップショットが失敗しました。Dominoの再起動も行われませんでした。
【原因】
理由は遮断の状況チェックの時点でDominoのサービスが落ちきっていなかったためのようです。
ログに以下のように表示されていました。( STATE : 3 STOP_PENDING の箇所 )
実際はこの後に停止は正常に終わっているのですが、サンプル提供のdomino_preconpoint.cmdでは、
Dominoの起動や停止が正しく完了したことを確認し、駄目なら何度かリトライするようなロジックが入っていないようです。
2008/01/01 0:02:29.04 *** Running C:\Program Files\Tivoli\TSM\FastBack\client\Scripts\domino_preconpoint.cmd
2008/01/01 0:02:29.04 Script level 20080806
2008/01/01 0:02:29.04 del /F /Q /A:H "C:\Documents and Settings\All Users\Application Data\Tivoli\TSM\FastBack\DominoAgent\+stop.lck"
2008/01/01 0:02:29.04 *** Check if the Domino server is already shutdown.
2008/01/01 0:02:29.04 tasklist /FI "IMAGENAME eq nserver.exe" | findstr /i /r "nserver.exe"
2008/01/01 0:02:29.68 RC=0.
2008/01/01 0:02:29.68 Shutting down the Domino server...
2008/01/01 0:02:29.70 attrib +H "C:\Documents and Settings\All Users\Application Data\Tivoli\TSM\FastBack\DominoAgent\+stop.lck"
2008/01/01 0:02:29.71 SC stop "Lotus Domino Server (nDominodata)"
SERVICE_NAME: Lotus Domino Server (nDominodata)
TYPE : 110 WIN32_OWN_PROCESS (interactive)
STATE : 3 STOP_PENDING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x1
WAIT_HINT : 0x7530
2008/01/01 0:02:29.78 RC=0
2008/01/01 0:02:29.78 *** Verify if nserver is reported active...
【対応】
遮断タイミングによって起動が失敗しては困るので、起動や停止が完了したことを確認し、駄目なら何度かリトライするようなVBスクリプトを作ってみました。
参考になるスクリプトはないかネットを調べていたらpnpkさんのこちら
の記事が僕の求めるものに非常に近いので、これをベースに若干の変更を加えました。
当記事の添付(Attachments)タブからダウンロードいただけますのでat your own riksでご利用下さい。

なお、元となるスクリプトの再利用をご快諾いただけましたpnpkさんにはこの場を借りてお礼申し上げます。
 | ご注意
- Windowsのサービスを起動・停止するものですので、Dominoがサービスに登録されていない場合は利用できません。
- 5.5.2ベースの①domino_preconpoint.cmd ②domino_presnapshot.cmdから当スクリプトを起動するようにしています。
domino_preconpoint.cmd/domino_presnapshot.cmd内のDominoサービス名などの環境固有部分は書き換えてください。
- ServiceControl.vbsはデフォルトでは3秒毎に20回リトライします。必要ならご要件にあわせて変更してください。
- 当スクリプトは個人的に作成したサンプルです。簡単なテストは行いましたが、ご自身の責任においてのご利用をお願いします。
|