SSMA コンソールを実行する (Db2ToSQL)

Microsoft では、SQL Server Migration Assistant (SSMA) アクティビティを実行および制御するための堅牢なスクリプト ファイル コマンドのセットを提供しています。 後のセクションの詳細も同じです。 コンソール アプリでは、このセクションで列挙されているように、特定の標準スクリプト ファイル コマンドを使用します。

プロジェクト スクリプト ファイルのコマンド

プロジェクト コマンドは、プロジェクトの作成、開く、保存、および終了を処理します。

コマンド

create-new-project: 新しい SSMA プロジェクトを作成します。

スクリプト

  • project-folder は、作成されるプロジェクトのフォルダーを示します。

  • project-name は、プロファイルの名前を示します。 {string}

  • overwrite-if-existsオプションの属性は、既存のプロジェクトを上書きする必要があるかどうかを示します。 {boolean}

  • project-type:省略可能な属性。 プロジェクトの種類を示します。 たとえば、sql-server-2019 または sql-azure です。 既定値は sql-server-2016 です。

例:

<create-new-project
   project-folder="<project-folder>"
   project-name="<project-name>"
   overwrite-if-exists="<true/false>"   (optional)
   project-type="<sql-server-2016 | sql-server-2017 | sql-server-2019 | sql-server-2022 | sql-azure>"   (optional)
/>

属性 overwrite-if-existsfalse 既定で使用されます。

属性 project-typesql-server-2016 既定で使用されます。

コマンド

open-project: 既存のプロジェクトを開きます。

スクリプト

  • project-folder は、作成されるプロジェクトのフォルダーを示します。 指定したフォルダーが存在しない場合、コマンドは失敗します。 {string}

  • project-name は、プロファイルの名前を示します。 指定したプロジェクトが存在しない場合、コマンドは失敗します。 {string}

構文の例:

<open-project
   project-folder="<project-folder>"
   project-name="<project-name>"
/>

SSMA for Db2 コンソール アプリケーションでは、下位互換性がサポートされています。 以前のバージョンの SSMA によって作成されたプロジェクトを開くことができます。

コマンド

save-project: 移行プロジェクトを保存します。

構文の例:

<save-project/>

コマンド

close-project: 移行プロジェクトを閉じます。

構文の例:

<close-project
   if-modified="<save/error/ignore>"   (optional)
/>

データベース接続スクリプト ファイルのコマンド

データベース接続コマンドは、データベースへの接続に役立ちます。

コマンド

connect-source-database

  • ソース データベースへの接続を実行し、ソース データベースの高度なメタデータを読み込みますが、すべてのメタデータを読み込むわけではありません。

  • ソースとの 接続を確立できない場合は、エラーが生成され、コンソール アプリケーションはそれ以降の実行を停止します。

スクリプト

サーバー定義は、サーバー接続ファイルまたはスクリプト ファイルのサーバー セクションの接続ごとに定義された名前属性から取得されます。

構文の例:

<connect-source-database  server="<server-unique-name>"/>

コマンド

force-load-source-database/force-load-target-database

  • ソース メタデータを読み込みます。

  • 移行プロジェクトをオフラインで作業する場合に便利です。

  • ソース/ターゲットへの接続を確立できない場合は、エラーが生成され、コンソール アプリケーションはそれ以降の実行を停止します

スクリプト

コマンド ライン パラメーターとして 1 つまたは複数のメタベース ノードが必要です。

構文の例:

<force-load object-name="<object-name>"
  metabase="<source/target>"/>

または

<force-load>
   <metabase-object object-name="<object-name>"/>
</force-load>

コマンド

reconnect-source-database

  • ソース データベースに再接続しますが、connect-source-database コマンドとは異なり、メタデータは読み込まれません。

  • ソースとの (再) 接続を確立できない場合は、エラーが生成され、コンソール アプリケーションはそれ以降の実行を停止します。

構文の例:

<reconnect-source-database  server="<server-unique-name>"/>

コマンド

