スクリプト ファイルの作成 (Db2ToSQL)

SQL Server Migration Assistant (SSMA) コンソール アプリケーションを起動する前に、スクリプト ファイルを作成する必要があります。 必要に応じて、変数値ファイルとサーバー接続ファイルを作成することもできます。

スクリプト ファイルは、次の 3 つのセクションに分けることができます。

セクション 説明
config コンソール アプリケーションの構成パラメーターを設定します。
servers ソース/ターゲット サーバー定義を設定します。 別のサーバー接続ファイルに含めることもできます。
script-commands SSMA ワークフロー コマンドを実行します。

各セクションについては、この記事で詳しく説明します。

SSMA コンソール アプリケーションの設定を構成する

スクリプトの構成は、コンソール スクリプト ファイルに表示されます。

構成ノードでいずれかの要素が指定されている場合は、グローバル設定として設定されます。 つまり、すべてのスクリプト コマンドに適用されます。 グローバル設定をオーバーライドする場合は、script-command セクションの各コマンド内でこれらの構成要素を設定することもできます。

ユーザーが構成可能なオプションには以下のものが含まれます。

  1. 出力ウィンドウ プロバイダー: 属性が設定trueされている場合suppress-messages、コマンド固有のメッセージはコンソールに表示されません。

    属性 説明
    destination 出力をファイルまたは stdout に出力する必要があるかどうかを指定します。 既定では false です。
    file-name (任意) ファイルのパス。
    suppress-messages コンソール上のメッセージを非表示にします。 既定では false です。

    例:

    <output-providers>
      <output-window
        suppress-messages="<true/false>"   (optional)
        destination="<file/stdout>"        (optional)
        file-name="<file-name>"            (optional)
       />
    </output-providers>
    

    or

    <...All commands...>
      <output-window
         suppress-messages="<true/false>"   (optional)
         destination="<file/stdout>"        (optional)
         file-name="<file-name>"            (optional)
       />
    </...All commands...>
    
  2. データ移行接続プロバイダー: データ移行で考慮するソース/ターゲット サーバーを指定します。 Source-use-last-used は、最後に使用されたソース サーバーがデータ移行に使用されることを示します。 同様に、target-use-last-used は、最後に使用されたターゲット サーバーがデータ移行に使用されることを示します。 また、ソース サーバーまたはターゲット サーバーの属性を使用して、サーバー (ソースまたはターゲット) を指定することもできます。

    一度に設定できる属性は、次のうち 1 つだけです。

    • source-use-last-used="true" (既定値) または source-server="<source-server-unique-name>"
    • target-use-last-used="true" (既定値) または target-server="<target-server-unique-name>"

    例:

    <output-providers>
      <data-migration-connection   source-use-last-used="true"
                                   target-server="<target-server-unique-name>"/>
    </output-providers>
    

    or

    <migrate-data>
      <data-migration-connection   source-server="<source-server-unique-name>"
                                   target-use-last-used="true"/>
    </migrate-data>
    
  3. ユーザー入力ポップアップ: オブジェクトがデータベースから読み込まれるときに、エラーの処理を許可します。 入力モードを指定すると、エラーが発生した場合、コンソールは指定したとおりに続行されます。

    モード 説明
    ask-user 続行 () またはエラーアウト (yesno) を求めるメッセージが表示されます。
    error (既定) コンソールにエラーが表示され、実行が停止します。
    continue コンソールが実行を続行します。

    例:

    <output-providers>
      <user-input-popup mode="<ask-user/continue/error>"/>
    </output-providers>
    

    or

    <!-- Connect to target database -->
    <connect-target-database server="<target-server-unique-name>">
      <user-input-popup mode="<ask-user/continue/error>"/>
    </connect-target-database>
    
  4. 再接続プロバイダー: 接続エラーが発生した場合に再接続設定を設定できます。 これは、ソース サーバーとターゲット サーバーの両方に設定できます。

    再接続モード 説明
    reconnect-to-last-used-server 接続がアクティブでない場合は、最大で 5 回使用された最後のサーバーへの再接続が試みられます。
    generate-an-error (既定) 接続がアクティブでない場合は、エラーが生成されます。

    例:

    <output-providers>
      <reconnect-manager  on-source-reconnect="<reconnect-to-last-used-server/generate-an-error>"
                          on-target-reconnect="<reconnect-to-last-used-server/generate-an-error>"/>
    </output-providers>
    

    or

    <!--synchronization-->
    <synchronize-target>
      <reconnect-manager on-target-reconnect="reconnect-to-last-used-server"/>
    </synchronize-target>
    

    or

    <!--data migration-->
    <migrate-data server="<target-server-unique-name>">
      <reconnect-manager
        on-source-reconnect="reconnect-to-last-used-server"
        on-target-reconnect="generate-an-error"/>
    </migrate-data>
    
  5. コンバーター上書きプロバイダー: ターゲット メタベースに既に存在するオブジェクトを処理できます。

    アクション 説明
    error コンソールにエラーが表示され、実行が停止します。
    overwrite (既定) 既存のオブジェクト値を上書きします。
    skip コンソールは、データベースに既に存在するオブジェクトをスキップします。
    ask-user 入力を求められます (yes / no)。

    例:

    <output-providers>
      <object-overwrite action="<error/skip/overwrite/ask-user>"/>
    </output-providers>
    

    or

    <convert-schema object-name="<object-name>">
      <object-overwrite action="<error/skip/overwrite/ask-user>"/>
    </convert-schema>
    
  6. 失敗した前提条件プロバイダー: コマンドの処理に必要なすべての前提条件を処理できます。 既定では、strict-modefalse です。 の場合 true、前提条件を満たさなければ例外が生成されます。

    例:

    <output-providers>
      <prerequisites strict-mode="<true/false>"/>
    </output-providers>
    
  7. 操作の停止: 操作を停止する場合は、操作の途中で Ctrl+ C ホットキーを使用できます。 SSMA for SSMA コンソール アプリケーションは、操作の完了を待機し、コンソールの実行を終了します。

    実行をすぐに停止する場合は、CTRL+C ホットキーをもう一度押して SSMA コンソール アプリケーションを終了できます。

  8. 進行状況プロバイダー: 各コンソール コマンドの進行状況を通知します。 既定で無効になっています。 progress-reporting 属性は、次の要素で構成されます。

    • off
    • every-1%
    • every-2%
    • every-5%
    • every-10%
    • every-20%

    例:

    <output-providers>
      progress-reporting   enable="<true/false>"            (optional)
                           report-messages="<true/false>"   (optional)
                           report-progress="every-1%/every-2%/every-5%/every-10%/every-20%/off" (optional)/>
    </output-providers>
    

    or

    <...All commands...>
      <progress-reporting
        enable="<true/false>"              (optional)
        report-messages="<true/false>"     (optional)
        report-progress="every-1%/every-2%/every-5%/every-10%/every-20%/off"     (optional)/>
    </...All commands...>
    
  9. ロガーの詳細度: ログの詳細レベルを設定します。 これは、UI の [ すべてのカテゴリ] オプションに対応します。

    ロガー レベル 説明
    fatal-error 致命的なエラー メッセージのみがログに記録されます。
    error (既定) エラー メッセージと致命的なエラー メッセージのみがログに記録されます。
    warning デバッグ メッセージと情報メッセージを除くすべてのレベルがログに記録されます。
    info デバッグ メッセージを除くすべてのレベルがログに記録されます。
    debug ログに記録されたメッセージのすべてのレベル。

    必須メッセージは、任意のレベルでログに記録されます。

    例:

    <output-providers>
      <log-verbosity level="fatal-error/error/warning/info/debug"/>
    </output-providers>
    

    or

    <...All commands...>
      <log-verbosity level="fatal-error/error/warning/info/debug"/>
    </...All commands...>
    
  10. 暗号化されたパスワードのオーバーライド: サーバー接続ファイルまたはスクリプト ファイルのサーバー定義セクションで指定されたクリア テキスト パスワードの場合 trueは、保護されたストレージに格納されている暗号化されたパスワードが存在する場合はオーバーライドされます。 クリア テキストでパスワードが指定されていない場合は、パスワードの入力を求められます。

    ここでは、次の 2 つのケースが発生します。

    1. override オプションが false の場合、検索の順序は Protected Storage > Script File > Server Connection File > Prompt User です。

    2. オーバーライド オプションが true の場合、検索の順序はスクリプト ファイル > サーバー接続ファイル > プロンプト ユーザーです。

    例:

    <output-providers>
      <encrypted-password override="<true/false>"/>
    </output-providers>
    

