ボス級社内SEのお役立ち技術情報

社内SEのシステム開発について。メインプログラム言語C#

【SQL SERVER2016 Exress】タスクスケジューラを使用してバックアップ自動保存する方法

f:id:HLSE:20190503110345p:plain

SQL SERVER2016 Exressでは、

メンテナンスプランによる自動バックアップ機能がありません。

それもでやはりバックアップは自動的に取得しておきたいでしょう。

 

Windowsのタスクスケジューラを使用して定期自動バックアップの方法を紹介したいと思います。

 

確認環境

OS:Windows10 64bit
DB:Sql Server2016
Microsoft SQL Server Management Studio :14.0

 

確認環境

①以下2つのファイルをメモ帳に貼り付け、Dドライブに保存する

注意1 Fドライブが他で使用されている場合は他のドライブにして下さい

注意2  拡張子に注意。メモ帳で保存すると拡張子がtxtになりがちです

 

【ファイル名】SqlServerBackUp.sql

【内容】SQLServerをバックアップするためのSQLファイル

BACKUP DATABASE [データベース名]

TO DISK = N'D:\backup.bak'

WITH FORMAT,

NAME = N'データベースバックアップ名',

STATS = 10

 

 

【ファイル名】SQLServerBackUp.bat

【内容】SqlServerBackUp.sqlを実行するバッチファイル

赤文字は任意で変更下さい。

 

REM バックアップをNRドライブに保存する
set yyyy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
set time2=%time: =0%
set hh=%time2:~0,2%
set mn=%time2:~3,2%
set ss=%time2:~6,2%
set executeDateTime=%yyyy%-%mm%-%dd%-%hh%-%mn%-%ss%
echo %executeDateTime% >> backup.log


set backuppath=F:\
set filename=DB_%executeDateTime%.bak
set lotateLogPath=D:\

REM バックアップ先ネットワークドライブの設定
net use /delete F:
net use f: \\IPアドレス\aaa$ パスワード /user:ユーザ名

REM SQLServerのバックアップコマンド実行
sqlcmd -S localhost -U ユーザ名 -P パスワード -i SqlServerBackUp.sql >> backup.log
move backup.bak %backuppath%%filename%

REM ローテーション
cd /d %backuppath%

REM 7日以上前のファイル削除
forfiles /d -7 /c "cmd /c del @file >> %lotateLogPath%logrotate_log.txt

REM Fドライブ削除
net use /y /delete F:

 

【バックアップコマンドオプション詳細】

・NAME = N'データベースバックアップ名'

 バックアップ名。バックアップファイル名ではない

 バックアップファイル確認コマンド実行時にわかる

・STATS = 10

 バックアップ状況の表示。10%ずつ表示する

 

・FORMAT

 複数世代管理ではなく、常に最新のものが1つだけ

・NOFORMAT

 複数世代管理

 ※ 同じ意味合いのオプションとしてINIT(NOINIT)がある。

 

SQLServer のバックアップは、1バックアップファイルに複数バックアップを入れることが可能です。INIT(NOINIT)とFORMATは同時に指定はできないです。

③タスクスケジューラを起動する

(Windowsキー + Eキーを押して、「taskschd.msc」を入力してENTERキーを押す)

f:id:HLSE:20190806212710j:plain

 

④「基本タスクの作成」をクリックする

f:id:HLSE:20190806212724j:plain

 

⑤タスク名を入力する

f:id:HLSE:20190806213537j:plain

 

⑥バックアップ頻度を設定する

f:id:HLSE:20190806213642j:plain

 

⑦実行日時と実行間隔を設定する

f:id:HLSE:20190806213722j:plain

 

 ⑧「プログラムの開始」を選択する

f:id:HLSE:20190806213959j:plain

 

⑨作成したBatファイルを指定する

f:id:HLSE:20190806214129j:plain

 

⑩タスク内容を確認して完了を押す

f:id:HLSE:20190806214233j:plain

 

⑪タスクが作成されているのを確認する

f:id:HLSE:20190806214646j:plain

 

タスクの確認

指定時間を待ってもいいですが、テストのためにすぐに実行も可能です。

作成したタスクの上で右クリックする

f:id:HLSE:20190806215040j:plain

 

 これでバックアップができているのではないでしょうか。