View a markdown version of this page

オフラインソースと仮想ターゲットの仮想モード - AWS データベース移行サービス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

オフラインソースと仮想ターゲットの仮想モード

AWS Database Migration Service (DMS) は、スキーマ変換でデータプロバイダーに仮想モードを提供します。仮想モードは、次の 2 つのユースケースをサポートしています。

  • オフラインソース – ソースデータベースに接続せずに、エクスポートされたスクリプトファイルからスキーマを変換します。ソースデータベースへの直接接続が利用できない場合に使用します。オフラインソースの仮想モードは現在、Microsoft SQL Server ソースデータベースで使用できます。

  • 仮想ターゲット – ターゲットデータベースをプロビジョニングせずにスキーマを変換します。ターゲットインフラストラクチャをプロビジョニングする前に、互換性の評価、スキーマコードの変換とレビュー、さまざまなターゲットオプションのテストを行うことができます。仮想モードは、サポートされているすべてのターゲットデータベースで使用できます。サポートされているターゲットデータベースの詳細については、「」を参照してくださいDMS Schema Conversion でターゲットデータプロバイダーを作成および設定する

仮想モードでのデータプロバイダーの作成

仮想モードでデータプロバイダーを作成するには、データプロバイダーの作成ページで仮想モードをオンにします。詳細については、「DMS Schema Conversion のデータプロバイダーを作成する」を参照してください。

仮想モードでのデータプロバイダーの操作

移行プロジェクトで仮想モードでデータプロバイダーを使用するには
  1. 新しい移行プロジェクトを作成するか、既存の移行プロジェクトを選択してから、変更を選択します。

  2. ソースまたはターゲットのデータプロバイダーで、仮想モードがオンになっているデータプロバイダーを選択します。

  3. シークレット で、既存の有効なシークレットを選択します。

    注記

    移行プロジェクトを作成または変更するときは、仮想モードが有効になっているデータプロバイダーを含め、すべてのデータプロバイダーにシークレットと IAM ロールを指定します。仮想モードのデータプロバイダーの場合、これらの認証情報はデータベースへの接続には使用されません。

  4. IAM ロールで、シークレットへの読み取りアクセス権を持つ IAM ロールを選択します。

  5. [Save changes] (変更の保存) をクリックします。

  6. [スキーマ変換] タブを選択します。

  7. [スキーマ変換を起動] をクリックします。プロジェクトが開始されるまで待ちます。

スキーマ変換は、直接接続と同じ方法で、仮想モードのデータプロバイダーと連携します。DMS Schema Conversion は、データベース接続を必要とするアクションを無効にします。

オフラインソースの場合、データベースからの更新はソースツリーの Databases ノードで使用できます。このアクションは、オブジェクトツリーをクリアし、S3 バケットのデータ定義言語 (DDL) スクリプトからメタデータを再ロードします。

仮想ターゲットの場合は、ターゲットツリーで SQL として保存を使用して、変換されたスキーマコードをエクスポートします。

オフラインソース

ソースデータプロバイダーの仮想モードを有効にすると、ソースデータベースに接続せずに、エクスポートされたスクリプトファイルからスキーマを変換できます。ソースデータベースへの直接接続が利用できない場合に使用します。ソースデータベースオブジェクトを記述する DDL スクリプトを指定します。開始する前に、次の要件が満たされていることを確認してください。

オフラインソースの前提条件

サポートされているソースデータベースの方言
  • Microsoft SQL Server からエクスポートされた DDL スクリプト

    注記

    SQL Server Management Studio (SSMS) または SQL Server Management Objects (SMO) を使用してデータベースオブジェクトをエクスポートできます。詳細については、「SQL Server データベースオブジェクトのエクスポート」を参照してください。

DDL スクリプトの要件
  • 各データベースオブジェクトは、Unicode エンコードを使用して個別の.sqlファイルとして保存されます。

  • 各データベースのCREATE DATABASEステートメントに個別の.sqlファイルを含めます。

  • 各オブジェクトファイルは、オブジェクトが属するソースデータベースを識別するUSE [database_name]ステートメントで始まります。

  • 各ファイルには、データベースオブジェクトのCREATEステートメントが 1 つ含まれています。

  • スクリプトで参照されるデータベースオブジェクトは、スキーマ修飾名 ( などdbo.TableName) を使用します。スキーマが指定されていない場合dboは、 が使用されます。

  • ファイル内の ALTERおよび DROPステートメントはスキップされます。

注記

