NOBTAの気ままにITブログ

Azure全般 / SQL Serverに関する情報を発信していきます。

SQL Server バックアップを直接 Azure Blob Storage へ作成する方法について [Azure/SQL Server]


スポンサーリンク

Azure 仮想マシンに SQL Server をインストールした場合など、データベースのバックアップファイルを一元的に管理するために、SQL Server データベースのバックアップを直接 Azure Blob Storage へ作成し、何か問題が発生した際に直接 Azure Blob Storage に作成されたバックアップからリストアする方式を選択することがあるかと思います。

今回は、Azure 仮想マシンにインストールされた SQL Serverのデータベース バックアップ ファイルを直接 Azure Blob Storage へ作成する方法についてまとめてみようと思います。

本ブログ内容は、SQL Server 2019 をベースにしていますが、SQL Server 2014 以降のバージョンでも同様の方法で設定が可能です。

 

 [前提条件]

  • Azure 仮想マシン上に SQL Server が既にインストールされていること。
  • バックアップ先に指定する Azure Blob Storage が既にデプロイされていること。 

 

Shard Access Signature (SAS) の作成

1) Azure ポータルに接続し、「ストレージアカウント」を選択します。

2) SQL Server データベースのバックアップの作成先の「ストレージ アカウント」を選択後、「Shared Access Signature」を選択します。   

f:id:nobtak:20200615015427p:plain

 

3) 以下のように選択後、「SAS と接続文字列を生成する」を選択します。   

※ 開始日時と有効期限の日時を任意の日時に変更します。 

 

f:id:nobtak:20200616014130p:plain

 

4) 「SAS トークン」が表示されるため、「SAS トークン」情報をメモ帳などに控えます。   

 

f:id:nobtak:20200615020900p:plain

※ SAS トークンは先頭の「?」を省いた 「sv=2019*******」を使用します。

 

Shard Access Signature (SAS) を使用した SQL Server 資格情報の作成

1) SQL Server がインストールされた Azure 仮想マシンにログインします。

2) SQL Server Management Studio (以下 SSMS) を起動し、管理者権限(sysadmin)が付与されたログインで該当のインスタンスに接続します。

3) 「新しいクエリ」を選択します。

4) 以下のクエリを実行し、SQL Server 資格情報を作成します。

  • バックアップ先に指定するURLには、「h t t p s://<Azure Blob Storage名>.blob.core.windows.net/<コンテナ名>」を指定。
  • SECRET には、作成したSASトークンを指定。 
use master
go
create credential [h t t ps://stje*******.blob.core.windows.net/backup]
    WITH IDENTITY='SHARED ACCESS SIGNATURE'
    , SECRET = 'sv=2019-10-10&ss=b&srt=co&sp=rwdlacx&se=2040-06-15T14:59:59Z&st=2020-06-14T15:00:00Z&spr=https&sig=****************************************'
go

  

SQL Server バックアップ コマンド実行テスト

1) SQL Server がインストールされた Azure 仮想マシンにログインします。

2) SQL Server Management Studio (以下 SSMS) を起動し、管理者権限(sysadmin)が付与されたログインで該当のインスタンスに接続します。

3) 「新しいクエリ」を選択します。

4) 以下のクエリを実行し、データベース(今回は「AGDB1」)のバックアップをSQL Server 資格情報で指定した Azure Blob Storageのコンテナ(今回は「backup」)配下にバックアップファイルを作成します。  

BACKUP DATABASE [AGDB1] TO  URL = 'h t t ps://stje*******.blob.core.windows.net/backup/agdb1_backup.bak' with compression
go

 

 [コマンド結果例]

データベース 'AGDB1' の 512 ページ、ファイル 1 のファイル 'AGDB1' を処理しました。
データベース 'AGDB1' の 409 ページ、ファイル 1 のファイル 'AGDB1_log' を処理しました。
BACKUP DATABASE により 921 ページが 0.408 秒間で正常に処理されました (17.625 MB/秒)。

 

まとめ 

SQL Server 資格情報で指定した Azure Blob Storage コンテナ配下に対して、「BACKUP DATABASE TO URL」コマンドを実行することで、バックアップ ファイルを Azure Blob Storage に作成できるようになりました。

今回はバックアップ コマンドに圧縮オプション (WITH COMPRESSION) を指定していますが、圧縮オプションを使用可能なエディション(SQL Server Standard Edition 以上)を使用している場合は、バックアップ サイズを縮小することができ、バックアップに要する時間の短縮、コストメリットもあるので使用すると良いかと思います。