MySQL:MySQLのバックアップを実行するVBScript

MySQL:MySQLのバックアップを実行するVBScript

MySQLのバックアップは、GUI管理ツールである[MySQL Administrator]で設定できるが、VBScriptでMySQLのバックアップを実行するサンプルを覚書しておく。

スポンサーリンク

VBScriptを使ったMySQLのバックアップについて

「mysqldump」を使ったバックアップは、DOSのコマンドで実行できるため、バッチファイル(.bat)を作成すれば、わざわざVBScriptで書く必要はない。

今回はバックアップが実行された日付と時刻をバックアップのタイムスタンプとしてバックアップファイルに付加するためにVBScriptで作成した。

バックアップファイルにバックアップ日時を「yyyymmddhhmmss」という書式で付加する。

MySQLのバックアップVBScriptサンプルプログラム

以下サンプルプログラムと簡単な解説。 以下のサンプルプログラムは、VBScriptでDOSコマンドを実行するようになっている。

また、バックアップ対象のデータベース名が「test」、MySQLのログインユーザーが「root」、rootユーザーのパスワードが「password」のとした場合の例となっている。

作成されるバックアップファイルは、実行日時が「2009/01/15 10:09:43」だったとすると"testdb20090115100943_backup.sql"になる。

Set objShell = CreateObject("WScript.Shell")
strTimestamp = replace(cstr(now()),"/","")
strTimestamp = replace(strTimestamp," ","")
strTimestamp = replace(strTimestamp,":","")
objShell.Run "cmd /c C:¥Program Files¥MySQL¥MySQL Server 5.1¥bin¥mysqldump -u root -ppassword test>c:¥testdb" & strTimestamp & "_backup.sql",false

MySQLのbinフォルダにパスが通っている場合は、mysqldumpまでのフルパスは必要なく、「cmd /c mysqldump ~」でよい。

バックアップファイルに付加するタイムスタンプに時刻が必要なければ、replace関数を使用している3行部分を1行に変更すればよい。

Set objShell = CreateObject("WScript.Shell")
strTimestamp = replace(cstr(date()),"/","")
objShell.Run "cmd /c C:¥Program Files¥MySQL¥MySQL Server 5.1¥bin¥mysqldump -u root -ppassword test>c:¥testdb" & strTimestamp & "_backup.sql",false

日付についてはOSの言語環境によって日付関数の戻り値が異なる場合があるので動作を事前に確認すること。

このスクリプトをWindowsの「タスク」に登録すれば、毎日のバックアップを自動で行うことができる。

VBScriptでDOSコマンドを実行する方法については、以下の別の記事に書いてあるので参考にしてください。

VBScript:VBScriptでDOSのコマンドを実行するサンプルプログラム
VBAでDOSコマンドを実行する方法はだいぶ以前に書いたが、VBScriptで実行する方法は書き忘れていたようなので今更ながら覚書。 VBAでDOSコマンドを実行する方法と全くかわらないが、"VBScript"で検索すると引っかからないので...

コメント

タイトルとURLをコピーしました