Enable Stretch Database for a database

適用対象: SQL Server 2016 (13.x) 以降 - Windows のみ

重要

拡張データベースは、SQL Server 2022 (16.x) および Azure SQL Database では非推奨になります。 この機能は、データベース エンジンの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。

Stretch Database 用にデータベースを構成するには、SQL Server Management Studio でデータベースに対して [タスク] > [ストレッチ] > [有効にする] の順に選択し、[データベースのストレッチの有効化] ウィザードを開きます。 Transact-SQL を使用してデータベースの Stretch Database を有効にすることもできます。

個別のテーブルに対して [タスク] > [ストレッチ] > [有効にする] の順に選択した場合、データベースの Stretch Database がまだ有効になっていないと、ウィザードはデータベースの Stretch Database を構成し、ユーザーはプロセスの一部としてテーブルを選択できます。 「テーブルに対して Stretch Database を有効にする」の手順ではなく、この記事の手順に従ってください。

データベースまたはテーブルで Stretch Database を有効にするには、db_owner 権限が必要です。 データベースで Stretch Database を有効にするには、CONTROL DATABASE アクセス許可も必要です。

Note

後で、Stretch Database を無効にする場合は、テーブルまたはデータベースで Stretch Database を無効にしてもリモート オブジェクトは削除されないことに注意してください。 リモート テーブルまたはリモート データベースを削除する場合は、Azure 管理ポータルを使用して削除する必要があります。 リモート オブジェクトを手動で削除するまで、引き続き Azure ストレージのコストが発生します。

開始する前に

  • Stretch Database の制限事項を確認します。

  • Stretch Database によって Azure にデータが移行されるので、課金のために Azure アカウントとサブスクリプションが必要です。 Azure アカウントにサインアップします。

  • 新しい Azure サーバーを作成する、または既存の Azure サーバーを選択するために必要な接続およびログイン情報を入手します。

前提条件: サーバーで Stretch Database を有効にする

データベースまたはテーブルで Stretch Database を有効にする前に、ローカル サーバーで有効にする必要があります。 この操作には、sysadmin または serveradmin のアクセス許可が必要です。

  • 必要な管理アクセス許可がある場合、[データベースのストレッチの有効化] ウィザードを使って Stretch データベース用にサーバーを構成します。

  • 必要なアクセス許可がない場合、ユーザーがウィザードを実行する前に管理者が sp_configure を実行して手動でオプションを有効にするか、または管理者がウィザードを実行する必要があります。

手動によってサーバーで Stretch Database を有効にするには、 sp_configure を実行して、 remote data archive オプションを有効にします。 次の例では、値を 1 に設定することによって remote data archive オプションを有効にしています。

EXEC sp_configure 'remote data archive' , '1';
GO

RECONFIGURE;
GO

詳細については、「Configure the remote data archive Server Configuration Option (サーバー構成オプションの remote data archive を構成する)」および「sp_configure (Transact-SQL)」をご覧ください。

ウィザードを使用する

入力する必要がある情報や選択など、データベースのストレッチの有効化ウィザードの詳細については、「 Get started by running the Enable Database for Stretch Wizard」 (データベースのストレッチの有効化ウィザードの実行から開始する) をご覧ください。

Transact-SQL の使用

個別のテーブルで Stretch Database を有効にする前に、データベースで有効にする必要があります。

データベースまたはテーブルで Stretch Database を有効にするには、db_owner 権限が必要です。 データベースで Stretch Database を有効にするには、CONTROL DATABASE アクセス許可も必要です。

  1. 始める前に、Stretch Database で移行するデータ用に既存の Azure サーバーを選択するか、または新しい Azure サーバーを作成します。

  2. Azure サーバーで、SQL Server とリモート サーバーの通信を可能にするファイアウォール規則を SQL Server の IP アドレス範囲で作成します。

    SQL Server Management Studio (SSMS) のオブジェクト エクスプローラーから Azure サーバーに接続することで、必要とする値を簡単に見つけて、ファイアウォール規則を作成できます。 SSMS で次のダイアログ ボックスが開き、既に必要な IP アドレス値が設定されているので、簡単に規則を作成できます。

    重要

    Stretch Database のサポートは、SQL Server Management Studio v19 で削除されました。 Stretch Database を管理するには、SQL Server Management Studio v18.9.1 以前を使います。

    Screenshot showing a firewall rule for Stretch.

  3. Stretch Database 用に SQL Server データベースを構成するには、データベースにデータベース マスター キーが必要です。 データベース マスター キーは、Stretch Database がリモート データベースへの接続に使用する資格情報をセキュリティで保護します。 次の例では、新しいデータベース マスター キーを作成します。

    USE <database>;
    GO
    
    CREATE MASTER KEY ENCRYPTION BY PASSWORD='<password>';
    GO
    

    データベース マスター キーの詳細については、「CREATE MASTER KEY (Transact-SQL)」および「データベース マスター キーの作成」を参照してください。

  4. Stretch Database 用にデータベースを構成するときは、オンプレミスの SQL Server とリモートの Azure サーバーの間の通信に使用する資格情報を Stretch Database に提供する必要があります。 この場合、2 つの選択肢があります。

    • 管理者の資格情報を指定できます。

      • ウィザードを実行して Stretch Database を有効にする場合は、そのときに資格情報を作成できます。

      • ALTER DATABASEを実行して Stretch Database を有効にする場合は、 ALTER DATABASE を実行して Stretch Database を有効にする前に、資格情報を手動で作成する必要があります。

        次の例では、新しい資格情報を作成します。

        CREATE DATABASE SCOPED CREDENTIAL [<db_scoped_credential_name>]
            WITH IDENTITY = '<identity>' , SECRET = '<secret>';
        GO
        

        資格情報の詳細については、「CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)」を参照してください。 資格情報を作成するには、ALTER ANY CREDENTIAL 権限が必要です。

    • 以下の条件をすべて満たす場合、SQL Server のフェデレーション サービス アカウントを使用して、リモート Azure サーバーと通信できます。

      • SQL Server のインスタンスを実行しているサービス アカウントがドメイン アカウントである。

      • Active Directory が Microsoft Entra ID (旧 Azure Active Directory) とフェデレーションされているドメインに、ドメイン アカウントが属している。

      • Microsoft Entra 認証をサポートするように、リモート Azure サーバーが構成されている。

      • SQL Server のインスタンスを実行しているサービス アカウントが、リモート Azure サーバー上で dbmanager または sysadmin アカウントとして構成されている。

  5. Stretch Database 用にデータベースを構成するには、ALTER DATABASE コマンドを実行します。

    1. SERVER 引数では、既存の Azure サーバーの名前を指定します。これには、名前の .database.windows.net の部分も含めます (例: MyStretchDatabaseServer.database.windows.net)。

    2. CREDENTIAL 引数で既存の管理者資格情報を指定するか、または FEDERATED_SERVICE_ACCOUNT = ON を指定します。 次の例では、既存の資格情報が指定されています。

    ALTER DATABASE [<database name>]
        SET REMOTE_DATA_ARCHIVE = ON
            (
                SERVER = '<server_name>' ,
                CREDENTIAL = [<db_scoped_credential_name>]
            );
    GO
    

次のステップ

関連項目