エクスポート時に、SQL Server はプライマリステートメントとともに同じファイルに追加のCREATEステートメントを含めることができます。DMS Schema Conversion は以下を処理します。

  • CREATE INDEX – テーブルで定義されたインデックス

  • CREATE TRIGGER – テーブルに関連付けられたトリガー

  • ALTER TABLE ... ADD DEFAULT – 列のデフォルト値

  • ALTER TABLE ... ADD CONSTRAINT DEFAULT – 名前付きデフォルト制約

  • ALTER TABLE ... ALTER COLUMN ... NOT FOR REPLICATION – 列レプリケーション設定

ファイル内の他のすべての ALTER および DROPステートメントはスキップされます。

S3 フォルダ構造

DMS Schema Conversion は、指定した S3 パスのすべてのフォルダをスキャンします。データベースオブジェクトをロードする.sqlファイルを検索します。S3 パスは、バケットまたはバケット内の任意のプレフィックスを指すことができます。各ファイルの USE [database_name]ステートメントは、そのオブジェクトのソースデータベースを識別します。

ファイル名とオブジェクト名の衝突を避けるため、各データベースのスクリプトを別のフォルダに保存します。

S3 バケット設定
  • DDL スクリプトを Amazon S3 バケットにアップロードします。

  • DMS サービスプリンシパル (dms.amazonaws.com) が引き受けることを許可する IAM ロールを作成し、S3 バケットにスコープされた s3:GetObjectおよび s3:ListBucket アクセス許可を付与するポリシーをアタッチします。詳細については、「オフラインソースの S3 アクセス許可を設定する」を参照してください。

仮想ターゲット

ターゲットデータプロバイダーの仮想モードでは、ターゲットデータベースをプロビジョニングせずにスキーマ変換を実行できます。移行の準備ができたら、データベースの直接接続に切り替えることができます。

ターゲットデータプロバイダーを仮想モードから直接データベース接続に切り替える

移行を進める準備ができたら、データプロバイダーを変更して仮想モードをクリアし、直接データベース接続を使用します。

重要

仮想モードをオフにしてデータプロバイダーを保存した後、再度オンにすることはできません。データプロバイダーのデータベース接続の詳細と、関連する移行プロジェクトで有効なシークレットと IAM ロールを指定する必要があります。

仮想モードから直接データベース接続に切り替えるには
  1. AWS マネジメントコンソールにサインインし、DMS AWS コンソールを開きます。

  2. ナビゲーションペインで [データプロバイダー] を選択します。次に、変更するデータプロバイダーを選択します。

  3. 「関連する移行プロジェクト」セクションで、このデータプロバイダーを使用するすべての移行プロジェクトを確認します。

  4. 最初に関連付けられたプロジェクトを選択します。

  5. [スキーマ変換] タブを選択します。

  6. オプションの [詳細セクション][ステータス] を確認します。

  7. ステータスが[開く] で、[スキーマ変換を閉じる] ボタンがグレー表示されていない場合は、そのステータスを選択してプロジェクトが終了するまで待ちます。

  8. 関連する残りのすべての移行プロジェクトについて、以上のステップを繰り返します。

  9. [開く] ステータスのプロジェクトが残っていないことを確認します。

  10. データプロバイダーに戻り、[変更] を選択します。

  11. 仮想モードをオフにします。

  12. データベースの接続設定を入力します。接続パラメータは、データベースエンジンによって異なります。詳細については、「Creating data providers」を参照してください。

  13. [Save changes] (変更の保存) をクリックします。

    注記

    変更を保存すると、仮想モードを再度有効にすることはできません。

  14. DMS AWS コンソールに戻ります。

  15. ナビゲーションペインで [移行プロジェクト] を選択します。次に、データプロバイダーを変更する移行プロジェクトを選択します。

  16. [Modify] (変更) を選択します。

  17. シークレットで、データベースの認証情報を含むシークレットを選択します。

  18. IAM ロールの場合は、シークレットの読み取りに使用する IAM ロールを選択します。ここで指定した IAM ロールが正しく、接続認証情報シークレットで読み取りが許可され、DMS Schema Conversion AWS サービスで使用できることを確認します。

  19. [Save changes] (変更の保存) をクリックします。

  20. [スキーマ変換] タブを選択します。

  21. [スキーマ変換を起動] をクリックします。プロジェクトが開始されるまで待ちます。

データプロバイダーの移行後にプロジェクトを初めて開始すると、変換結果を表示できます。次のアクションのみを実行できます。

  • ノードスキーマの場合 – データベースからの更新。

  • データベースオブジェクトの場合 – 変更の適用、さらに、SQL としての保存。

Apply アクションは、変換されたオブジェクトをデータベースに適用します。

[データベースから更新] アクションは、実際のデータベースからデータベースオブジェクトをロードします。保存されていない変換オブジェクトは失われます。