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」 を参照してください。