SQL Server の移行前提条件の構成
SQL Server ソース データベースから同期ジョブを実行するには、データベースの構成変更が必要になる場合があります。 同期ジョブを開始する前に、Relational Migrator はデータベースが正しく構成されているかどうかを確認します。 Relational Migrator でデータベースの構成変更が必要と判断された場合は、必要な変更を伴う SQL スクリプトが自動的に生成されます。 データベース管理者(DBA)にこのスクリプト内のコマンドを確認し、データベース サーバー上で実行することをお勧めします。 このトピックでは、必要な構成手順の詳細について説明します。 SQL Server の構成は 同期ジョブ の種類によって異なります。
スナップショット同期ジョブはすべてのデータを移行し、その後停止します。
継続的な同期ジョブはスナップショットを実行し、その後 CDC ステージに入り、データ変更を継続的に複製します。
このタスクについて
このページでは、Relational Migrator によって自動生成される SQL スクリプトの詳細について説明します。
Relational Migrator は、データベースに接続するときに構成設定を自動的に検出し、必要に応じて CDC を有効にするための適切な SQL ステートメントを生成します。
Relational Migrator では、同期ジョブを容易にするために SQL Server にインデックスを作成しません。 作成インデックスの作成権限は必要ありません。
手順
データベースを設定する最も簡単な方法は、Relational Migrator が 同期ジョブを作成する ときにダウンロードするよう要求する自動生成 を実行することです。権限を理解するか、SQL を手動で実行するには、以下の手順をお読みください。
同期ジョブ タイプに基づいて SQL Server インスタンスを構成します。 スナップショットと継続的な同期ジョブの構成の詳細については、以下のタブを参照してください。
SQL Server に対する継続的なジョブの場合は、各テーブルに対してデータベース レベルとテーブル レベルの両方で CDC を有効にする必要があります。
データベースレベルでの CDC の構成
データベース レベルで CDC を有効にするには、 sys.sp_cdc_enable_db
の保存済み手順を使用します。
以下のコード ブロックは、Relational Migrator によって自動生成されるコードのサンプルです。 MyDB
のデータベース名を置き換えることで、コードを手動で実行できます。
USE MyDB GO EXEC sys.sp_cdc_enable_db GO
RDS でホストされている SQLServer インスタンスの場合:Amazon Web Services
USE MyDB GO EXEC msdb.dbo.rds_cdc_enable_db 'MyDB'; GO
SQL Server エージェントを有効にし、データベース権限を確認します
テーブル レベルで CDC オプションを有効にするには、次の手順に従います。
サーバーレベルの
sysadmin
ロールが必要です。データベース レベルの
db_owner
ロールが必要です。SQL Server エージェント は実行中である必要があります。
SQL Server への接続に使用されるサービス アカウントには、すべての必須テーブルに対する 選択 権限が必要です。
テーブル レベルでの CDC の構成
テーブル レベルで CDC を有効にするには、 sys.sp_cdc_enable_table
の保存された手順を使用します。
sys.tables カタログ ビュー で 列を表示すると、SQL Server CDC 設定を確認できます。is_tracked_by_cdc
。is_tracked_by_cdc
の値が1
の場合は、テーブルが変更データ キャプチャに対して有効になっていることを示します。
以下のコード ブロックは、自動生成されるコードのサンプルです。コードを手動で実行してテーブル CDC を有効にできます。
USE MyDB GO EXEC sys.sp_cdc_enable_table @source_schema = N'dbo', @source_name = N'MyTable', @role_name = N'MyRole', @filegroup_name = N'MyDB_CT', @supports_net_changes = 1 GO
詳細
Relational Migrator は、行レベルの変更をキャプチャするためにオープンソースの Debezium コネクターに依存しています。 詳細については、 「 Debezium SQL Server」 を参照してください。