sql server のバックアップファイルをリモートサーバに作成するスクリプト

(mssql_backup_full.bat)  フルバックアップ

echo %date% %time%

set workdir=%1
set dbname=%2
set filename=%dbname%_full.bak

sqlcmd -S localhost\sqlexpress -U <ユーザ名> -P <パスワード> -Q "backup database %dbname% to disk='%workdir%\%filename%' %3 %4"
net use Y: \\<リモートサーバのIPアドレス>\<ディレクトリ> /user:<ユーザ名> <パスワード>
copy /y %workdir%\%filename% Y:
net use Y: /delete

使い方

 > mssql_backup_full.bat <workdir> <dbname> [with init]

 workdir・・・直接リモートサーバにバックアップを作成する方法がわからないので、一旦ここで指定したディレクトリ(絶対パス指定)にファイルを作成し、これをリモートサーバにコピーする。
 dbname・・・バックアップするデータベースの名前を指定する。
 with init・・・これを指定するとファイルを上書きする。なければ追記する。



(mssql_backup_log.bat)  ログバックアップ

echo %date% %time%

set workdir=%1
set dbname=%2
set filename=%dbname%_log.bak

sqlcmd -S localhost\sqlexpress -U <ユーザ名> -P <パスワード> -Q "backup log %dbname% to disk='%workdir%\%filename%' %3 %4"
net use Y: \\<リモートサーバのIPアドレス>\<ディレクトリ> /user:<ユーザ名> <パスワード>
copy /y %workdir%\%filename% Y:
net use Y: /delete

使い方

 > mssql_backup_log.bat <workdir> <dbname> [with init]

 workdir・・・直接リモートサーバにバックアップを作成する方法がわからないので、一旦ここで指定したディレクトリ(絶対パス指定)にファイルを作成し、これをリモートサーバにコピーする。
 dbname・・・バックアップするデータベースの名前を指定する。
 with init・・・これを指定するとファイルを上書きする。なければ追記する。