connect-target-database

  • ターゲット SQL Server データベースに接続し、ターゲット データベースの高レベルのメタデータを読み込みますが、メタデータ全体は読み込まれません。

  • ターゲットへの接続を確立できない場合は、エラーが生成され、コンソール アプリケーションはそれ以降の実行を停止します。

スクリプト

サーバー定義は、サーバー接続ファイルまたはスクリプト ファイルのサーバー セクションの接続ごとに定義された名前属性から取得されます

構文の例:

<connect-target-database  server="<server-unique-name>"/>

コマンド

reconnect-target-database

  • ターゲット データベースに再接続しますが、connect-target-database コマンドとは異なり、メタデータは読み込まれません。

  • ターゲットへの (再) 接続を確立できない場合は、エラーが生成され、コンソール アプリケーションはそれ以降の実行を停止します。

構文の例:

<reconnect-target-database  server="<server-unique-name>"/>

レポート スクリプト ファイルのコマンド

レポート コマンドは、さまざまな SSMA コンソール アクティビティのパフォーマンスに関するレポートを生成します。

コマンド

generate-assessment-report

  • ソース データベースの評価レポートを生成します。

  • このコマンドを実行する前にソース データベース接続が実行されていない場合は、エラーが生成され、コンソール アプリケーションが終了します。

  • コマンドの実行中にソース データベース サーバーへの接続に失敗すると、コンソール アプリケーションも終了します。

スクリプト

  • conversion-report-folder: 評価レポートを格納できるフォルダーを指定します。 (オプションの属性)

  • object-name: 評価レポートの生成で考慮されるオブジェクトを指定します (個々のオブジェクト名またはグループ オブジェクト名を指定できます)。

  • object-type: は、オブジェクト名属性で指定されたオブジェクトの型を指定します (オブジェクト カテゴリが指定されている場合、オブジェクトの種類は 〗 categoryです)。

  • conversion-report-overwrite: 評価レポート フォルダーが既に存在する場合に上書きするかどうかを指定します。

    既定値: false (オプションの属性)

  • write-summary-report-to: 概要レポートが生成されるパスを指定します。

    フォルダー パスのみが指定されている場合は、AssessmentReport<n>.XML という名前のファイルが作成されます。 (オプションの属性)

    レポートの作成には、さらに 2 つのサブカテゴリがあります。

    • report-errorstrueまたは false、既定値を false (省略可能な属性)
    • verbosetrueまたは false、既定値を false (省略可能な属性)

構文の例:

<generate-assessment-report
   object-name="<object-name>"
   object-type="<object-category>"
   write-summary-report-to="<file>"   (optional)
   verbose="<true/false>"   (optional)
   report-errors="<true/false>"   (optional)
   assessment-report-folder="<folder-name>"   (optional)
   conversion-report-overwrite="<true/false>"   (optional)
/>

または

<generate-assessment-report
   conversion-report-folder="<folder-name>"   (optional)
   conversion-report-overwrite="<true/false>"   (optional)
>
      <metabase-object object-name="<object-name>"
         object-type="<object-category>"/>
</generate-assessment-report>

移行スクリプト ファイルのコマンド

移行コマンドは、ターゲット データベース スキーマをソース スキーマに変換し、データをターゲット サーバーに移行します。 移行コマンドの既定のコンソール出力設定は "Full" 出力レポートで、詳細なエラー 報告はなく、ソース オブジェクト ツリーのルート ノードの概要のみです。

コマンド

convert-schema

  • ソースからターゲット スキーマへのスキーマ変換を実行します。

  • このコマンドを実行する前にソースまたはターゲットのデータベース接続が実行されていない場合、またはコマンドの実行中にソースまたはターゲット データベース サーバーへの接続が失敗した場合は、エラーが生成され、コンソール アプリケーションが終了します。

