SQL Server Backup to URL for Azure Blob Storageの変更点と確認ポイント

SQL Server Backup to URL for Azure Blob Storage – SQL Serverでまず押さえるべき結論は、Azure Blob StorageをSQL ServerやAzure SQL Managed Instanceのバックアップ先として使う場合、URLでBLOBを指定し、SQL Server Credentialに認証情報を持たせる設計が前提になるという点です。2026年5月時点で特に確認したいのは、単一ブロックBLOBの上限を「約200GB」ではなく約195.3GBとして見積もること、SAS・ストレージキー・マネージドIDを環境ごとに使い分けること、そしてバックアップジョブのストライピング、圧縮、復元テストを見直すことです。(GitHub)

この更新は「バックアップ方式が全面的に変わる」という話ではありません。実務上のポイントは、既存のBACKUP TO URL運用で見落としやすい制限、認証、サイズ設計、Azure SQL Managed Instanceへの移行時の差分を正しく反映することです。特に大容量データベース、オンプレミスSQL ServerからAzureへの移行、SQL Server on Azure VM、SQL Server 2025以降の運用では、設計書とジョブ定義を早めに確認しておきましょう。

目次

SQL Server Backup to URL for Azure Blob Storageの対象範囲

SQL Server Backup to URL for Azure Blob Storageは、SQL ServerのバックアップファイルをAzure Blob Storage上のURLへ直接書き込む機能です。Microsoft Learnの該当ドキュメントでは、対象としてSQL ServerとAzure SQL Managed Instanceが示されており、DISKTAPEに近い構文でバックアップ・復元を行いつつ、Azure Blob Storage特有の認証やBLOB制限に対応する必要があります。(Microsoft Learn)

注意したいのは、「Azure SQL」といってもすべてのサービスで同じように使うわけではない点です。Azure SQL Databaseは自動バックアップが基本で、この記事の主な対象はAzure SQL Managed Instance、SQL Server on Azure VM、オンプレミスまたはAzure Arc対応のSQL Serverです。

環境Backup to URLとの関係確認ポイント
SQL ServerオンプレミスAzure Blob Storageをバックアップ先にできるSAS、ストレージキー、プロキシ、回線帯域を確認
SQL Server on Azure VMAzure Blob Storageへのバックアップに加え、条件を満たせばマネージドIDも利用可能SQL Server 2022 CU17以降、SQL IaaS Agent拡張、権限設定を確認
Azure SQL Managed InstanceBACKUP TO URLが利用できるが、SQL Serverと同じではないCOPY_ONLY、ストライプ数、TDE、認証方式を確認
SQL Server enabled by Azure ArcSQL Server 2025以降ではマネージドID利用が選択肢になるPrimary managed identityとStorage Blob Data Contributorを確認
Azure SQL Database通常は自動バックアップやPITRが中心ネイティブ.bak運用とは分けて考える

2026年5月時点で押さえるべき変更点

今回の確認で重要なのは、機能追加そのものよりも、制限値と推奨構成の理解を最新化することです。GitHub上のMicrosoftDocs履歴では、SQL Server Backup to URLのバックアップサイズ制限がより正確に整理され、単一ブロックBLOBの上限が約195.3GBであること、トランザクションログバックアップで複数ファイルを使う場合のMAXTRANSFERSIZEの挙動が明記されています。(GitHub)

確認ポイント内容管理者・開発者への影響
単一ブロックBLOBの上限約195.3GBとして扱う200GBぎりぎりの単一ファイル設計は避ける
ストライピング最大64 URLで大容量バックアップに対応大容量DBや差分・非圧縮バックアップでは複数URLを前提にする
トランザクションログバックアップ複数ファイル指定時はMAXTRANSFERSIZEが想定通り効かない場合があるログバックアップのサイズ見積もりと検証が必要
ブロックBLOB優先SQL Server 2016以降ではブロックBLOBが推奨SASを使う設計が基本になる
マネージドIDSQL Server 2025、SQL Server on Azure VMなど一部環境で利用可能従来のSAS手順と混同しない
不変ストレージSQL Server 2025でコンテナーレベルの不変ストレージをサポートランサムウェア対策になるが、上書き運用は見直しが必要

仕組みを理解する:URL、BLOB、Credentialの関係

Backup to URLの構成要素はシンプルですが、ここを誤るとバックアップジョブが失敗します。必要なのは、Azure Storageアカウント、コンテナー、BLOB名、そしてSQL Server Credentialです。

TO URLで指定するURLは、コンテナーだけではなく、実際のBLOBファイル名まで含める必要があります。たとえば次のような形式です。

https://<storage-account>.blob.core.windows.net/<container>/<backup-file>.bak

