执行 SSMA 控制台 (MySQLToSQL)

Microsoft提供了一组可靠的脚本文件命令来执行和控制 SSMA 活动。

控制台应用程序使用本部分中枚举的某些标准脚本文件命令。

项目脚本文件命令

命令

创建新项目:
创建新的 SSMA 项目。

Project 命令处理创建项目、打开、保存和退出项目。

脚本

  1. project-folder:指示创建项目的文件夹。

  2. project-name:指示项目的名称。 {string}

  3. overwrite-if-exists:可选属性。 指示是否应覆盖现有项目。 {boolean}

  4. project-type:可选属性。 指示项目类型,即“sql-server-2005”项目或“sql-server-2008”项目或“sql-server-2012”或“sql-server-2014”项目或“sql-azure”项目。 默认值为“sql-server-2008”。

语法示例:

<create-new-project  
  
   project-folder="<project-folder>"  
  
   project-name="<project-name>"  
  
   overwrite-if-exists="<true/false>"   (optional)  
  
   project-type=="<sql-server-2008 | sql-server-2005 | sql-server-2012 | sql-server-2014 | sql-azure>"   (optional)  
  
/>  

默认情况下,属性“overwrite-if-exists”为 false

默认情况下,属性“ project-type”为 sql-server-2008

命令

open-project:
打开现有项目。

脚本

  1. project-folder 指示项目创建的文件夹。 如果指定的文件夹不存在,该命令将失败。 {string}

  2. project-name 指示项目的名称。 如果指定的项目不存在,该命令将失败。 {string}

语法示例:

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

重要

SSMA For MySQL 控制台应用程序支持向后兼容性。 你将能够打开由以前版本的 SSMA 创建的项目。

命令

save-project:保存迁移项目。

脚本

语法示例:

<save-project/>  

命令

关闭项目
:关闭迁移项目。

脚本

语法示例:

<save-project/>  

命令

关闭项目
:关闭迁移项目。

脚本

语法示例:

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

属性“if-modified”是可选的,默认情况下 忽略

数据库连接脚本文件命令

数据库连接命令可帮助连接到数据库。

  1. 控制台不支持 UI 的 “浏览 ”功能。

  2. 连接到 SQL Azure 时, Windows 身份验证端口 参数不适用。

  3. 有关“创建脚本文件”的详细信息,请参阅创建脚本文件(MySQLToSQL)。

命令

连接源数据库

  • 执行与源数据库的连接,并加载源数据库的高级别元数据,但不加载所有元数据。

  • 如果无法建立与源的连接,则会生成错误,控制台应用程序将停止进一步执行

脚本

从服务器连接文件或脚本文件的服务器节中为每个连接定义的名称属性检索服务器定义。

语法示例:

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

命令

强制载入源/目标数据库

  • 加载源元数据。

  • 可用于脱机处理迁移项目。

  • 如果无法建立与源/目标的连接,则会生成错误,控制台应用程序将停止进一步执行

脚本

需要一个或多个元数据库节点作为命令行参数。

语法示例:

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

命令

重新连接源数据库

  1. 重新连接到源数据库,但与 connect-source-database 命令不同,不会加载任何元数据。

  2. 如果无法建立与源的连接,则会生成错误,控制台应用程序将停止进一步执行。

脚本

语法示例:

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

命令

连接目标数据库

  1. 连接到目标 SQL Server 或 Azure SQL 数据库,并仅加载目标数据库的高级别元数据,而不是完全加载。

  2. 如果无法建立与目标的连接,则会生成错误,控制台应用程序将停止进一步执行。

脚本

从服务器连接文件或脚本文件的服务器节中为每个连接定义的名称属性检索服务器定义

语法示例:

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

命令

重新连接目标数据库

  1. 重新连接到目标数据库,但不会加载任何元数据,这与 connect-target-database 命令不同。

  2. 如果无法建立与目标的连接,则会生成错误,控制台应用程序将停止进一步执行。

脚本

语法示例:

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

报表脚本文件命令

“报表”命令生成有关各种 SSMA 控制台活动性能的报告。

命令

