Docs Menu
Docs Home
/
Relational Migrator
/ /

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 を有効にする必要があります。

1

データベースレベルの CDC で CDC を有効にすると、データベース内に少数のシステムテーブルが生成されますが、ユーザーテーブルは変更されずに残り、パフォーマンスのオーバーヘッドは追加されません。 CDC のみを有効にしても、変更はキャプチャされません。

SQL Server に対する継続的なジョブの場合は、各テーブルに対してデータベース レベルとテーブル レベルの両方で CDC を有効にする必要があります。

1

データベース レベルで 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
2

テーブル レベルで CDC オプションを有効にするには、次の手順に従います。

  1. サーバーレベルのsysadminロールが必要です。

  2. データベース レベルのdb_ownerロールが必要です。

  3. SQL Server エージェント は実行中である必要があります。

  4. SQL Server への接続に使用されるサービス アカウントには、すべての必須テーブルに対する 選択 権限が必要です。

3

テーブル レベルで CDC を有効にするには、 sys.sp_cdc_enable_tableの保存された手順を使用します。

sys.tables カタログ ビュー で 列を表示すると、SQL Server CDC 設定を確認できます。is_tracked_by_cdcis_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」 を参照してください。

戻る

PostgreSQL