Azure SQL Managed Instance から SQL Server 2022 にデータベースを復元する

適用対象:Azure SQL Managed Instance

この記事では、データベースのバックアップを Azure SQL Managed Instance から SQL Server 2022 に復元する方法について説明します。

概要

SQL Managed Instance と SQL Server 2022 ではデータベースの形式が揃っているので、マネージド インスタンスから、オンプレミス、Azure、または他のクラウドでホストされている、Enterprise、Developer、または Standard エディションの SQL Server 2022 に、データベースを簡単にコピーまたは移動できます。

データベースをマネージド インスタンスから SQL Server 2022 インスタンスに復元すると、次のシナリオが可能になります。

  • SQL Managed Instance と SQL Server ベースの製品間のデータベース モビリティを確保する。
  • 顧客や他の適格な関係者にデータベース コピーを提供する。
  • SQL Managed Instance の外部の環境を更新する。

SQL Managed Instance から SQL Server 2022 にデータベースのコピーのみの完全バックアップを復元する機能は、既存と新規デプロイのすべてのインスタンスで、既定で使用できます。

重要

SQL Managed Instance から SQL Server 2022 へのデータベースのコピーのみの完全バックアップを復元する機能は、SQL Server 2022 のメインストリーム サポートが終了するまで使用できます。

SQL Managed Instance でバックアップを作成する

最初に、お使いのインスタンスからストレージ アカウントにアクセスするための資格情報を作成してから、データベースのコピー専用バックアップを作成し、格納します。

資格情報を作成するには、マネージド ID または Shared Access Signature (SAS) トークンを使います。

マネージド ID は、Microsoft Entra ID (旧称 Azure Active Directory) の機能であり、Microsoft Entra AD で自動的に管理される ID (システム割り当てマネージド ID) を、Azure SQL Managed Instance などの Azure サービスのインスタンスを提供します。

この ID を使うと、ストレージ アカウントを含む他の Azure リソースへのデータ アクセスの要求を認可することができます。 Azure SQL Managed Instance などのサービスには、システム割り当てマネージド ID が設定されています。さらに 1 つまたは複数のユーザー割り当てマネージド ID を設定することもできます。 システム割り当てマネージド ID またはユーザー割り当てマネージド ID のいずれかを使って要求を認可できます。

Azure ストレージ管理者は、バックアップ ファイルをストレージ アカウントに書き込む前に、データを書き込むアクセス許可をマネージド ID に付与する必要があります。 インスタンスのマネージド ID へのアクセス許可の付与は、他の Microsoft Entra ユーザーにアクセス許可を付与するのと同じ方法で行われます。 次に例を示します。

  1. Azure portal のストレージ アカウントの [Access Control (IAM)] ペインで、[ロールの割り当ての追加] を選びます。

  2. 組み込みの Azure ロールベースのアクセス制御 (RBAC) ロールである [ストレージ BLOB データ共同作成者] を選びます。 これにより、必要とする Azure Blob Storage コンテナーに対する読み取りと書き込みのアクセス権がマネージド ID に与えられます。

    [ストレージ BLOB データ共同作成者] Azure RBAC ロールをマネージド ID に付与するのではなく、さらに細かいアクセス許可を付与することができます。 詳細については、Azure Data Lake Storage Gen2 での ACL の設定に関する記事を参照してください。

  3. 次のページの [アクセス権の割り当て先][マネージド ID] を選びます。

  4. [メンバーの選択] を選び、[マネージド ID] ドロップダウン リストで適切なマネージド ID を選びます。 詳細については、「Azure portal を使用して Azure ロールを割り当てる方法」を参照してください。

次にマネージド ID 認証用のデータベース スコープ資格情報を作成します。これは簡単です。

次の例では、Managed Identity はハードコーディングされた文字列であり、汎用ストレージ アカウント名を実際のストレージ アカウントの名前に置き換える必要があることに注意してください。

CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<containername>] 
WITH IDENTITY = 'MANAGED IDENTITY'  

次に、次のサンプルのような T-SQL コマンドを実行して、データベースの COPY_ONLY バックアップを作成します。

BACKUP DATABASE [SampleDB]
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/SampleDB.bak'
WITH COPY_ONLY

SQL Server に復元する

RESTORE DATABASE T-SQL コマンドの WITH MOVE オプションを使い、宛先サーバー上のファイルへの明示的なファイル パスを指定して、データベースを SQL Server に復元します。

データベースを SQL Server に復元するには、環境に適したファイル パスを使用して、次の T-SQL のサンプル コマンドを実行します。

RESTORE DATABASE [SampleDB]
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/SampleDB.bak'
WITH
MOVE 'data_0' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDB_data_0.mdf',
MOVE 'log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDBlog.ldf',
MOVE 'XTP' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDB_xtp.xtp'

Note

保存時に (Transparent Data Encryption (TDE) を使って) 暗号化されたデータベースを復元するには、SQL Server の宛先インスタンスから、SQL Server コネクタ for Microsoft Azure Key Vault を介して、ソース データベースの保護に使われたものと同じキーにアクセスできる必要があります。 詳しくは、AKV を使用した SQL Server TDE の設定に関する記事をご覧ください。

考慮事項

データベースを SQL Server に復元するときは、次の点を考慮してください。

  • WITH MOVE 修飾子を使い、データ ファイルのパスを明示的に指定する必要があります。
  • サービスマネージド TDE キーを使って暗号化されたデータベースは、SQL Server に復元できません。 暗号化されたデータベースを SQL Server に復元できるのは、カスタマー マネージド キーで暗号化されていて、宛先サーバーがデータベースの暗号化に使われたのと同じキーにアクセスできる場合のみです。 詳細については、Azure Key Vault を使った SQL Server TDE の設定に関する記事を参照してください。
  • 将来的には、データベースの形式の変更を必要とする機能が Azure SQL Managed Instance に導入され、バックアップに SQL Server 2022 との互換性がなくなる可能性があります。 そのような機能にアクセスするには、明示的なオプトインが必要です。

次のステップ