メインコンテンツへスキップ

前提条件

このセクションでは、CData Sync でSQL Server 同期先コネクタを追加する前に完了しておく必要がある前提条件について説明します。サポートされているSQL Server のバージョンと、安全で信頼性の高いデータレプリケーションをサポートするための専用ユーザーアカウントの推奨作成方法について概説します。

バージョンサポート

Sync は、SQL Server 2008(メジャーバージョン10)以降への接続をサポートしています。

Sync ユーザーの作成

十分な権限を持つ任意のSQL ユーザーアカウントを使用して、SQL Server に接続できます。ただし、ベストプラクティスとして、CData では、Sync アプリケーションからのデータレプリケーション専用のSQL Server ユーザーを作成することを推奨します。SQL Server Management Studio で次のコマンドを送信して、新しいSQL Server ログインと、sync_user という名前の関連データベースユーザーを作成できます。
デフォルトでは、新しいsync_user アカウントにはロールや権限が割り当てられていません。Sync がSQL Server 同期先接続でデータの書き込み、変更、削除を行えるようにするには、sync_user にINSERT、UPDATE、DELETE 権限を付与する必要があります。これらの権限は、sync_user にdb_datawriter ロールを付与することでデータベースレベルで設定でき、これによりデータベース内のすべてのテーブルに対するINSERT、UPDATE、DELETE 操作が許可されます。 SQL Server 同期先接続では、受信データを既存のテーブルに正しくマッピングするために、ターゲットデータベース内のテーブルスキーマを読み取る権限も必要です。これを実現するには、sync_user にdb_datareader ロールも付与する必要があります。 次のコマンドを送信して、両方のロールをsync_user に付与します。
Note: INSERT、UPDATE、DELETE などの個別の権限も、必要に応じて個別に付与し、オブジェクトレベルに制限できます。 db_datawriter ロールにはデータベーステーブルの作成、変更、削除の権限が含まれないため、sync_user にALTER 権限も付与する必要があります。この権限は、次のコマンドを使用してスキーマレベルで付与できます。
SQL Server ユーザーの作成に関する一般的なガイドについては、Create a Database User - SQL Server を参照してください。

SQL Server コネクタを追加

SQL Server への認証

コネクタを追加したら、必要なプロパティを設定します。
  • Server: SQL Server データベースをホストするサーバーのホスト名またはIP アドレスを入力します。デフォルトのサーバーはlocalhost です。
  • Port: SQL Server のポート番号を入力します。デフォルトのポート値は1433 です。
  • Database: SQL Server に接続するときに接続先とするデフォルトのデータベースを入力します。
  • User: SQL Server への認証に使用するユーザー名を入力します。
  • Password: SQL Server への認証に使用するパスワードを入力します。

接続を完了する

接続を完了するには:
  1. Trust Server Certificate で、サーバー証明書を信頼するかどうかを選択します。デフォルトでは、Enable チェックボックスが選択されています。
  2. 高度な設定 タブで詳細な接続設定を定義します。(ただし、ほとんどの場合、これらの設定は必要ありません。)
  3. 作成およびテストをクリックして接続を作成します。

データ型マッピング

CData Sync は、SQL Server データベースにデータをロードするときに、次のデータ型変換を使用します。 Sync で利用できるほとんどの同期先では、カスタムカラムマッピングを使用できます。カラムマッピングの削除や調整、Sync のタスクへのさまざまな変換の適用については、カラムのマッピングを参照してください。

高度なジョブオプション

次の表に、SQL Server 同期先接続で最も頻繁に使用される高度なジョブオプションを示します。使用可能なジョブオプションの完全な一覧については、高度なジョブオプションを参照してください。

Always Encrypted Support

CData Sync は、CData JDBC ドライバーを使用してSQL Server 同期先に接続します。JDBC ドライバーはAlways Encrypted カラムをサポートしており、これによりSync は、クライアント側の暗号化で保護されたデータを安全に読み書きできます。 Sync がAlways Encrypted カラムに書き込む際、JDBC ドライバーは、データが同期先に送信される前に必要なクライアント側の暗号化を実行します。この動作により、書き込みエラーを発生させることなく、暗号化されたカラムをレプリケーションワークフローに含めることができます。

SQL Server に関するよくある問題

SQL Server 同期先に接続すると、エラーが発生することがあります。一般的なエラーと問題は、次のカテゴリに分類されます。
  • タイムアウトエラー
  • その他のエラーと問題

タイムアウトエラー

タイムアウトの問題は、大規模なデータセットをレプリケートする場合に発生しやすく、通常は簡単に解決できます。SQL Server 同期先では、タイムアウトの問題は、多くの場合、Sync で設定されているコマンドタイムアウトの値に関連しています。 Sync を含む、SQL Server の外部にあるアプリケーションは、コマンドタイムアウトを使用して、クエリをキャンセルするまでSQL Server からの応答を待機する時間を決定します。指定された時間内にクエリが完了しない場合、SQL Server はタイムアウトエラーを返します。 Sync では、コマンドタイムアウトのデフォルト値は300秒です。5分前後で一貫して失敗するクエリは、コマンドタイムアウトの状態に陥っていることがよくあります。このような場合、コマンドタイムアウトの値を増やすことで、SQL Server がクエリ処理を完了するための時間が増え、タイムアウトエラーの防止に役立つ可能性があります。 ジョブの高度な設定タブから、ジョブレベルでコマンドタイムアウトの値を変更できます。(これらのオプションの詳細については、高度なジョブオプションを参照してください。)この値を増やすとタイムアウト関連の問題が解決することが多いですが、タイムアウトの調整だけではすべてのシナリオで十分とは限りません。たとえば、各クエリで処理されるデータ量を減らすことでも、実行時間が改善され、タイムアウトを回避できる場合があります。 コマンドタイムアウトの値を調整してもタイムアウトエラーが引き続き発生する場合は、CData Technical Support にお問い合わせください。 SQL Server のクエリタイムアウトエラーの診断と解決に関する具体的なガイダンスについては、Microsoft のドキュメントTroubleshoot query time-out errors – SQL Server を参照してください。

その他のエラーと問題

発生する可能性があるその他の問題やエラーに関するヘルプやトラブルシューティングリソースについては、CData Knowledge Base を参照するか、CData Community に参加するか、CData Technical Support にお問い合わせの上、サポートチケットを開いてください。