既存のBLOB名を指定すると、原則としてバックアップは失敗します。上書きするにはWITH FORMATが必要ですが、ファイルスナップショットバックアップや不変ストレージを使う場合は、上書き前提の運用が問題になります。また、HTTPによるBackup to URLはサポートされていません。(Microsoft Learn)

SQL Server Credentialには、次のいずれかの認証情報を保存します。

認証方式主な使いどころ注意点
SASSQL Server 2016以降のブロックBLOB運用で基本になるトークンの期限、権限、先頭の?に注意
ストレージアカウントキー従来構成やページBLOB利用時共有キー無効化やキー漏えいリスクに注意
マネージドIDSQL Server 2025、SQL Server on Azure VMなど対応環境対象環境、Primary managed identity、RBAC設定が必要

ブロックBLOBとページBLOBはどう選ぶべきか

実務では、SQL Server 2016以降であればブロックBLOBとSASの組み合わせを第一候補にします。公式情報では、ストレージキーをCredentialで使う場合はページBLOB、SASを使う場合はブロックBLOBになり、SQL Server 2016以降ではブロックBLOBが推奨されています。理由は、SASのほうがアクセス権を限定しやすく、複数ブロックBLOBへのバックアップで大きなバックアップや性能面に対応しやすいためです。(Microsoft Learn)

ただし、ブロックBLOBにも上限があります。単一ブロックBLOBは約195.3GBが目安で、SQL Serverが小さいブロックサイズで書き込むと、ファイルサイズが200GB未満でも50,000ブロック制限に達する可能性があります。差分バックアップや非圧縮バックアップでは、早い段階でストライピングを検討するのが安全です。(GitHub)

管理者が確認すべき設定

Backup to URLで障害が起きる原因の多くは、T-SQLの構文ミスではなく、Azure Storage側の設定、Credential、ネットワーク、権限の不整合です。運用開始前、または更新後の棚卸しでは、次の項目を確認してください。

確認項目見る場所判断基準
コンテナーのアクセスレベルAzure Storageのコンテナー設定原則privateにする
SASの権限SASまたはStored Access Policy読み取り、書き込み、リスト、削除の必要範囲を確認
SASの期限SASトークンまたはポリシージョブの運用期間より短すぎないか
Credentialsys.credentials名前、IDENTITY、SECRETが環境に合っているか
共有キー設定Storage account configuration従来のSAS・キー構成でShared Key無効化の影響がないか
SQL Server権限ロールとサーバー権限db_backupoperatorとCredential操作権限を確認
ネットワークNSG、Firewall、Proxy、Private Endpoint443番ポート、プロキシ認証、名前解決を確認
リージョンVMとStorage accountSQL Server on Azure VMでは同一リージョンが望ましい

公式のベストプラクティスでは、BLOBの誤上書きを避けるためにバックアップごとに一意のファイル名を付けること、コンテナーをprivateにすること、Azure VM上のSQL ServerではVMと同じリージョンのStorage accountを使うこと、WITH COMPRESSIONでコストと時間を抑えることが推奨されています。(Microsoft Learn)

SASを使う基本的なバックアップ手順

SASでブロックBLOBへバックアップする場合、Credential名はコンテナーURLに合わせるのが基本です。SASトークンをSECRETに入れるときは、先頭の?を含めないようにします。?付きで登録すると、OSエラー50などの原因になることがあります。(Microsoft Learn)

