Azure SQL データベースを構成する

以下の手順では、Datastream で使用する Azure SQL データベースを構成する方法について説明します。

Azure SQL データベースを構成するには:

  1. 移行元 Azure SQL データベースの変更データ キャプチャ(CDC)を有効にします。これを行うには、Azure Data Studio または SQL Server Management Studio を使用してデータベースに接続し、次のコマンドを実行します。

    EXEC sys.sp_cdc_enable_db;
    GO
    
  2. 変更を取得する必要があるテーブルで CDC を有効にします。

    EXEC sys.sp_cdc_enable_table
    @source_schema = N'SCHEMA_NAME',
    @source_name = N'TABLE_NAME',
    @role_name = NULL
    GO
    

    次のように置き換えます。

    • SCHEMA_NAME: テーブルが属するスキーマの名前
    • TABLE_NAME: CDC を有効にするテーブルの名前
  3. SQL Server エージェントを起動し、常に実行していることを確認します。SQL Server エージェントが長時間ダウンすると、ログが切り捨てられ、Datastream で読み取られなかった変更データが完全に失われる可能性があります。

    SQL Server エージェントの実行については、SQL Server エージェントのインスタンスを起動、停止、再起動するをご覧ください。

  4. スナップショット分離を有効にします。

    SQL Server データベースからデータをバックフィルする際は、整合性のあるスナップショットを確保することが重要です。このセクションで説明している設定を適用しない場合、バックフィル プロセス中にデータベースに加えた変更により、特に主キーのないテーブルでは、重複や誤った結果が生じる可能性があります。

    スナップショット分離を有効にすると、バックフィル プロセスの開始時にデータベースの一時的なビューが作成されます。これにより、他のユーザーが同時にライブテーブルに変更を加えた場合でも、コピーされるデータの整合性が確実に維持されます。スナップショット分離を有効にすると、パフォーマンスにわずかな影響を与える可能性がありますが、信頼性の高いデータ抽出には不可欠です。

    スナップショット分離を有効にするには:

    1. SQL Server クライアントを使用してデータベースに接続します。
    2. 次のコマンドを実行します。
    ALTER DATABASE DATABASE_NAME SET ALLOW_SNAPSHOT_ISOLATION ON;
    

    DATABASE_NAME は、データベースの名前に置き換えます。

  5. Datastream ユーザーを作成する:

    1. master データベースに接続して、ログインを作成します。

      USE master;
      CREATE LOGIN YOUR_LOGIN WITH PASSWORD = 'PASSWORD';
      
    2. ソース データベースに接続して、ログイン用のユーザーを作成します。

      USE DATABASE_NAME
      CREATE USER USER_NAME FOR LOGIN YOUR_LOGIN;
      
    3. ユーザーに db_owner ロールと db_denydatawriter ロールを割り当てます。lang-sql EXEC sp_addrolemember 'db_owner', 'USER_NAME'; EXEC sp_addrolemember 'db_denydatawriter', 'USER_NAME';