用于数据迁移的 MySQL 工具
MySQL 提供了几个客户端工具和实用程序,最常用的有:
- mysql - 一个交互式客户程序,可以对数据库发布查询并查看结果
- mysqldump - 此工具可以提取 MySQL 数据库中的架构和数据,并放到一个文件中
- mysqlimport - 此工具可以读取文件中的架构和数据,并放到一个 MySQL 数据库中
- mysqladmin - 此工具可以执行管理任务,比如创建数据库和删除数据库
- myODBC - 一个 32 位的开放式数据库连接软件,可提供 ODBC 级别 0(有级别 1 和级别 2 的功能)驱动程序,用于将 ODBC 识别的应用程序连接到 MySQL
SQL Server 的迁移工具
SQL Server 有一组丰富的工具和实用程序,可以简化从 MySQL 的迁移。SQL Server 2000 数据转换服务 (DTS) 是一组图形化工具和可编程对象,用于从各种来源提取、转换和合并数据到一个或多个目标。
数据转换服务的功能
Microsoft SQL Server 2000 中的数据转换服务提供了从不同数据源迁移数据的方法。DTS 可以用向导程序驱动,也可以用 DTS 程序包设计器创建。DTS 向导可以快速完成数据直接复制。程序包设计器允许开发人员用多种编程语言编写自定义转换脚本。DTS 工具允许您:
- 将数据从 MySQL 迁移到 SQL Server 2000
- 在迁移前显示数据
- 迁移数据表、数据类型,例如文本和日期
- 用 MySQL 数据表迁移 MySQL 数据库
- 生成并查看迁移报告
- 自定义数据表和默认的数据类型映射规则
- 解决冲突,比如 SQL Server 保留字冲突
- 删除并重命名 SQL Server 架构模型中的对象
- 迁移单个数据表数据
数据转换服务术语
以下是用于描述 DTS 的术语:
DTS 程序包是一个连接、DTS 任务、DTS 转换以及工作流约束的有组织的集合,可以在 DTS 设计器中用图形化方式或用编程方式汇编在一起。
DTS 任务是一个分立的功能集合,在程序包中单步执行。每个任务都定义一个数据移动和数据转换过程中要执行的工作项目,或者一个要执行的作业。
DTS 转换是数据到达目的地之前要对它应用的一个或多个功能或操作。
DTS 程序包工作流允许数据转换服务 (DTS) 逐步运行,由优先约束对 DTS 程序包中的工作项目进行排序。您可以在 DTS 设计器中用图形方式设计 DTS 数据包工作流,也可用编程方式设计。
元数据为 DTS 提供的功能可以将程序包元数据和数据沿袭信息保存到元数据服务,并链接那些信息类型。您可以存储程序包中引用的数据库的类别元数据,以及统计与数据集市或数据仓库中特定数据行有关的历史信息。
直接迁移
将数据从 MySQL 迁移到 Microsoft SQL Server 的最直接选项是安装 myODBC 支持并创建一个 DTS 程序包,用它们将数据库从 MySQL 导入并创建到 Microsoft SQL Server。
以下是设置 Microsoft SQL Server 以迁移 MySQL 数据库的逐步操作。
- 安装 MyODBC 支持,它可在以下网址下载 http://www.mysql.com/
- 安装过程中,系统会提供以下对话框:
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。
填写 ODBC 安装设置,使用如下信息:
Windows DSN 名称:
test
说明:
这是个测试数据库
MySQL 数据库:
test
服务器:
seawolf.microsoft.com
用户:
cgunn
密码:
my_password
端口:
3306
使用上述设置后,Windows DSN 名称在建立连接的计算机上必须唯一,服务器设置会完全验证域名(确保 DNS 或您提供的名称具备名称解析)或 IP 地址的有效性。 - 然后,执行 DTS 向导程序。从 Microsoft SQL Server 程序组中选择“Import and Export Data”,您会看到以下对话框。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。
单击 Next 到下一步。 - 现在提供必要的数据源选择信息,此信息应该是,ODBC 数据源为 MySQL,test 为 System DSN,然后提供安全证书、用户名和密码(见下一个对话框),然后单击 Next。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。 - 填写目标连接的详细信息,如下面的对话框所示,然后单击 Next。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。 - Specify Table Copy or Query 对话框让您在此选择数据源中的数据库对象选项,这里的数据源是 MySQL。在来源数据库中选择 Copy Table(s) 和 View(s)。另外需要说明的重要一点是,MySQL 不支持视图,所以选择此选项后,它将只复制数据表对象,单击 Next 继续。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。 - 下一个是 Select Source Tables and View 对话框,您可以在这个对话框中选择来源数据表和目标数据表。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。 - 单击椭圆按钮进行数据转换,如下面的 Column Mappings and Transformations 对话框所示。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。
在这个对话框中,来源数据类型已经与目标数据类型匹配,空数据字段已经被选中。完成后,单击 OK。
然后会出现 Save, Schedule, and Replicate Package 对话框,允许您安排迁移时间,避开使用高峰期,同时允许您将 DTS 程序包用不同格式保存到不同地方。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。 - DTS 保存程序包对话框对 DTS 程序包提供了两类密码。第一个密码是所有者密码,允许您保护程序包内的所有用户/密码信息,而用户密码用于执行程序包和防止对 DTS 程序包的任何未授权执行,如下所示,单击 Next 继续。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。 - 最后,Completing the DTS Import/Export Wizard 对话框会显示在 DTS 向导程序中所选选项的概要。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。
单击 Finish 开始数据迁移过程。 - Executing Package 对话框显示每项任务执行时的状态。绿色对钩表示任务成功完成。如果任务不能完成,有错误终止了进程,则会出现显示此错误的错误对话框。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。
现在您可以成功地将数据从 MySQL 迁移到 SQL Server 2000。
使用数据加载
您可以使用与 MySQL Server 一起提供的客户程序 mysqldump 将 MySQL 数据库的架构和数据输出到各种格式的 .sql/.txt 文件。DTS 可以使用 mysqldump 输出文件为大型数据表提供脱机数据加载能力。以下主题解释了数据加载过程:
- 生成 mysqldump 数据提取脚本
- 设置脚本传输
- 使用提取的脚本
生成 mysqldump 数据提取脚本
MySQL 有一个实用程序可以转储数据库和数据库集合进行备份,或者将数据传输到 SQL Server。
mysqldump 实用程序提供了创建数据库 SQL 脚本的能力。
mysqldump 最简短的语法是:
Shell> mysqldump [OPTIONS] database [tables]
本白皮书后面有 mysqldump 的