ネイティブ バックアップと復元を使用してデータベースを移行する

完了

多くの SQL Server プロフェッショナルは、バックアップと復元のプロセスを使用した移行を最も簡単な移行方法と考えています。

Microsoft Azure Blob Storage では、ブロック BLOB とページ BLOB という 2 種類の BLOB がサポートされています。 SQL Server 2016 以降に対してはブロック BLOB が適しています。 ブロック BLOB とページ BLOB のどちらを選択するかは、使用される資格情報の種類によって異なります。ブロック BLOB に対しては Shared Access Signature が、ページ BLOB に対してはストレージ キーが適しています。

ブロック BLOB へのバックアップには、ページ BLOB と比較して、より安全な認可、バックアップ パフォーマンスの向上、およびより大規模なデータベース バックアップのサポートなどの利点があります。

ファイルへのデータベースの完全バックアップの実行を選択する場合は、Azure Data Explorer または AzCopy コマンドライン ユーティリティのどちらかを通して、オンプレミスのバックアップ ファイルを Azure VM に転送できます。

SQL Server の Azure Blob Storage を使用したバックアップと復元

URL へのバックアップでは Azure ストレージ アカウントが必要であり、Azure Blob Storage サービスが使用されます。 そのストレージ アカウント内にコンテナーがあり、そこに BLOB が格納されます。 ローカル ディスク上のパスとは異なり、バックアップ ファイルへのパスは https://{AccountName}.blob.core.windows.net/{ContainerName}/MyDatabase.bak のようになります。 バックアップを識別しやすいように、コンテナーの下にフォルダー名をさらに追加できます (たとえば、FULL、DIFF、LOG など)。

URL へのバックアップまたは URL からの復元を行うには、SQL Server インスタンスと Azure の間で認証を確立する必要があります。 Azure VM 内では、SQL Server は Azure で実行されていることを認識していないことに注意してください。

SQL Server 資格情報を作成する場合、認証には次の 2 つのオプションがあります。

  • バックアップをページ BLOB として格納する Azure ストレージ アカウント名とアクセス キー
  • バックアップをブロック BLOB として格納する Shared Access Signature。 大規模なデータベースの場合は、複数のブロック BLOB にバックアップを行うことができます。

ヒント

大規模なデータベースには、圧縮データベース バックアップをお勧めします。

URL からの復元は、ディスクまたはネットワーク共有からの復元と同じように簡単です。 SQL Server Management Studio で、ウィザード内のバックアップ メディア タイプから URL を選択します。 Transact-SQL を使用する場合は、FROM DISK を使用する代わりに、適切な場所とバックアップ ファイル名 (複数も可) で FROM URL を使用します。

Note

ストライプ バックアップ セットがサポートされており、パフォーマンスの観点で推奨されます。 さらに、バックアップが 200 GB 未満の場合は、ブロック制限を回避するためにバックアップをストライピングします。

次のステートメントを実行してトランザクション ログをバックアップします。

BACKUP LOG contoso 
TO URL = 'https://myacc.blob.core.windows.net/mycontainer/contoso202003271200.trn' 

差分またはトランザクション ログのバックアップを適用できるように、次のステートメントを実行して、データベースを復旧せずに完全データベース バックアップを復元します。

RESTORE DATABASE contoso 
FROM URL = 'https://myacc.blob.core.windows.net/mycontainer/contoso20200327.bak' 
WITH NORECOVERY