SQL Server

Version 23.4.8843


SQL Server


CData Sync アプリケーションからSQL Server コネクタを使用して、SQL Server からデータを取得してサポートされている任意の同期先に移動できます。これを行うには、コネクタを追加し、コネクタへの認証を行い、接続を完了する必要があります。

SQL Server コネクタを追加

Sync でSQL Server のデータを使用できるようにするには、まず以下の手順でコネクタを追加する必要があります。

  1. Sync のダッシュボードから接続ページを開きます。

  2. 接続を追加をクリックしてコネクタを選択ページを開きます。

  3. データソースタブをクリックしてSQL Server 行に移動します。

  4. 行末にある接続を設定アイコンをクリックして、新しい接続ページを開きます。接続を設定アイコンが利用できない場合は、コネクタをダウンロードアイコンをクリックしてSQL Server コネクタをインストールします。新規コネクタのインストールについて詳しくは、接続を参照してください。

SQL Server への認証

コネクタを追加したら、必須プロパティを設定する必要があります。

新しい接続ページで任意の接続名を入力します。

CData Sync は、いくつかの方法でSQL Server への認証をサポートしています。以下から認証方法を選択し、認証の詳細を含む該当セクションに進みます。

Password

ユーザー資格情報で接続するには、次のプロパティを指定します。

  • Auth Scheme - Password を選択。

  • User - SQL Server への認証に使用するユーザー名を入力。

  • Password - SQL Server への認証に使用するパスワードを入力。

NTLM

NTLM ユーザー資格情報で接続するには、次のプロパティを指定します。

  • Auth Scheme - NTLM を選択。

  • User - SQL Server への認証に使用するユーザー名を入力。

  • Password - SQL Server への認証に使用するパスワードを入力。

  • Domain(オプション)- Windows(NTLM)セキュリティログイン用のドメイン名を入力。

  • NTLM Version(オプション)- 使用したいNTLM バージョンを選択。デフォルトバージョンは、1です。

Kerberos

Kerberos 資格情報で接続するには、次のプロパティを指定します。

  • Auth Scheme - Kerberos を選択。

  • User - SQL Server への認証に使用するユーザー名を入力。

  • Password - SQL Server への認証に使用するパスワードを入力。

  • Kerberos KDC - Kerberos キー配布センター(KDC)マシンのホスト名またはIP アドレスを入力。

  • Kerberos Realm - Kerberos への認証に使用するKerberos レルムを入力。

  • Kerberos SPN - Kerberos ドメインコントローラのサービスプリンシパル名(SPN)を入力。

  • Kerberos Keytab File(オプション)- Kerberos キータブファイルの完全なファイルパスを入力。

  • Kerberos Ticket Cache(オプション)- MIT Kerberos 資格情報キャシュファイルの完全なファイルパスを入力。

AzurePassword

Azure ユーザー資格情報で接続するには、次のプロパティを指定します。

  • Auth Scheme - AzurePassword を選択。

  • User - Azure への認証に使用するユーザー名を入力。

  • Password - Azure への認証に使用するパスワードを入力。

Azure Active Directory

Azure Active Directory ユーザーアカウントで接続するには、Auth SchemeAzureAD を選択します。CData Sync は、接続するための組み込みOAuth アプリケーションを提供するため、追加のプロパティは必要ありません。

Azure Managed Service Identity

Azure 仮想マシン上でCData Sync が実行されている場合にマネージドサービスID(MSI)を利用するには、Auth SchemeAzureMSI を選択します。追加のプロパティは必要ありません。

Azure Service Principal

Azure サービスプリンシパルとクライアントシークレットで接続するには、次のプロパティを設定します。

  • Auth Scheme - AzureServicePrincipal を選択。

  • Azure Tenant - 接続するMicrosoft Online テナントを入力。

  • OAuth Client Id - OAuth 認証サーバーにアプリケーションを登録した際に割り当てられたクライアントId を入力。

  • OAuth Client Secret - OAuth 認証サーバーにアプリケーションを登録した際に割り当てられたクライアントシークレットを入力。

