スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

データベースバックアップを曜日によって切り替えるVBScript

データベースのバックアップを曜日毎に切り替える


SQL Server Express Edition などの無償版のデータベースを利用している場合など、
データベースのバックアップを自動化するのにVBScriptを利用することが多いのですが、
できれば曜日毎にバックアップを切り分けて、1週間分を取り置きしておきたいことがあります。
VBScriptとBATファイルを利用することで、曜日毎にバックアップを行うことができるので、
ここにご紹介いたします。

手順


まずは、以下のような1行だけのVBScriptを用意します。
WScript.Quit(WeekDay(Date))
ファイル名はbackupweek.vbs としてください。

これは、Date関数で取得される現在の日付を、
WeekDay関数で1(日曜日)~7(土曜日)の整数値に変換し、
それを戻り値として終了するだけのスクリプトです。
バッチ・ファイルの中からこれを実行すれば、
結果(曜日)をERRORLEVELとして取得することができます。


次に曜日毎のsqlファイルを用意してください。
BACKUP DATABASE RCS TO DISK='絶対パス\backup_sun.bak' WITH INIT
これをbackup_sun.sqlとして保存します。

BACKUP DATABASE RCS TO DISK='絶対パス\backup_mon.bak' WITH INIT
これをbackup_mon.sqlとして保存します。

BACKUP DATABASE RCS TO DISK='絶対パス\backup_tue.bak' WITH INIT
これをbackup_tue.sqlとして保存します。

BACKUP DATABASE RCS TO DISK='絶対パス\backup_wed.bak' WITH INIT
これをbackup_wed.sqlとして保存します。

BACKUP DATABASE RCS TO DISK='絶対パス\backup_thu.bak' WITH INIT
これをbackup_thu.sqlとして保存します。

BACKUP DATABASE RCS TO DISK='絶対パス\backup_fri.bak' WITH INIT
これをbackup_fri.sqlとして保存します。

BACKUP DATABASE RCS TO DISK='絶対パス\backup_sat.bak' WITH INIT
これをbackup_sat.sqlとして保存します。



次に以下のようなBATファイルを作成してください。

@echo off

rem
rem SQL Server データベースバックアップ処理
rem

rem このバッチが存在するフォルダをカレントに
pushd %0\..
cls

set WEEK=""
cscript /b backupweek.vbs
if %errorlevel%==7 set WEEK=backup_sat.sql
if %errorlevel%==6 set WEEK=backup_fri.sql
if %errorlevel%==5 set WEEK=backup_thu.sql
if %errorlevel%==4 set WEEK=backup_wed.sql
if %errorlevel%==3 set WEEK=backup_tue.sql
if %errorlevel%==2 set WEEK=backup_mon.sql
if %errorlevel%==1 set WEEK=backup_sun.sql

rem sqlcmdでバックアップ用のsqlを実行します。
sqlcmd -S[インスタンス名] -U[ユーザー名] -P[パスワード] -i絶対パス\%WEEK% > backup.log

exit


これをbackup.batとして保存します。

後は、このbackup.bat をタスクスケジューラーにて起動するように設定すれば完了です。


まとめ



今回は、曜日毎に切り替えるようにしましたが、日付によって切り替える場合には、
WScript.Quit(Day(Date))とすれば、ERRORLEVELに今日の日付(1~31までの整数値)が入ります。
ほかにもMonthやTimeなどを利用することで、月、時刻で切り替えることも可能です。


ちなみに、sqlcmdで > backup.log と指定していますが、
これは実行結果をファイルに残す為のものです。

実行結果は以下のような内容となります。

データベース '○○○○' の 4008 ページ、ファイル 1 のファイル '○○○○' を処理しました。
データベース '○○○○' の 2 ページ、ファイル 1 のファイル '○○○○_log' を処理しました。
BACKUP DATABASE により 4010 ページが 1.636 秒間で正常に処理されました (19.146 MB/秒)。


バックアップの自動化は、WSHや市販ツールなどでもできますが、
できるだけ簡単に、安価に済ませたい場合などに
BATファイルとVBS、SQLファイルを組み合わせて行うのは有効だと思います。

ランキングに参加しています。
クリックのご協力をお願い致します。
いつもありがとうございます。
にほんブログ村 IT技術ブログへ
にほんブログ村



スポンサーサイト
スポンサードリンク
最新記事
カテゴリ
カレンダー
06 | 2014/07 | 08
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
最新トラックバック
ブロとも申請フォーム

この人とブロともになる

月別アーカイブ
激安特価情報
Amazonタイムセール
楽天市場タイムセール
Yahoo出店記念セール
NTT-X Store 激安特価!
激安家電のGENO PLUS
コストコ・イケアの通販
つけたまま眠れるファンデ
家電品を安値で買うならこちら!
ケーズデンキ
ベルメゾンアウトレット
激安ブランドコスメ 週末セール
モバコレ SALE
au Brand Garden
アウトレットモール BRANDELI
ブックオフオンラインのオトナ買い
ビッグカメラ◆週末特別セール
ソフマップ 中古・アウトレット
【宿代全額ポイントバック】夏休み早期予約キャンペーン
ネットプライス 送料294円
イオンモールオンライン
EDIONネットショップ
最新コメント
天気予報

-天気予報コム- -FC2-
カウンター
検索フォーム
リンクに表示されるテキスト
ランキング参加中
クリックしていただけると、 こまつもとは大変嬉しいです。



人気ブログランキングへ

ランキングに参加しています。 クリックのご協力をお願い致します。 いつもありがとうございます。 にほんブログ村 通販ブログへ
ブログランキング・にほんブログ村へ
にほんブログ村 IT技術ブログ ソフトウェアへ
にほんブログ村 ゲームブログへ
にほんブログ村 IT技術ブログへ



人気ブログをblogramで分析

趣味・個人

ランキング

リンクリックブログランキング

私を登録 by BlogPeople



RSSリンクの表示
リンク
QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。