※このページは業者様向け情報です。
ファイル構成
ローカルサーバー(localhost)
sqlコマンドのファイル + バッチファイル + vbsのスクリプト でvbs をタスクスケジューラーに登録します。
例:sarabak.sql
E:\Sarabackup\フォルダにバックアップを作成する場合のサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /* データベース名 */ DECLARE @DATABASE_NAME VARCHAR(MAX) = 'sara2019'; /* 拡張子 */ DECLARE @EXTENSION_NAME VARCHAR(MAX) = '.bak'; /* ディレクトリ名 */ DECLARE @DIRECTRY_PATH VARCHAR(MAX) = 'E:\SaraBackup\'; /* ファイル名 */ DECLARE @FILE_NAME VARCHAR(MAX) = ''; /* ファイルフルパス作成 */ SET @FILE_NAME = @DIRECTRY_PATH + FORMAT(CURRENT_TIMESTAMP,'yyyyMMddHHmmss') + '_' + @DATABASE_NAME + @EXTENSION_NAME; /* バックアップ実行 */ BACKUP DATABASE @DATABASE_NAME TO DISK=@FILE_NAME WITH INIT GO |
例:sarabak.bat
※最新10個を残す設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | echo off setlocal REM === ログの保存先 === set LOGDIR=C:\SARA2019S\BackupBat REM === SQLServer バックアップ === sqlcmd -d sara2019 -E -S localhost -i %LOGDIR%\sarabak.sql > %LOGDIR%\Backup.log 2>&1 REM === 実行結果チェック === if %errorlevel% neq 0 ( echo %date% %time% : バックアップ失敗 >> %LOGDIR%\BackupError.log ) else ( echo %date% %time% : バックアップ成功 >> %LOGDIR%\BackupSuccess.log ) REM === 古いバックアップ削除(最新10個を残す) === for /f "skip=10 delims=" %%i in ('dir /b /a:-d /o-d "E:\SaraBackup\*.bak"') do del "E:\SaraBackup\%%i" endlocal |
例:sarabak.vbs
※単に黒いcmd画面を表示しないだけの理由です。
1 2 3 | Set WshShell = CreateObject("WScript.Shell") ' バッチを非表示で実行 WshShell.Run """C:\SARA2019S\BackupBat\sarabak.bat""", 0, True |












