概要
Microsoft SQL Server Express エディション (無償版)で,自動バックアップを行いたい
方法
方法1 VBSを使用する
下記のVBSファイルを作成し,タスクスケジューラで自動実行させる
Dim adoConnection Set adoConnection = CreateObject("ADODB.Connection") Call adoConnection.Open("Provider=SQLNCLI;Server=サーバー名\sqlexpress;Database=データベース名;Integrated Security=SSPI;DataTypeCompatibility=80;MARS Connection=True;") adoConnection.CommandTimeout=9000 Call adoConnection.Execute("BACKUP DATABASE [データベース名] TO DISK = N'C:\xxxx\保存先.bak' WITH NOFORMAT, INIT, NAME = N'完全 データベース バックアップ', SKIP, NOREWIND, NOUNLOAD, STATS = 10") Call adoConnection.Close Set adoConnection = nothing
ポイント
SQLServerへの接続部分には以下の書き方もあるので環境にあわせて調整する
例1
Call adoConnection.Open(“Provider=SQLOLEDB;Server=xxxxxxx\sqlexpress;DATABASE=xxxxxxx;User ID=xxxxx;Password=xxxxxxxxx;Network Library=dbmssocn”)
例2 Windows認証
Call adoConnection.Open(“Provider=SQLOLEDB;Server=xxxxxx\sqlexpress;DATABASE=xxxxx;Network Library=dbmssocn;Trusted_Connection=Yes”)
パラメータの詳細説明は: https://docs.microsoft.com/ja-jp/sql/t-sql/statements/backup-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15
方法2 sqlcmd を使用する方法
バックアップ用SQLテキストファイルを作成する
BACKUP DATABASE [master] TO DISK = N’バックアップの保存先フルパスファイル名.bak‘ WITH NOFORMAT, INIT, NAME = N’MASTER’, SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP DATABASE [データベース名] TO DISK = N’ バックアップの保存先フルパスファイル名2.bak‘ WITH NOFORMAT, INIT, NAME = N’データベース名‘, SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
上記のファイルを sqlcmd で実行するタスクをタスクスケジューラに登録する
sqlcmd -S localhost\sqlexpress -i 上記のフルパスファイル名.sql
上記の例は常にバックアップファイルを上書きします。
プロパティ
SQL Server Express Edition
コメント