[SQLServer] Express Edition で自動バックアップ

SQL Server

概要

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

コメント

スポンサーリンク
タイトルとURLをコピーしました