次の方法で共有


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

SSMA コンソール アプリケーションを起動する前の最初の手順は、スクリプト ファイルを作成し、必要に応じて変数値ファイルとサーバー接続ファイルを作成することです。

スクリプト ファイルは、次の 3 つのセクションに分割できます。..,:

  1. config: ユーザーがコンソール アプリケーションの構成パラメーターを設定できるようにします。

  2. サーバー: ユーザーがソース/ターゲット サーバー定義を設定できるようにします。 これは、別のサーバー接続ファイルに含めることもできます。

  3. script-commands: ユーザーが SSMA ワークフロー コマンドを実行できるようにします。

各セクションについて、以下で詳しく説明します。

MySQL コンソール設定の構成

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

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

ユーザーが構成できるオプションは次のとおりです。

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

    • 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>  
    

    または

    <...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_servername"

    • target-use-last-used="true" (既定) または target-server="target_servername"

    例:

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

    または

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

    モードは次のとおりです。

    • ask-user - 続行 ('はい') またはエラーアウト ('no') をユーザーに求めます。

    • エラー- コンソールにエラーが表示され、実行が停止します。

    • 続ける- コンソールが実行を続行します。

    既定のモードは エラーです。

    例:

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

    または

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

    再接続モードは次のとおりです。

    • 最後に使用されたサーバーへの再接続: 接続がアクティブでない場合は、最大で 5 回使用された最後のサーバーへの再接続を試みます。

    • generate-an-error: 接続がアクティブでない場合は、エラーが生成されます。

    既定のモードは 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>  
    

    または

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

    または

    <!--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>  
    

    または

    <convert-schema object-name="<object-name>">  
    
      <object-overwrite action="<error/skip/overwrite/ask-user>"/>  
    
    </convert-schema>  
    
  6. 失敗した前提条件プロバイダー: これにより、ユーザーはコマンドの処理に必要な前提条件を処理できます。 既定では、strict モードは 'false' です。 'true' に設定すると、前提条件を満たさない場合に例外が生成されます。

    例:

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

    ユーザーがすぐに実行を停止する場合は、SSMA コンソール アプリケーションを突然終了するために 、"Ctrl + C" ホットキーをもう一度押すことができます

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

    • オフ

    • every-1%

    • every-2%

    • すべて-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>  
    

    または

    <...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 の [すべてのカテゴリ] オプションに対応します。 既定では、ログの詳細レベルは "error" です。

    ロガー レベルのオプションは次のとおりです。

    • 致命的なエラー: 致命的なエラー メッセージのみがログに記録されます。

    • error: エラーと致命的なエラー メッセージのみがログに記録されます。

    • 警告: デバッグ メッセージと情報メッセージを除くすべてのレベルがログに記録されます。

    • info: デバッグ メッセージを除くすべてのレベルがログに記録されます。

    • debug: すべてのレベルのメッセージがログに記録される。

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

    例:

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

    または

    <...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. override オプションが true の場合、検索の順序は Script File->Server Connection File->Prompt User になります。

    例:

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

構成不可能なオプションは次のとおりです。

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

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

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

スクリプト コマンド

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

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

スクリプト ファイル内のすべてのコマンドが正常に実行されると、SSMA コンソール アプリケーションが終了し、ユーザーにコントロールが返されます。 スクリプトファイルの内容は、基本的に静的であり、変数情報は変数値ファイルに入っているか、スクリプトファイル内の変数値用の別セクションに含まれています。

例:

<!--Sample of script file commands -->  
  
<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 コンソールの実行 (MySQLToSQL) を参照してください。

スクリプト ファイルの検証

ユーザーは、'Schemas' フォルダーにあるスキーマ定義ファイル 'M2SSConsoleScriptSchema.xsd' に対してスクリプト ファイルを簡単に検証できます。

次の手順

コンソールを操作する次の手順は、 変数値ファイルの作成 (MySQLToSQL) です

こちらもご覧ください

変数値ファイルの作成 (MySQLToSQL)