CREATE CREDENTIAL [https://<storage-account>.blob.core.windows.net/<container>]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '<sas-token-without-leading-question-mark>';
GO

BACKUP DATABASE [AppDb]
TO URL = 'https://<storage-account>.blob.core.windows.net/<container>/AppDb_full_20260508_01.bak'
WITH COMPRESSION, CHECKSUM, STATS = 5;
GO

バックアップ後は、取得できたかどうかだけでなく、復元に使えるかを確認します。運用では、少なくとも定期的に別環境でリストアテストを行い、RTOとRPOに合うか確認してください。

RESTORE VERIFYONLY
FROM URL = 'https://<storage-account>.blob.core.windows.net/<container>/AppDb_full_20260508_01.bak'
WITH CHECKSUM;
GO

大容量データベースではストライピングを前提に設計する

大容量DBでは、単一ファイルにこだわらず複数URLへ分割するストライピングを使います。公式情報では、ブロックBLOBの最適化のためにBLOCKSIZE = 65536MAXTRANSFERSIZE = 4194304が推奨されており、大容量バックアップ時のI/Oエラー対策としても、圧縮、複数URL、MAXTRANSFERSIZEBLOCKSIZEの組み合わせが示されています。(Microsoft Learn)

BACKUP DATABASE [AppDb]
TO
  URL = 'https://<storage-account>.blob.core.windows.net/<container>/AppDb_full_20260508_01.bak',
  URL = 'https://<storage-account>.blob.core.windows.net/<container>/AppDb_full_20260508_02.bak',
  URL = 'https://<storage-account>.blob.core.windows.net/<container>/AppDb_full_20260508_03.bak',
  URL = 'https://<storage-account>.blob.core.windows.net/<container>/AppDb_full_20260508_04.bak'
WITH
  COMPRESSION,
  CHECKSUM,
  MAXTRANSFERSIZE = 4194304,
  BLOCKSIZE = 65536,
  STATS = 5;
GO

判断基準としては、圧縮後のバックアップサイズが150GBを超える、差分バックアップが肥大化しやすい、バックアップ時間がSLAに近い、過去にI/Oエラーやブロック数上限のエラーが出た、といった場合はストライピングを検討します。単一BLOBの上限に近づいてから対処するより、最初から複数URLで設計したほうが運用が安定します。

Azure SQL Managed Instanceでの注意点

Azure SQL Managed InstanceはSQL Server互換性が高いものの、バックアップにはPaaSならではの制限があります。Managed Instanceには自動バックアップがあり、ユーザーが作成できるフルバックアップはCOPY_ONLYが前提です。また、バックアップ先はAzure Blob StorageへのBACKUP TO URLで、FILETAPE、バックアップデバイスはサポートされません。(Microsoft Learn)

Managed Instanceでは、バックアップまたは復元でAzure Storageにアクセスする際、認証方式としてマネージドIDまたはSASを使います。アクセスキーはサポートされないため、オンプレミスSQL Serverで使っていたストレージキー前提のスクリプトをそのまま移行しないようにしてください。また、Managed Instanceでは最大32ストライプ、1ストライプあたり195GBという考え方も設計に入れる必要があります。(Microsoft Learn)

移行時は、次の順番で確認すると失敗しにくくなります。

手順確認すること
事前評価ソースDBのサイズ、TDE、FILESTREAM、互換性レベルを確認
バックアップ設計圧縮後サイズを見積もり、必要なストライプ数を決める
認証設計Managed Instance側でSASまたはマネージドIDを準備
復元テスト本番移行前に検証用インスタンスへ復元
切り戻し計画復元失敗時に戻せる手順と期限を決める

特にTDEには注意が必要です。サービス管理TDEで暗号化されたManaged Instanceのデータベースでは、BACKUP DATABASE ... WITH COPY_ONLYに制約があります。移行・退避用途でネイティブバックアップを使う場合は、暗号化方式も含めて事前に確認してください。(Microsoft Learn)

SQL Server on Azure VMとマネージドIDの確認ポイント

SQL Server on Azure VMでは、SQL Server 2022 CU17以降などの条件を満たすと、Microsoft EntraのマネージドIDを使ってAzure Blob Storageへバックアップ・復元できます。必要条件には、SQL IaaS Agent拡張への登録、Microsoft Entra認証の構成、Azure Blob Storageへのネットワーク到達性、Primary managed identityへのStorage Blob Data Contributorロール付与などがあります。(Microsoft Learn)

マネージドIDを使う場合、Credentialは次のように作成します。

CREATE CREDENTIAL [https://<storage-account>.blob.core.windows.net/<container>]
WITH IDENTITY = 'Managed Identity';
GO

SASトークンを秘密情報として保持しない点はメリットですが、権限不足やPrimary managed identity未設定だと、バックアップ時にアクセス拒否エラーが発生します。トラブルシューティングでは、マネージドIDがVMに割り当てられているか、Storage accountにStorage Blob Data Contributorが付与されているか、FirewallやPrivate Endpointで接続が遮断されていないかを順に確認しましょう。(Microsoft Learn)

SQL Server 2025と不変ストレージの扱い

SQL Server 2025では、Azure Blob Storageの不変ストレージを使ったBackup to URLが重要な選択肢になります。不変ストレージに書き込まれたファイルは、ポリシーに従って変更や削除ができないため、ランサムウェア対策や監査要件のある環境で有効です。公式情報では、現時点でサポートされるのはコンテナーレベルの不変ストレージとされています。(Microsoft Learn)

ただし、不変ストレージでは「同じファイル名に上書きする」運用と相性が悪くなります。WITH FORMATを使って同名バックアップを上書きしようとしても、既存ファイルがある場合は失敗します。したがって、日付、時刻、バックアップ種別、ストライプ番号を含めたファイル名規則を作ることが必須です。

<database>_<backup-type>_<yyyyMMddHHmm>_<stripe-no>.bak
例: AppDb_full_202605081030_01.bak

開発者が確認すべき実装・展開上の注意点

アプリケーション開発者やSREが関わる場合、Backup to URLはDBAだけの設定ではありません。CI/CD、インフラコード、監視、障害復旧手順に影響します。

まず、環境ごとにStorage account、コンテナー、Credential名、SAS期限を変数化します。本番と検証で同じコンテナーを使うと、誤削除や誤復元のリスクが高まります。次に、バックアップジョブの成功だけでなく、バックアップサイズ、所要時間、失敗時のエラー番号、BLOBの残存状態を監視します。失敗したバックアップでは、無効なBLOBやアクティブリースが残ることがあり、再実行時の障害原因になります。(Microsoft Learn)

展開時は、次のようなチェックをリリース前に入れておくと安全です。

チェック失敗した場合の影響
Credentialが存在するかバックアップジョブが即失敗する
SASが期限切れでないかある日突然バックアップできなくなる
Storage accountへ接続できるかネットワーク変更で失敗する
バックアップ先BLOB名が一意か上書き失敗または誤上書きの原因になる
ストライプ数がサイズに合うかブロック数上限やI/Oエラーの原因になる
復元テスト済みか障害時に復旧不能になる

よくある失敗と対策

Backup to URLの失敗は、エラーメッセージだけを見ると分かりにくいことがあります。代表的な失敗パターンを先に押さえておきましょう。

失敗しやすいポイント症状対策
SASトークンの先頭に?を含めてCredentialを作成OSエラー50などでバックアップ失敗?を除いた文字列をSECRETに入れる
単一BLOBに大容量バックアップを保存I/Oエラー、ブロック数上限、3063エラー圧縮、複数URL、MAXTRANSFERSIZEBLOCKSIZEを使う
同じBLOB名を使い回すバックアップ失敗、上書きリスク日時とストライプ番号を含める
復元時のBLOCKSIZE不一致Filemarkが一致しないエラーバックアップ時と同じBLOCKSIZEで復元
失敗したBLOBが残る412や409 Conflictアクティブリースを確認し、不要BLOBを削除
プロキシ制限に引っかかる接続切断、502、407 Proxy Authentication RequiredWinHTTPプロキシ、認証、スロットリングを確認
SQL Server 2012/2014で大容量バックアップ1TB制限やページBLOB関連の問題圧縮、ストライピング、バージョンアップを検討

公式のトラブルシューティングでは、大容量バックアップ時にCOMPRESSIONMAXTRANSFERSIZEBLOCKSIZE、複数URLを検討すること、復元時のFilemarkエラーでは同じBLOCKSIZEを指定して再実行すること、SAS期限切れやルート証明書不足、Storage account種別の不一致などを確認することが示されています。(Microsoft Learn)

既存環境で今すぐやるべき棚卸し

既存のBackup to URL運用がある場合は、次の順番で棚卸ししてください。

まず、全SQL Serverインスタンスでsys.credentialsを確認します。SASを使っているのか、ストレージキーを使っているのか、マネージドIDを使っているのかを分類します。

SELECT
    name,
    credential_identity,
    create_date,
    modify_date
FROM sys.credentials
WHERE name LIKE 'https://%.blob.core.windows.net/%'
   OR credential_identity IN ('SHARED ACCESS SIGNATURE', 'Managed Identity');

次に、バックアップ履歴からファイルサイズと所要時間を確認します。圧縮後サイズが150GBを超えている、差分バックアップが大きい、ログバックアップが肥大化している、バックアップ時間が延びている場合は、ストライピングとパラメーターの見直しを行います。

最後に、復元テストを実施します。バックアップが成功していても、SAS期限切れ、Credential不一致、BLOB削除、ブロックサイズ不一致、TDEキーの問題があると、障害時に復元できません。バックアップ運用の品質は「バックアップ取得」ではなく「復元成功」で判断しましょう。

まとめ:次に取るべき行動

SQL Server Backup to URL for Azure Blob Storage – SQL Serverの確認で重要なのは、Azure Blob Storageを単なる保存先として見るのではなく、認証、BLOB種別、サイズ上限、ネットワーク、復元性まで含めたバックアップ基盤として設計することです。

まず、現在のCredentialとStorage account設定を棚卸ししてください。次に、単一BLOBの上限を約195.3GBとして再計算し、大容量DBではストライピングを検討します。Azure SQL Managed Instanceへ移行する場合は、COPY_ONLY、認証方式、ストライプ数、TDEの制限を確認します。SQL Server on Azure VMやSQL Server 2025以降を使う場合は、マネージドIDと不変ストレージを採用できるか検討しましょう。

最終的には、バックアップジョブを直すだけで終わらせず、復元テスト、監視、ファイル名規則、SAS更新手順、失敗BLOBの削除手順まで運用 Runbook に反映することが、今回の更新を実務に活かす最短ルートです。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次