创建脚本文件 (SybaseToSQL)

启动 SSMA 控制台应用程序前的第一步是创建脚本文件,如果需要创建变量值文件和服务器连接文件。

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

  1. 配置: 使用户能够设置控制台应用程序的配置参数。

  2. 服务器: 使用户能够设置源/目标服务器定义。 这也可以位于单独的服务器连接文件中。

  3. script-commands: 使用户能够执行 SSMA 工作流命令。

下面详细介绍了每个部分:

配置 Sybase 控制台设置

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

如果在配置节点中指定了任何元素,则它们将设置为全局设置,即它们适用于所有脚本命令。 如果用户想要重写全局设置,还可以在 script-command 节中的每个命令中设置这些配置元素。

用户可配置的选项包括:

  1. 输出窗口提供程序: 如果禁止消息属性设置为“true”,则命令特定的消息不会显示在主机上。 下面提供了属性说明:

    • 目标:指定输出是否需要打印到文件或 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 指示上次使用的源服务器用于数据迁移。 同样,目标-use-last-used 指示上次使用的目标服务器用于数据迁移。 用户还可以使用属性 source-server 或 target-server 指定服务器 (源或目标) 。

    只能使用一个或另一个指定属性,例如:

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

    or

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

    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. 转换器覆盖提供程序: 这使用户能够处理目标元数据库上已存在的对象。 可能的操作包括:

    • 错误:控制台显示错误并停止执行。

    • 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. 失败的先决条件提供程序: 这使用户能够处理处理命令所需的任何先决条件。 默认情况下,严格模式为“false”。 如果设置为“true”,则会生成异常以满足先决条件。

    示例:

    <output-providers>  
    
      <prerequisites strict-mode="<true/false>"/>  
    
    </output-providers>  
    
  7. 停止操作: 在中操作期间,如果用户想要停止操作,则可以使用 “Ctrl+C” 热键。 SSMA for Sybase 控制台将等待操作完成并终止控制台执行。

    如果用户希望立即停止执行,则可以再次按下 “Ctrl+C” 热键,以便突然终止 SSMA 控制台应用程序

  8. 进度提供程序: 通知每个控制台命令的进度。 此项已默认禁用。 进度报告属性包括:

    • 关闭

    • 每 1%

    • 每 2%

    • 每 5%

    • 每 10%

    • 每 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 中的所有类别选项相对应。 默认情况下,日志详细级别为“error”。

    记录器级选项包括:

    • 致命错误:仅记录致命错误消息。

    • error:仅记录错误和致命错误消息。

    • 警告:记录除调试和信息消息之外的所有级别。

    • 信息:记录除调试消息之外的所有级别。

    • 调试:记录的所有消息级别。

    备注

    强制消息记录在任何级别。

    示例:

    <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”,则服务器连接文件的服务器定义部分或脚本文件中指定的明文密码将覆盖存储在受保护存储中的加密密码(如果存在)。 如果未在明文中指定任何密码,系统会提示用户输入密码。

    出现以下两种情况:

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

    2. 如果替代选项 为 true,则搜索顺序将为脚本文件服务器>连接文件>提示用户。

    示例:

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

不可配置的选项为:

  • 最大重新连接尝试次数: 当建立的连接因网络故障而超时或中断时,需要重新连接服务器。 允许重新连接尝试最多 5 次重试,之后控制台会自动执行重新连接。 自动重新连接功能可减少重新运行脚本的努力。

服务器连接参数

可以在脚本文件或服务器连接文件中定义服务器连接参数。 有关更多详细信息,请参阅“ 创建服务器连接文件 (SybaseToSQL) ”部分

脚本命令

脚本文件包含 XML 格式的迁移工作流命令序列。 SSMA 控制台应用程序按照脚本文件中出现的命令的顺序处理迁移。

例如,Sybase 数据库中特定表的典型数据迁移遵循:Database-Schema> ->Table 的层次结构。

成功执行脚本文件中的所有命令时,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 控制台 (SybaseToSQL) 中找到脚本命令的完整列表

脚本文件验证

用户可以根据“Schemas”文件夹中提供的架构定义文件 “S2SSConsoleScriptSchema.xsd” 轻松验证其/她的脚本文件

下一步

运行控制台的下一步是 创建变量值文件 (SybaseToSQL)

另请参阅

创建变量值文件 (SybaseToSQL)