構成できないオプションは次のとおりです。

  • 再接続の最大試行回数: ネットワーク障害が原因で確立された接続がタイムアウトまたは中断した場合、サーバーを再接続する必要があります。 再接続の試行は最大 5 再試行回数まで許可され、その後、コンソールは自動的に再接続を実行します。 自動再接続機能を使用すると、スクリプトを再実行する手間が軽減されます。

サーバー接続パラメーター

サーバー接続パラメーターは、スクリプト ファイルまたはサーバー接続ファイルで定義できます。 詳細については、サーバー接続ファイルの作成を参照してください

スクリプト コマンド

スクリプト ファイルには、一連の移行ワークフロー コマンドが XML 形式で含まれています。 SSMA コンソール アプリケーションは、スクリプト ファイルに表示されるコマンドの順序で移行を処理します。

たとえば、Db2 データベース内の特定のテーブルの一般的なデータ移行は、スキーマ>テーブルの階層に従います。

スクリプト ファイル内のすべてのコマンドが正常に実行されると、SSMA コンソール アプリケーションが終了します。 スクリプト ファイルの内容は、変数値ファイルまたは変数値のスクリプト ファイル内の別のセクションに含まれる変数情報を使用して、多かれ少なかれ静的です。

例:

スクリプト ファイル コマンドのサンプルを次に示します。

<ssma-script-file>
  <script-commands>
    <create-new-project project-folder="<project-folder>"
                        project-name="<project-name>"
                        overwrite-if-exists="<true/false>"/>
    <connect-source-database server="<source-server-unique-name>"/>
    <save-project/>
    <close-project/>
  </script-commands>
</ssma-script-file>

3 つのスクリプト ファイル (さまざまなシナリオの実行用)、変数値ファイル、およびサーバー接続ファイルで構成されるテンプレートは、製品ディレクトリのサンプル コンソール スクリプト フォルダーに用意されています。

  • AssessmentReportGenerationSample.xml
  • ConversionAndDataMigrationSample.xml
  • SqlStatementConversionSample.xml
  • VariableValueFileSample.xml
  • ServersConnectionFileSample.xml

関連のためにそこに表示されるパラメータを変更した後、テンプレート(ファイル)を実行することができます。

スクリプト コマンドの完全な一覧については、SSMA コンソールの実行に 関するセクションを参照してください。

スクリプト ファイルの妥当性確認

このスクリプト ファイルは、フォルダー内のスキーマ定義ファイル O2SSConsoleScriptSchema.xsdSchemas 対して検証できます。