アプリケーションのOAuth クライアントId およびクライアントシークレットを取得するには:

  1. Azure ポータルにログインします。

  2. 左ナビゲーションペインですべてのサービスを選択します。次にアプリの登録を検索し選択します。

  3. 新規登録をクリックします。

  4. アプリケーションの名前を入力して任意のAzure AD ディレクトリ - マルチテナントを選択します。リダイレクトURI をCallbackURL に指定された値に設定します。

  5. アプリケーションを作成したら、概要セクションに表示されるアプリケーション (クライアント) ID の値をコピーします。この値をOAuth クライアントId として使用します。

  6. 証明書とシークレットセクションに移動して、アプリケーションの新しいクライアント シークレットを選択します。

  7. 有効期間を指定してクライアントシークレットを保存します。保存するとキーの値が表示されます。

  8. 値は一度しか表示されないので、コピーしておきます。この値をOAuth クライアントシークレットとして使用します。

  9. 認証タブで、必ずアクセストークン (暗黙的なフローに使用) を選択します。

Azure Service Principal Certificate

Azure サービスプリンシパルとクライアント証明書で接続するには、次のプロパティを設定します。

  • Auth Scheme - AzureServicePrincipalCert を選択。

  • Azure Tenant - 接続するMicrosoft Online テナントを入力。

  • OAuth Client Id - OAuth 認証サーバーにアプリケーションを登録した際に割り当てられたクライアントId を入力。

  • OAuth JWT Cert – Java web token(JWT)証明書ストアを入力。

  • OAuth JWT Cert Type – JWT 証明書を格納するキーストアの種類を入力。デフォルトの種類はPEMKEY_BLOB です。

  • OAuth JWT Cert Password(オプション)– OAuth JWT 証明書のパスワードを入力。

  • OAuth JWT Cert Subject(オプション)– OAuth JWT 証明書のサブジェクトを入力。

アプリケーションのOAuth 証明書を取得するには:

  1. Azure ポータルにログインします。

  2. 左ナビゲーションペインですべてのサービスを選択します。次にアプリの登録を検索し選択します。

  3. 新規登録をクリックします。

  4. アプリケーションの名前を入力して任意のAzure AD ディレクトリ - マルチテナントを選択します。リダイレクトURI をCallbackURL に指定された値に設定します。

  5. アプリケーションを作成したら、概要セクションに表示されるアプリケーション (クライアント) ID の値をコピーします。この値をOAuth クライアントId として使用します。

  6. 証明書とシークレットセクションに移動して、証明書のアップロードを選択します。次に、ローカルマシンからアップロードする証明書を選択します。

  7. 有効期間を指定してクライアントシークレットを保存します。保存するとキーの値が表示されます。

  8. 値は一度しか表示されないので、コピーしておきます。この値をOAuth クライアントシークレットとして使用します。

  9. 認証タブで、必ずアクセストークン (暗黙的なフローに使用) を選択します。

接続を完了する

接続を完了するには:

  1. Database プロパティ(オプション)には、SQL Server に接続する際に接続するデフォルトのデータベースを入力します。

  2. 高度な設定タブで接続の高度な設定を定義します。(ただし、ほとんどの場合これらの設定は必要ありません。)

  3. AzurePassword, AzureAD, AzureMSI, AzureServicePrincipal, or AzureServicePrincipalCert で認証する場合は、SQL Server への接続 をクリックしてSQL Server アカウントに接続します。

  4. 作成およびテストをクリックして接続を作成します。

変更の追跡および変更データキャプチャの設定

