- 締切済み
ARCServeマシン起動しない翌日のジョブ実行
ARCServe スケジュールされたバックアップ日付にマシンを起動しなかった翌日の動作について質問です。 ARCServe WindowsBackup V16.5 をサーバにて運用しています。 ARCServe で、「メディアをセットしている場合はバックアップ実行後シャットダウン、 セットしていない場合はバックアップをしないでシャットダウン」 を実現するため、 以下のスケジュールを組んでいます。 ----------------------------------- ■月曜日~日曜日 ・フルバックアップ ---グローバルオプション--- ■メディア ・上書き ・タイムアウト 1分 ■実行前/後コマンド ・実行前:Oracleバックアップ&Oracle停止バッチ ・実行後:shutdown.exe -s ■実行時間 ・毎日夜11時 (実行時間前にメディアをセットする) ----------------------------------- 上記設定で、予定していた動作は実施できています。 しかし、サーバを起動しなかった日(例えば日曜日等)があった場合、 翌日のサーバ起動時にジョブを実行しようとし メディアをセットしていない → バックアップジョブをキャンセル → サーバシャットダウン となってしまいます。 1.ジョブ実行またはジョブキャンセルされずにバックアップ予定の日付を過ぎた場合、次回起動時に実行『しない』設定にはできますか? (実行前、後コマンドおよびジョブをスルーしてほしい) 2.グローバルではなくローカルオプションに変更することで実現できる場合、実行後コマンドにシャットダウンコマンドを指定した場合、バックアップジョブは正常に終了しますか? 質問は上記2点になります。 テストできる環境であれば、すぐ確認できたのですが、現在サーバが稼働中でテストは不可能です。 素人のような質問で大変申し訳ありませんが、ご教授お願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
>そこで思いついたのですが、シャットダウンを実行後コマンドではなくタスクスケジューラで実行することで回避できないでしょうか。 >1.「十分な余力時間を設けた後シャットダウン」をタスクにスケジュール。 >2.アークサーブ上ではオラクルバックアップバッチをローカルオプションの実行前コマンドに設定。 アークサーブもおそらく、自前の機能ではなく、タスクスケジューラを利用していると思いますよ。 別タスクにしても、結局、ブート時に未実行のジョブ(シャットダウンのみでも)があるということは変わりませんから、ブート即シャットダウンという事態は避けられないでしょう。 バッチファイルでのジョブの削除と登録は”AT”コマンドでできます。 コマンド・プロンプトでATと打てば、登録されているジョブのリストが表示されます。 それでアークサーブが登録しているコマンドもわかるでしょう。 コマンドがわかれば、ジョブを再登録するバッチファイルも容易に作成できるでしょう。 ”AT”コマンドはサーバでなくても、ワークステーションでも実行できますから、ジョブの削除、登録のテストは可能ですよ。
おそらく、できないでしょう。 >■実行時間 >・毎日夜11時 というのは、われわれは「11時になったら」(つまり Time = "23:00")と考えますが、コンピュータの中ではこれは困難です。 つまり、11時ちょうどに時刻チェックができるとは限らないので、Time = "23:00:00.00"という判断基準を設定すると、外れる可能性がある。 だから、Time > "23:00" のような、ある時刻を過ぎたら、という判断をするしかありません。 また、人間は"23:00"といわれると、暗黙のうちに”現在”からみた直近の23:00を想定しますが、コンピュータが持っているのはそういう相対的な時刻ではなく、絶対的な時刻です。 ですから、キューに登録されたジョブは「”○○○○年○○月○○日○○時○○分”を過ぎたら実行する」という形になっていると思われます。 そうすると、未実行のジョブが残ったままブートされると、当然にその条件を満たしてしまい、ブート後にすぐに実行されることになります。 回避するとしたら、バッチファイルでシャットダウン時にすべてのジョブを削除してしまう。ブート時にジョブを登録しなおす。 そうすれば、ブート時を基準にしてジョブが設定されるのではないでしょうか。
お礼
>ohbacomeonさん >ですから、キューに登録されたジョブは「”○○○○年○○月○○日○○時○○分”を過ぎたら実行する」という形 >になっていると思われます。 回答ありがとうございます。 とても納得できました。上記の形式でしたら、確かにアークサーブ上では不可能ですね。 そこで思いついたのですが、シャットダウンを実行後コマンドではなくタスクスケジューラで実行することで回避できないでしょうか。 1.「十分な余力時間を設けた後シャットダウン」をタスクにスケジュール。 2.アークサーブ上ではオラクルバックアップバッチをローカルオプションの実行前コマンドに設定。 上記2点で対応できないでしょうか。
補足
>ohbacomeonさん お礼のコメントでohbacomeonさんの提示していただいた回避策を無視する形になってしまいました。 大変申し訳ございません。 >回避するとしたら、バッチファイルでシャットダウン時にすべてのジョブを削除してしまう。ブート時にジョブを登録しなおす。 上記回避策につきましても、検討させていただきます。 ありがとうございます。