URL へのバックアップ (Azure Blob SAS / S3 互換ストレージ)
SQL Serverバックアップとログコマンド
-- A) Azure Blob: SAS credential (named after the container URL, SECRET without a leading '?')
CREATE CREDENTIAL [https://dbabackup.blob.core.windows.net/sql]
WITH IDENTITY = N'SHARED ACCESS SIGNATURE',
SECRET = N'sv=2022-11-02&ss=b&srt=co&sp=rwdlac&se=2027-01-01T00:00:00Z&sig=XXXX';
BACKUP DATABASE [Musteri]
TO URL = N'https://dbabackup.blob.core.windows.net/sql/Musteri_full_1.bak',
URL = N'https://dbabackup.blob.core.windows.net/sql/Musteri_full_2.bak'
WITH COMPRESSION, CHECKSUM, MAXTRANSFERSIZE = 4194304, BLOCKSIZE = 65536, STATS = 10;
-- B) S3-compatible storage (2022+):
CREATE CREDENTIAL [s3://s3.eu-central-1.amazonaws.com/dba-backup/sql]
WITH IDENTITY = N'S3 Access Key',
SECRET = N'<AccessKeyID>:<SecretKeyID>';
BACKUP DATABASE [Musteri]
TO URL = N's3://s3.eu-central-1.amazonaws.com/dba-backup/sql/Musteri_full.bak'
WITH COMPRESSION, CHECKSUM, FORMAT, STATS = 10;
-- Verify (uses the same credential):
RESTORE VERIFYONLY
FROM URL = N's3://s3.eu-central-1.amazonaws.com/dba-backup/sql/Musteri_full.bak'
WITH CHECKSUM;概要
バックアップをオブジェクトストレージに直接書き込む: Azure Blob には SAS 資格情報でブロック BLOB として、2022 では S3 API 互換ストレージ (AWS S3、MinIO など) にアクセスキーの資格情報で書き込む。資格情報は URL のプレフィックスとの照合により自動的に選択される。
使用する場面
オフサイトバックアップの要件、クラウド移行 / ハイブリッド DR のシナリオ、またはローカルのバックアップストレージが不足する場合に。
注意
Azure では 1 つのブロック BLOB は最大 50,000 ブロックであり、MAXTRANSFERSIZE が 4 MB の場合、1 ファイルあたり約 195 GB となるため、大きなデータベースは複数の URL にストライピングする。S3 では 1 ファイルは最大 10,000 パートである。大きなデータベースでは MAXTRANSFERSIZE を引き上げ (最大 20 MB、COMPRESSION が必要)、複数の URL (最大 64) にストライピングする。S3 は INIT/追記をサポートしない。FORMAT は同名の既存バックアップを上書きする。SAS の有効期限が切れるとバックアップジョブはエラーで失敗するため、有効期限をカレンダーに登録しておく。資格情報のシークレットは master に格納され、CONTROL SERVER を持つプリンシパルが使用できる。