SQLサーバーのバックアップ設定(※Exepressの場合)
※これは業者様向け情報です。
SQLServer Expressの場合、自動バックアップ機能がないので『バックアップ用SQL(.sql)とバッチファイル(.bat)を作る』か、『Windowsのタスクスケジューラ』を利用します。
c:\sara2019s\backupBat フォルダにありますので編集して下さい。
環境例:
・SQLサーバーのインスタンス:MYCOMPUTER¥EXP2017
・バックアップ先:Yドライブの¥沙羅バックアップ¥日本語フォルダ名は何かと問題が出ますので、D:\sara_backup\ のように半角文字名のフォルダを指定してください。
バックアップ用SQL(.sql)
、、、、っと思いましたが、これだとファイルが上書きされていくだけで、少々、心もとないので、日付時間でファイル名を作った方がいいかもです。
★ファイル名: D:\sara_backup\saraback.sql
1 2 3 4 5 6 7 8 9 10 11 |
--日付時刻を表す文字列を取得 DECLARE
@DAYSTR CHAR(12)
=
FORMAT(GETDATE(),'yyyyMMddHHmm') --バックアップ先フルパスを形成(D:\sara_backup\sarabackup_20201003.bak
のようになる) DECLARE
@BACKUP_FILE VARCHAR(50)
=
N'D:\sara_backup\sarabackup_'
+
@DAYSTR
+
'.bak' --バックアップ実行 BACKUP DATABASE
[sara2019]
TO DISK
=
@BACKUP_FILE WITH NOFORMAT,
NOINIT , NAME
=
N'完全 データベース バックアップ' ,
SKIP,
NOREWIND,
NOUNLOAD, STATS
=
10 |
バッチファイル(.bat)
★ファイル名: D:\sara_backup\saraback.bat
1 |
sqlcmd
-S
MYCOMPUTER\EXP2017
-U
sa
-P
saのパスワード
-i
D:\sara_backup\saraback.sql
>
D:\sara_backup\backup.log |
※いったん、Dドライブに生成するが、ついでの別のドライブにもコピーするとか???
※しかし、SQLコマンドでネットワークドライブなどに生成しようとすると、権限の問題でアクセスできないので、
「事前にSQL Server サービスの実行アカウント(SQL Server 構成マネージャからプロパティ→ログオンで変更できる)を
ネットワーク ドライブに対して書き込み権限があるアカウントに変更
→SQL Server サービスの再起動→もう一度ネットワークドライブへバックアップ、をやってみてできることを確認してください。
※SQLServer構成マネージャー:
SQL Server 2019 C:\Windows\SysWOW64\SQLServerManager15.msc
タスクスケジューラで利用する
[Windows]+[R]キーで[ファイル名を指定して実行]→「taskschd.msc」でタスクスケジューラを起動。(もしくは、「コントロールパネル」→[管理ツール]→[タスクスケジューラ])
基本タスクで作成したbatファイルを指定
沙羅を終了する時に自動バックアップした方がいいかもです。。。。
※組み込み検討いたします。