生成评估报告

  1. 针对源数据库生成评估报告。

  2. 如果在执行此命令之前未执行源数据库连接,则会生成错误,控制台应用程序会退出。

  3. 在命令执行期间未能连接到源数据库服务器,也会导致终止控制台应用程序。

脚本

  1. assessment-report-folder: 指定存储评估报告的文件夹。(可选属性)

  2. object-name: 指定用于评估报表生成的对象(它可以具有单个对象名称或组对象名称)。

  3. object-type: 指定对象名称属性中指定的对象的类型(如果指定对象类别,则对象类型将为“category”)。

  4. assessment-report-overwrite: 指定是否覆盖评估报告文件夹(如果已存在)。

    默认值: false。 (可选属性)

  5. write-summary-report-to: 指定将生成摘要报告的路径。

    如果只提到文件夹路径,则按名称 AssessmentReport<n>.XML 创建文件。 (可选属性)

    报表创建有两个进一步的子类别:

    • report-errors (=“true/false”,默认值为“false”(可选属性)

    • verbose (=“true/false”,默认值为“false”(可选属性)

语法示例:

<generate-assessment-report  
  
   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)  
  
/>  

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

迁移脚本文件命令

迁移命令会将目标数据库架构转换为源架构,并将数据迁移到目标服务器。

迁移命令的默认控制台输出设置为“全面”输出报告,不包括详细的错误报告:仅在源对象树的根节点提供摘要。

命令

convert-schema

  1. 执行从源到目标架构的架构转换。

  2. 如果在执行此命令之前未执行源或目标数据库连接,或者与源或目标数据库服务器的连接在执行命令期间失败,则会生成错误,控制台应用程序退出。

脚本

  1. conversion-report-folder: 指定存储评估报告的文件夹。(可选属性)

  2. object-name: 指定用于转换架构的对象(它可以具有单个对象名称或组对象名称)。

  3. object-type: 指定对象名称属性中指定的对象的类型(如果指定对象类别,则对象类型将为“category”)。

  4. conversion-report-overwrite: 指定是否覆盖评估报告文件夹(如果已存在)。

    默认值: false。 (可选属性)

  5. write-summary-report-to: 指定将生成摘要报告的路径。

    如果只提到文件夹路径,则会创建名为SchemaConversionReport<n>.XML的文件。 (可选属性)

    摘要报表创建有两个进一步的子类别:

    • report-errors (=“true/false”,默认值为“false”(可选属性)

    • verbose (=“true/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-names>"  
  
         object-type="<object-category>"/>  
  
</convert-schema>  

命令

迁移数据

  1. 将源数据迁移到目标。

脚本

  1. object-name: 指定考虑迁移数据的源对象(它可以具有单个对象名称或组对象名称)。

  2. object-type: 指定对象名称属性中指定的对象的类型(如果指定对象类别,则对象类型将为“category”)。

  3. write-summary-report-to: 指定将生成摘要报告的路径。

    如果只提到文件夹路径,则会创建命名为DataMigrationReport<n>.XML的文件。 (可选属性)

    报表创建有两个进一步的子类别:

    • report-errors (=“true/false”,默认值为“false”(可选属性)

    • verbose (=“true/false”,默认值为“false”(可选属性)

语法示例:

<migrate-data  
  
   write-summary-report-to="<file-name/folder-name>"  
  
   report-errors="true" verbose="true">  
  
      <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" verbose="true"/>  

迁移准备脚本文件命令

迁移准备命令启动源数据库和目标数据库之间的架构映射。

命令

映射模式

将源数据库模式映射到目标模式。

脚本

  1. source-schema 指定要迁移的源架构。

  2. sql-server-schema 指定要在其中迁移的目标架构。

语法示例:

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

可管理性脚本文件命令

可管理性命令有助于将目标数据库对象与源数据库同步。

注释

迁移命令的默认控制台输出设置为“全面”输出报告,不包括详细的错误报告:仅在源对象树的根节点提供摘要。

命令

同步目标

  1. 将目标对象与目标数据库同步。

  2. 如果针对源数据库执行此命令,则遇到错误。

  3. 如果在执行此命令之前未执行目标数据库连接,或者在执行命令期间与目标数据库服务器的连接失败,则会生成错误,控制台应用程序将退出。

脚本

  1. object-name: 指定考虑与目标数据库同步的对象(它可以具有单个对象名称或组对象名称)。

  2. object-type: 指定对象名称属性中指定的对象的类型(如果指定对象类别,则对象类型将为“category”)。

  3. on-error: 指定是将同步错误指定为警告还是错误。 处理错误时可用的选项:

    • 将总数报告为警告

    • 将每个报告为警告

    • 失败脚本

  4. 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>"   (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>  

命令

从数据库刷新

  1. 从数据库刷新源对象。

  2. 如果针对目标数据库执行此命令,则会生成错误。

脚本

  1. object-name: 指定用于从源数据库刷新的源对象(它可以具有单个对象名称或组对象名称)。

  2. object-type: 指定在对象名称属性中指定的对象的类型(如果指定对象类别,则对象类型将为“category”)。

  3. on-error: 指定是将同步错误指定为警告还是错误。 处理错误时可用的选项:

    • 将总数报告为警告

    • 将每个报告为警告

    • 失败脚本

  4. 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>"   (optional)  
  
/>  

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

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

脚本生成脚本文件命令

脚本生成命令执行双重任务:它们帮助将控制台输出保存在脚本文件中;并根据指定的参数将 T-SQL 输出记录到控制台或文件。

命令

另存为脚本

用于将对象的脚本保存到 metabase=target 时提到的文件中,这是同步命令的替代方法,其中我们获取脚本并在目标数据库上执行相同作。

脚本

需要一个或多个元数据库节点作为命令行参数。

  1. object-name: 指定要保存脚本的对象。 (它可以具有单个对象名称或组对象名称)

  2. object-type: 指定对象名称属性中指定的对象的类型(如果指定对象类别,则对象类型将为“category”)。

  3. metabase: 指定它是源元数据库还是目标元数据库。

  4. destination: 指定脚本必须保存的路径或文件夹,如果未指定文件名,则文件名将采用格式(object_name 属性值).out。

  5. overwrite: 如果同一文件名已存在且为 true,则覆盖。 它的值可以是(true/false)。

语法示例:

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

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

命令

convert-sql-statement

  1. context 指定架构名称。

  2. destination 指定输出是否应存储在文件中。

    如果未指定此属性,则会在控制台上显示转换后的 T-SQL 语句。 (可选属性)

  3. conversion-report-folder 指定存储评估报告的文件夹。(可选属性)

  4. conversion-report-overwrite 指定是否覆盖评估报告文件夹(如果已存在)。

    默认值: false。 (可选属性)

  5. write-converted-sql-to 指定要存储转换的 T-SQL 的文件(或)文件夹路径。 指定文件夹路径以及 sql-files 该属性时,每个源文件都将在指定文件夹下创建相应的目标 T-SQL 文件。 指定文件夹路径和 sql 属性时,转换后的 T-SQL 将写入指定文件夹下的名为 Result.out 的文件。

  6. sql 指定要转换的 MySQL sql 语句,可以使用“;”分隔一个或多个语句

  7. sql-files 指定必须转换为 T-SQL 代码的 sql 文件的路径。

  8. write-summary-report-to 指定将生成摘要报告的路径。 如果只提及文件夹路径,则按名称 创建文件ConvertSQLReport.XML 。 (可选属性)

    报表创建有 2 个进一步的子类别,即:

    • report-errors(=“true/false”,默认值为“false”)(可选属性)。

    • verbose(=“true/false”,默认为“false”(可选属性)).

脚本

需要一个或多个元数据库节点作为命令行参数。

语法示例:

<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)  
  
   write-converted-sql-to="<file-name/folder-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>"   (optional)  
  
   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"  
  
/>  

下一步

有关命令行选项的信息,请参阅 SSMA 控制台(MySQLToSQL)中的命令行选项

有关示例控制台脚本文件的详细信息,请参阅 使用示例控制台脚本文件 (MySQLToSQL)

下一步取决于项目要求:

  1. 有关指定密码或导出/导入密码,请参阅“管理密码”(MySQLToSQL)。

  2. 有关生成报表,请参阅生成报告(MySQLToSQL)。

  3. 有关控制台中问题的故障排除,请参阅故障排除(MySQLToSQL)。