次の方法で共有


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

適用対象:Azure SQL Managed Instance

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

概要

更新ポリシーを使用して SQL Managed Instance を構成する場合は、内部データベースの形式を特定のバージョンの SQL Server に合わせます。 SQL Managed Instance と SQL Server の間のデータベース形式の配置により、オンプレミス、Azure の仮想マシン、または他のクラウドでホストされている SQL Server の Enterprise、Developer、または Standard エディションに、SQL マネージド インスタンスからデータベースをコピーまたは移動する簡単な方法が提供されます。

SQL マネージド インスタンスから SQL Server 2022 または SQL Server 2025 にデータベースを復元すると、次のシナリオのロックが解除されます。

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

次の点を考慮してください。

  • SQL Managed Instance から SQL Server 2022 にデータベースのコピーのみの完全バックアップを復元する機能は、既存および新しくデプロイされたすべてのインスタンスで既定で使用できます。 この機能は、 SQL Server 2022 のメインストリーム サポートが終了するまで使用できます。 インスタンスの更新ポリシーが SQL Server 2025 または Always-up-to-date に変更されると、データベースを SQL Server 2022 に復元できなくなります。
  • SQL Managed Instance から SQL Server 2025 にデータベースのコピーのみの完全バックアップを復元する機能は、 SQL Server 2025 更新ポリシーで構成されたインスタンスでのみ使用できます。 この機能は、SQL Server 2025 のメインストリーム サポートが終了するまで使用できます。 インスタンスの更新ポリシーが Always-up-to-date に変更されると、データベースを SQL Server 2025 に復元できなくなります。

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';

Transparent Data Encryption (TDE) を使用して保存時に暗号化されたデータベースを復元するには、SQL Server のコピー先インスタンスが、SQL Server Connector for Azure Key Vault を介してソース データベースを保護するために使用するのと同じキーにアクセスできる必要があります。 詳細については、「 Azure Key Vault を使用した SQL Server TDE 拡張キー管理の設定」を参照してください。

考慮事項

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

  • WITH MOVE 修飾子を使い、データ ファイルのパスを明示的に指定する必要があります。

  • サービスマネージド TDE キーを使って暗号化されたデータベースは、SQL Server に復元できません。 暗号化されたデータベースを SQL Server に復元できるのは、カスタマー マネージド キーで暗号化されていて、宛先サーバーがデータベースの暗号化に使われたのと同じキーにアクセスできる場合のみです。 詳細については、「Azure Key Vault を使用した SQL Server TDE 拡張キー管理を設定する」をご覧ください。

  • SQL Managed Instance の更新ポリシーは、SQL Server インスタンスと一致するか、より高いバージョンである必要があります。 SQL Server 2022 に復元されたデータベースは、 SQL Server 2022 更新ポリシーを使用するインスタンスから取得する必要があります。 同様に、SQL Server 2025 に復元されたデータベースは、 SQL Server 2025 更新ポリシーを使用するインスタンスから取得する必要があります。 SQL Server 2022 更新ポリシーを持つインスタンスから SQL Server 2025 更新ポリシーを持つインスタンスにデータベースを復元することもできます。 より高いバージョンの更新ポリシーを持つインスタンスにデータベースが復元されると、そのデータベースはバージョン更新ポリシーが低いインスタンスに復元できなくなります。 バージョンが低い更新ポリシーを使用したインスタンスからのデータベースの復元はサポートされていません。

  • Azure SQL Managed Instance データベースを SQL Server に復元し、インデックスまたはインデックスを持つテーブルを削除すると、 コマンドの実行時にDBCC CHECKDB が表示されることがあります。

    注意事項

    このシナリオで説明されているように、インデックスを削除した後にテーブルにパーティション インデックスを作成すると、テーブルにアクセスできなくなります。