※これは業者様向け情報です。
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ファイルを指定
沙羅を終了する時に自動バックアップした方がいいかもです。。。。
※組み込み検討いたします。