スクリプト

  • conversion-report-folder: 評価レポートを格納できるフォルダーを指定します。 (オプションの属性)

  • object-name: スキーマの変換対象と見なされるソース オブジェクトを指定します (個々のオブジェクト名またはグループ オブジェクト名を指定できます)。

  • object-type: は、オブジェクト名属性で指定されたオブジェクトの型を指定します (オブジェクト カテゴリが指定されている場合、オブジェクトの種類は 〗 categoryです)。

  • conversion-report-overwrite: 評価レポート フォルダーが既に存在する場合に上書きするかどうかを指定します。

    既定値: false (オプションの属性)

  • write-summary-report-to: 概要レポートが生成されるパスを指定します。

    フォルダー パスのみが指定されている場合は、SchemaConversionReport<n>.XML という名前のファイルが作成されます。 (オプションの属性)

    レポートの作成には、さらに 2 つのサブカテゴリがあります。

    • report-errorstrueまたは false、既定値を false (省略可能な属性)

    • verbosetrueまたは false、既定値を false (省略可能な属性)

構文の例:

<convert-schema
   object-name="<object-name>"
   object-type="<object-category>"
   write-summary-report-to="<file-name/folder-name>"   (optional)
   verbose="<true/false>"   (optional)
   report-errors="<true/false>"   (optional)
   conversion-report-folder="<folder-name>"   (optional)
   conversion-report-overwrite="<true/false>"   (optional)
/>

または

<convert-schema
   conversion-report-folder="<folder-name>"   (optional)
   conversion-report-overwrite="<true/false>"   (optional)
      <metabase-object object-name="<object-name>"
         object-type="<object-category>"/>
</convert-schema>

コマンド

migrate-data: ソース データをターゲットに移行します。

スクリプト

  • conversion-report-folder: 評価レポートを格納できるフォルダーを指定します。 (オプションの属性)

  • object-name: データの移行を検討するソース オブジェクトを指定します (個々のオブジェクト名またはグループ オブジェクト名を持つことができます)。

  • object-type: は、オブジェクト名属性で指定されたオブジェクトの型を指定します (オブジェクト カテゴリが指定されている場合、オブジェクトの種類は 〗 categoryです)。

  • conversion-report-overwrite: 評価レポート フォルダーが既に存在する場合に上書きするかどうかを指定します。

    既定値: false (オプションの属性)

  • write-summary-report-to: 概要レポートが生成されるパスを指定します。

    フォルダー パスのみが指定されている場合は、名前 DataMigrationReport<n>.xml でファイルが作成されます。 (オプションの属性)

    レポートの作成には、さらに 2 つのサブカテゴリがあります。

    • report-errorstrueまたは false、既定値を false (省略可能な属性)
    • verbosetrueまたは false、既定値を false (省略可能な属性)

構文の例:

<migrate-data
   write-summary-report-to="<file-name/folder-name>"
   report-errors="<true/false>"
   verbose="<true/false>">
      <metabase-object object-name="<object-name>"/>
      <metabase-object object-name="<object-name>"/>
      <metabase-object object-name="<object-name>"/>
      <data-migration-connection
         source-use-last-used="true"/source-server="<server-unique-name>"
         target-use-last-used="true"/target-server="<server-unique-name>"/>
</migrate-data>

または

<migrate-data
   object-name="<object-name>"
   object-type="<object-category>"
   write-summary-report-to="<file-name/folder-name>"
   report-errors="<true/false>"
   verbose="<true/false>"/>

移行準備スクリプト ファイルのコマンド

移行準備コマンドは、ソース データベースとターゲット データベース間のスキーマ マッピングを開始します。

コマンド

  • map-schema: ソース データベースとターゲット スキーマのスキーマ マッピング。

スクリプト

  • source-schema: 移行するソース スキーマを指定します。
  • sql-server-schema: 移行するターゲット スキーマを指定します。

構文の例:

<map-schema
   source-schema="<source-schema>"
   sql-server-schema="<target-schema>"/>

コマンド

map-schema: ソース データベースとターゲット スキーマのスキーマ マッピング。

スクリプト

source-schema は、移行するソース スキーマを指定します。

sql-server-schema は、移行するターゲット スキーマを指定します。

構文の例:

<map-schema
   source-schema="<source-schema>"
   sql-server-schema="<target-schema>"/>

Manageability スクリプト ファイルのコマンド

