Microsoft SQL 2008 ExpressEditionから選択したデータベースをバックアップするためのバッチスクリプトが必要です。残念ながら、MS SQL Server 2008 Expressエディションには、MS SQL 2008 StandardのMaintenanceと呼ばれるビジュアルデータベースバックアップツールがないため、データベースをバックアップするためのバッチスクリプトが必要です。
MS Sql ServerExpressから選択したデータベースをバックアップするためのユニバーサルスクリプトを作成しました。スクリプトはデータベースの配列をループし、データベースごとに個別の.bakを生成します。バックアップファイル名はデータベース名で始まり、時刻と日付で終わります。イベントは、データベースバックアップタスクの詳細を含むlog.logファイルに記録されるため、既存のバックアップは上書きされません。また、バックアップの開始時間など、いくつかの小さな詳細。
このスクリプトでは、バックアップするデータベースアレイ、ユーザー/パスワード、SQLServerとインスタンスを定義する必要があります。これらの変更をすべて行う必要がある後は、タスクスケジューラからバッチファイルを呼び出します。
スクリプトコード:
@echo off
::databases array
set baza[0]=DATABSE_1
set baza[1]=DATABSE_2
::some of variables
set var=%usersa%
set var=%passsa%
set var=%instance%
set "x=0"
set hr=%TIME: =0%
set hr=%hr:~0,2%
set min=%TIME:~3,2%
set sec=%TIME:~6,2%
set czas=%hr%%min%%sec%
::database access data and instance
set usersa=sa
set passsa=sa
set instance=HOSTSERVER\SqlServerName
set backupath=E:\SQL_BACKUP\
echo Backup Start %date%_%czas%>>log.log
echo.>>log.log%%echo.>>log.log%%echo.>>log.log
:loop
if defined baza[%x%] (
call osql -S %instance% -U %usersa% -P %passsa% -d %%baza[%x%]%% -Q "BACKUP DATABASE %%baza[%x%]%% TO DISK = '%backupath%%%baza[%x%]%%_%date%_%czas%.bak'" >>log.log
set /a "x+=1"
GOTO :loop
)
echo.>>log.log%%echo.>>log.log%%echo.>>log.log