
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コマンドを実行する方法については、以下の別の記事に書いてあるので参考にしてください。


コメント