管理容易性コマンドは、ターゲット データベース オブジェクトをソース データベースと同期するのに役立ちます。

移行コマンドの既定のコンソール出力設定は "Full" 出力レポートで、詳細なエラー 報告はなく、ソース オブジェクト ツリーのルート ノードの概要のみです。

コマンド

synchronize-target

  • ターゲット オブジェクトをターゲット データベースと同期します。

  • ソース データベースに対してこのコマンドを実行すると、エラーが発生します。

  • このコマンドを実行する前にターゲット データベース接続が実行されなかった場合、またはコマンドの実行中にターゲット データベース サーバーへの接続が失敗した場合は、エラーが生成され、コンソール アプリケーションが終了します。

スクリプト

  • object-name: ターゲット データベースと同期すると見なされるターゲット オブジェクトを指定します (個々のオブジェクト名またはグループ オブジェクト名を持つことができます)。

  • object-type: は、オブジェクト名属性で指定されたオブジェクトの型を指定します (オブジェクト カテゴリが指定されている場合、オブジェクトの種類は 〗 categoryです)。

  • on-error: 同期エラーを警告またはエラーとして指定するかどうかを指定します。 on-error で使用できるオプション:

    • report-total-as-warning
    • report-each-as-warning
    • fail-script
  • report-errors-to: 同期操作のエラー レポートの場所を指定します (省略可能な属性)

    フォルダー パスのみを指定すると、名前 TargetSynchronizationReport.xml でファイルが作成されます。

構文の例:

<synchronize-target
   object-name="<object-name>"
   on-error="<report-total-as-warning/
               report-each-as-warning/
               fail-script>"   (optional)
   report-errors-to="<file-name/folder-name>"   (optional)
/>

または

<synchronize-target
   object-name="<object-name>"
   object-type="<object-category>"/>

または

<synchronize-target>
   <metabase-object object-name="<object-name>"/>
   <metabase-object object-name="<object-name>"/>
   <metabase-object object-name="<object-name>"/>
</synchronize-target>

コマンド

refresh-from-database

  • データベースのソース オブジェクトを更新します。

  • このコマンドがターゲット データベースに対して実行されると、エラーが生成されます。

スクリプト

コマンド ライン パラメーターとして 1 つまたは複数のメタベース ノードが必要です。

  • object-name: ソース データベースからの更新と見なされるソース オブジェクトを指定します (個々のオブジェクト名またはグループ オブジェクト名を指定できます)。

  • object-type: オブジェクト名属性で指定されたオブジェクトの型を指定します (オブジェクト カテゴリが指定されている場合は、オブジェクトの種類が category指定されます)。

  • on-error: 更新エラーを警告またはエラーとして指定するかどうかを指定します。 on-error で使用できるオプション:

    • report-total-as-warning
    • report-each-as-warning
    • fail-script
  • report-errors-to: フォルダー パスのみを指定し、名前 SourceDBRefreshReport.xml でファイルを作成する場合に、更新操作 (省略可能な属性) のエラー レポートの場所を指定します。

構文の例:

<refresh-from-database
   object-name="<object-name>"
   on-error="<report-total-as-warning/
               report-each-as-warning/
               fail-script>"   (optional)
   report-errors-to="<file-name/folder-name>"   (optional)
/>

または

<refresh-from-database
   object-name="<object-name>"
   object-type="<object-category>"/>

または

<refresh-from-database>
   <metabase-object object-name="<object-name>"/>
</refresh-from-database>

スクリプト生成スクリプト ファイルのコマンド

スクリプト生成コマンドは、2 つのタスクを実行します。これらのタスクは、コンソール出力をスクリプト ファイルに保存するのに役立ち、指定したパラメーターに基づいてコンソールまたはファイルに T-SQL 出力を記録します。

コマンド

save-as-script: オブジェクトのスクリプトを、指定したファイルに保存します metabase=target。 これは同期コマンドの代わりに、スクリプトを取得し、ターゲット データベースで同じように実行します。

スクリプト

