创建脚本文件 (Db2ToSQL)

必须先创建脚本文件,然后才能启动SQL Server 迁移助手(SSMA)控制台应用程序。 如有必要,还可以创建变量值文件和服务器连接文件。

脚本文件可以分为三个部分:

部分 说明
config 设置控制台应用程序的配置参数。
servers 设置源/目标服务器定义。 也可以位于单独的服务器连接文件中。
script-commands 执行 SSMA 工作流命令。

本文详细介绍了每个部分。

配置 SSMA 控制台应用程序设置

脚本的配置显示在控制台脚本文件中。

如果在配置节点中指定了任何元素,则会将其设置为全局设置。 换句话说,它们适用于所有脚本命令。 如果要重写全局设置,还可以在 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 指示将上次使用的目标服务器用于进行数据迁移。 还可以使用属性源服务器或目标服务器来指定服务器(源或目标服务器)。

    一次只能设置其中一个属性:

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

    <migrate-data>
      <data-migration-connection   source-server="<source-server-unique-name>"
                                   target-use-last-used="true"/>
    </migrate-data>
    
  3. 用户输入弹出窗口:允许在从数据库加载对象时处理错误。 提供输入模式,如果出现错误,控制台将按指定方式继续。

    “模式” 说明
    ask-user 提示你继续(yes)或出错(no)。
    error(默认值) 控制台显示错误并停止执行。
    continue 控制台继续执行。

    示例:

    <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. 重新连接提供程序:允许设置连接失败时的重新连接设置。 可以同时为源服务器和目标服务器设置此属性。

    重新连接模式 说明
    reconnect-to-last-used-server 如果连接未处于活动状态,它将尝试重新连接到最后一个服务器,最多使用五次。
    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-modefalse。 如果 true出现异常,则为无法满足先决条件而生成异常。

    示例:

    <output-providers>
      <prerequisites strict-mode="<true/false>"/>
    </output-providers>
    
  7. 停止操作:在中间操作期间,如果要停止操作,则可以使用 Ctrl+C 热键。 SSMA 控制台应用程序的 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>
    

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

    <...All commands...>
      <log-verbosity level="fatal-error/error/warning/info/debug"/>
    </...All commands...>
    
  10. 替代加密密码:如果 true服务器连接文件或脚本文件中的服务器定义部分指定的明文密码,则替代存储在受保护存储中的加密密码(如果存在)。 如果未在明文中指定密码,系统会提示输入密码。

    出现以下两种情况:

    1. 如果重写选项为 false,则搜索顺序为“受保护的存储 > 脚本文件 > 服务器连接文件 > 提示用户”。

    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>

产品目录的示例控制台脚本文件夹中提供了由三个脚本文件(用于执行各种方案)、变量值文件和服务器连接文件的模板:

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

为了保持相关性而更改其中显示的参数之后,可以执行模板(文件)。

可以在执行 SSMA 控制台中找到 脚本命令的完整列表

脚本文件验证

可以根据文件夹中可用的Schemas架构定义文件验证脚本文件O2SSConsoleScriptSchema.xsd