SQL Server は、ソースデータベースからの変更を追跡する2つの方法をサポートしています。

  • 変更の追跡: 変更の追跡は、CData Sync の効率的な追跡メカニズムを提供します。テーブルに変更の追跡を設定すると、ソーステーブルの行に影響を与えるDML 文はすべて、変更された行ごとに変更の追跡テーブルに変更の追跡情報を記録するようになります。SQL Server の変更の追跡について、詳細はデータアクセスのファインチューニングを参照してください。

  • 変更データキャプチャ(CDC):変更データキャプチャは、テーブルに適用されるすべての変更を追跡し、それらの変更をシャドウ履歴テーブルに記録します。CDC は、主キー(例:変更の追跡)のみをキャプチャするのではなく、すべての行データを履歴テーブルに記録します。この挙動により、CDC は主キーを含まないテーブルを操作できます。

Sync のSQL Server データソースでCDC を使用するには、次の前提条件が満たされていることを確認してください。

  • CDC がSQL Server データベースで有効になっていること(CData Sync 変更の追跡の有効化ステップ1 を参照してください)。

  • SQL Server エージェントが起動していること。

  • あなたがデータベースのdb_owner 固定データベースロールのメンバーであること。

SQL Server のCDC について、詳細はデータアクセスのファインチューニングを参照してください。

CData Sync 変更の追跡の有効化

  1. 次のステートメントを送信して、データベースの変更の追跡を有効化します。

      ALTER DATABASE [DatabaseName] SET CHANGE_TRACKING=ON (CHANGE_RETENTION=7 DAYS, AUTO_CLEANUP=ON);
    

    CHANGE_RETENTION パラメータは、変更追跡情報がデータベースに保持される期間を指定します。ベストプラクティスとして、Sync がコンフリクトやエラーを解決する時間を確保できるように長めの時間枠を設定します。最後に正常に実行されたジョブが保持期間外であった場合、Sync は自動的にテーブル全体を複製し、変更漏れがないことを確認します。

    個々のテーブルで変更の追跡を有効にするには、次のステートメントを送信します。

     ALTER TABLE [SchemaName].[TableName] ENABLE CHANGE_TRACKING;
    

    Note:変更の追跡を使用するには、各テーブルに少なくとも1つの主キーが必要です。

  2. Sync でSQL Server データソースでジョブを作成し、変更データキャプチャオプションを選択します。

CData Sync 変更データキャプチャの有効化

  1. 次のステートメントを送信して、データベースでCDC を有効化します。

     USE [DatabaseName];
     EXEC sys.sp_cdc_enable_db;
     GO 
    

    個々のテーブルでCDC を有効にするには、次のステートメントを送信します。

     USE [DatabaseName];
     EXEC sys.sp_cdc_enable_table 
     @source_schema = [SchemaName],
     @source_name   = [TableName],
     @role_name     = NULL
     GO 
    
  2. Sync でSQL Server データソースでジョブを作成し、変更データキャプチャオプションを選択します。

スキーマの変更

変更の追跡を使用すると、Sync は、ソーステーブル構造に変更(カラムの追加やデータ型の変更など)が加えられたときに、同期先テーブルを自動的に更新します。CDC を使用すると、SQL Server は新しいカラムを自動的に追跡しません。そのため、新しいCDC インスタンスを作成し、古いインスタンスを削除する必要があります。このアクションにより、Sync のテーブルのフルリフレッシュがトリガーされます。

差分レプリケーションのサポート

SQL Server データソースは差分レプリケーションをサポートしています。差分レプリケーションによりワークロードが大幅に軽減され、帯域幅の使用と同期の遅延が最小限に抑えられます。データを差分ごとに移動させることで、遅いAPI や毎日のクオータに対処する際、非常に高い柔軟性を発揮します。

SQL Server データソースのカラムに基づいて差分チェックカラムを構成する必要があります。

差分レプリケーションの設定方法の詳細は、差分レプリケーションを参照してください。

詳細情報

CData Sync とSQL Server の連携について、詳しくはSQL Server Connector for CData Sync を参照してください。