最近SQL Serverのバックアップ・復元周りを勉強しているのですが、その中で論理バックアップデバイスなるものを知りましたので、備忘としてここに残したいと思います。
論理バックアップデバイスとは?
簡単に説明すると、バックアップファイルへのエイリアスというイメージで良さそうです。
通常であれば、たとえば完全バックアップを行う場合のクエリは以下のようなものになると思います。バックアップ先のファイル名を物理パスとして記載しています。
BACKUP DATABASE [testdb] TO DISK = N'c:\tmp\testdb.bak';
論理バックアップデバイスを作成することで、以下のようにスマートにクエリを書くことができます。つまり、ここでは論理バックアップデバイスとしてtestdbBackupsを指定することで、たとえば「c:\tmp\testdb.bak」にバックアップすることができます。
BACKUP DATABASE [testdb]
TO [testdbBackups];
長くて間違えやすい物理パス名の代わりに、論理バックアップデバイスを使うことでクエリも非常に簡潔で見やすくなると思います。
論理バックアップデバイスの作り方
それでは、論理バックアップデバイスの作り方をSSMSで簡単に説明します。
以下のキャプチャのとおり、SSMSのオブジェクトエクスプローラーの「サーバーオブジェクト」-「バックアップデバイス」を選択して右クリックし、「新しいバックアップデバイス」を選択します。
以下のようなダイアログが開くので、「デバイス名」とバックアップ先の「ファイル」を指定します。
ここでは、「デバイス名」にtestdbBackups、「ファイル」にC:\tmp\testdb.bakを指定しました。
上記2項目を指定して、「OK」ボタン押下で論理バックアップデバイスの完成です。以下のように表示されていたら問題なく作成されています。これで記事冒頭で紹介したように論理バックアップデバイスを指定して、バックアップをすることができます。
他にも
因みに既存の論理バックアップデバイスは、sys.backup_devicesビューを参照することで確認することができます。以下のような結果が表示されます。各カラムの意味は本記事下部の公式サイトリンクからご確認ください。
あと、論理バックアップデバイスですがSSMSだけではなくてTransact-SQLでも、もちろん作成できます。以下のようなクエリになります。こちらも詳細は、本記事下部の公式サイトリンクからご確認ください。
USE AdventureWorks2016 ; GO EXEC sp_addumpdevice 'disk', 'mydiskdump', 'c:\dump\dump1.bak' ; GO
おわりに
いかがでしたでしょうか。あまり知っていてもいなくても正直変わらなさそうですが、バックアップクエリをシンプルに出来たりするので使ってみるのも良さそうですね。
今回は簡単ですがここまで。最後までお読みいただきありがとうございました。