コマンド ライン パラメーターとして 1 つまたは複数のメタベース ノードが必要です。

  • object-name: スクリプトを保存するオブジェクトを指定します。 (個々のオブジェクト名またはグループ オブジェクト名を持つことができます)

  • object-type: は、オブジェクト名属性で指定されたオブジェクトの型を指定します (オブジェクト カテゴリが指定されている場合、オブジェクトの種類は 〗 categoryです)。

  • metabase: ソース メタベースかターゲット メタベースかを指定します。

  • destination: スクリプトを保存する必要があるパスまたはフォルダーを指定します。ファイル名が指定されていない場合は、ファイル名を形式 (object_name属性値) で指定します。

  • overwrite:true同じファイル名が存在する場合は上書きされます。 値 (true/false) を指定できます。

構文の例:

<save-as-script
   metabase="<source/target>"
   object-name="<object-name>"
   object-type="<object-category>"
   destination="<file/folder>"
   overwrite="<true/false>"   (optional)
/>

または

<save-as-script
   metabase="<source/target>"
   destination="<file/folder>"
      <metabase-object object-name="<object-name>"
         object-type="<object-category>"/>
</save-as-script>

コマンド

convert-sql-statement

  • context は、スキーマ名を指定します。

  • destination は、出力をファイルに格納するかどうかを指定します。

    この属性が指定されていない場合は、変換された T-SQL ステートメントがコンソールに表示されます。 (オプションの属性)

  • conversion-report-folder は、評価レポートを格納できるフォルダーを指定します。 (オプションの属性)

  • conversion-report-overwrite は、評価レポート フォルダーが既に存在する場合に上書きするかどうかを指定します。

    既定値: false (オプションの属性)

  • write-converted-sql-to は、変換された T-SQL が格納されるファイル (または) フォルダーのパスを指定します。 sql-files 属性と共にフォルダー パスが指定されている場合、各ソース ファイルには、指定したフォルダーの下に作成された対応するターゲット T-SQL ファイルがあります。 属性と共にフォルダー パスを sql 指定すると、変換された T-SQL は、指定したフォルダーの下に名前が付けられた Result.out ファイルに書き込まれます。

  • sql は、変換する Db2 SQL ステートメントを指定します。1 つ以上のステートメントを ";" を使用して区切ることができます。

  • sql-files は、T-SQL コードに変換する必要がある SQL ファイルのパスを指定します。

  • write-summary-report-to は、レポートが生成されるパスを指定します。 フォルダー パスのみが指定されている場合は、名前 ConvertSQLReport.xml でファイルが作成されます。 (オプションの属性)

    レポートの作成には、さらに 2 つのサブカテゴリがあります。

    • report-errors: true または false、既定の属性 false (省略可能な属性)
    • verbose: true または false、既定の属性 false (省略可能な属性)

スクリプト

コマンド ライン パラメーターとして 1 つまたは複数のメタベース ノードが必要です。

構文の例:

<convert-sql-statement
   context="<schema-name>"
   conversion-report-folder="<folder-name>"
   conversion-report-overwrite="<true/false>"
   write-summary-report-to="<file-name/folder-name>"   (optional)
   verbose="<true/false>"   (optional)
   report-errors="<true/false>"   (optional)
   destination="<stdout/file>"   (optional)
   file-name="<file-name>"
   sql="SELECT 1 FROM DUAL;">
   <output-window suppress-messages="<true/false>" />
</convert-sql-statement>

または

<convert-sql-statement
   context="<schema-name>"
   conversion-report-folder="<folder-name>"
   conversion-report-overwrite="<true/false>"
   write-summary-report-to="<file-name/folder-name>" (optional)
   verbose="<true/false>" (optional)
   report-errors="<true/false>"
   destination="<stdout/file>"   (optional)
   write-converted-sql-to="<file-name/folder-name>"
   sql-files="<folder-name>\*.sql" />

または

<convert-sql-statement
   context="<schema-name>"
   conversion-report-folder="<folder-name>"
   conversion-report-overwrite="<true/false>"
   sql-files="<folder-name>\*.sql" />