引言
本指南解释如何利用几个内置的 SQL Server 工具和实用程序将 MySQL 迁移到 Microsoft® SQL Server™ 2000。它还提供了如何修改 MySQL 应用程序,使之与 SQL Server 2000 一起工作的指南。 如果您购买了 MySQL 应用程序,您可以继续让这项投资发挥效用,同时又为应用程序结构提供了 SQL Server 2000 的高级功能。
读者对象
本白皮书的读者对象可以是刚接触 SQL Server 及其操作的人,但应非常熟悉 MySQL DBMS 和普通数据库的概念。目标读者必须具备:
一般的数据库管理知识。
足够的 MySQL DBMS 基础知识背景。
熟悉 MySQL 语言。
具有 sysadmin 固定服务器角色的成员资格。sysadmin 角色对该服务器有全权控制。要想了解登录 SQL Server 的更多信息,请参见 SQL Server 2000 联机图书的“登录”一节。
为了让说明清楚易懂,使用的基准开发和应用程序平台是 Microsoft Windows® 2000 操作系统和SQL Server 2000。MySQL ODBC 驱动程序与 MySQL 一起使用,MySQL 平台是使用 MySQL 3.23.37 的 Red Hat Linux 7.1。
概述
MySQL 是一个开放源代码的数据库管理系统 (DBMS)。它采用客户端/服务器结构,是一个多线程、多用户的数据库服务器。MySQL 是为高速应用设计的,因此,它并不提供关系数据库系统提供的许多功能,比如子查询、外键、引用完整性、存储过程、触发器和视图。此外,它有一个锁定机制,这对同时有不同用户进行许多写操作的数据表来说是不够的。它还缺少对软件应用程序和工具的支持。
SQL Server 2000 是一个完整的关系数据库管理系统 (RDBMS),它还包括用于 OLAP 和数据挖掘的集成分析功能。SQL Server 2000 满足最大的数据处理系统和商业 Web 站点对数据及分析的存储要求,同时可以为个人和小企业提供易用的数据存储服务。
Microsoft SQL Server 的结构支持高级的服务器功能,比如行一级的锁定、高级查询优化、数据复制、分布式数据库管理以及分析服务。Transact-SQL (T-SQL) 是 SQL Server 2000 支持的 SQL 语言。
本章中提到的结构特点只是 SQL Server 2000 提供的众多特点的一部分。SQL Server 2000 联机图书是安装应用程序时可以利用的一个有用资源。要使用联机图书,请打开 Microsoft SQL Server 程序组并单击“联机图书”。
迁移过程
本章通过列出 MySQL 和 Microsoft SQL Server 2000 的结构来介绍迁移过程。本章包括以下内容:
迁移准备
数据类型、保留字和运算符
MySQL 的数据迁移工具
Microsoft SQL Server 的数据迁移工具
直接迁移:数据转换服务 (DTS)
使用数据加载能力:查询分析程序
扩展应用程序
故障排除
迁移准备
正确的迁移规划对确保最终成功极其重要。开始迁移前,请查看待迁移 MySQL 数据库的架构。比较 MySQL 和 SQL Server 2000 的数据类型,了解二者的区别。本白皮书的“比较 MySQL 与 Microsoft SQL Server”一节提供了可比数据类型的框架。注意某些 MySQL 数据库对象可能会与 SQL Server 2000 的保留字冲突。下一节中有这些保留字。使用 DTS 迁移到 SQL Server 2000 之前应该先备份并复制 MySQL 数据库文件。
数据类型、保留字和运算符
本节介绍 SQL Server 2000 中使用的数据类型。为了顺利迁移,这里提供了一张 MySQL 和 SQL Server 2000 的数据类型对照表。同时还提供了 Microsoft SQL Server 中使用的保留字列表。它包括以下信息:
支持的 SQL Server 数据类型
比较 MySQL 与 SQL Server 2000
SQL Server 保留字
......
用于数据迁移的 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/
安装过程中,系统会提供以下对话框:
![](https://i-blog.csdnimg.cn/blog_migrate/a493a09fecc24a497dafe8b549fa93b5.png)
填写 ODBC 安装设置,使用如下信息: Windows DSN 名称:
test
说明:
这是个测试数据库
MySQL 数据库:
test
服务器:
seawolf.microsoft.com
用户:
cgunn
密码:
my_password
端口:
3306
使用上述设置后,Windows DSN 名称在建立连接的计算机上必须唯一,服务器设置会完全验证域名(确保 DNS 或您提供的名称具备名称解析)或 IP 地址的有效性。
3.然后,执行 DTS 向导程序。从 Microsoft SQL Server 程序组中选择“Import and Export Data”,您会看到以下对话框。
![](https://i-blog.csdnimg.cn/blog_migrate/7decaaf44347c1ac7212ab12ec6b3432.png)
单击 Next 到下一步。
4.现在提供必要的数据源选择信息,此信息应该是,ODBC 数据源为 MySQL,test 为 System DSN,然后提供安全证书、用户名和密码(见下一个对话框),然后单击 Next。
![](https://i-blog.csdnimg.cn/blog_migrate/6789b989227f2b6949e51ce2f3e67572.png)
5.填写目标连接的详细信息,如下面的对话框所示,然后单击 Next
![](https://i-blog.csdnimg.cn/blog_migrate/864e62a745821e9a523362193af40cf3.png)
6.Specify Table Copy or Query 对话框让您在此选择数据源中的数据库对象选项,这里的数据源是 MySQL。在来源数据库中选择 Copy Table(s) 和 View(s)。另外需要说明的重要一点是,MySQL 不支持视图,所以选择此选项后,它将只复制数据表对象,单击 Next 继续。
![](https://i-blog.csdnimg.cn/blog_migrate/ffc03a349c67f0fad61e9f6c8aeafecc.png)
7.下一个是 Select Source Tables and View 对话框,您可以在这个对话框中选择来源数据表和目标数据表。
![](https://i-blog.csdnimg.cn/blog_migrate/bbef73a13dcca50b79b3be331b4b3dab.png)
8.单击椭圆按钮进行数据转换,如下面的 Column Mappings and Transformations 对话框所示。
![](https://i-blog.csdnimg.cn/blog_migrate/324ef0f3100e5a8683cb33f2fcbc83d1.png)
在这个对话框中,来源数据类型已经与目标数据类型匹配,空数据字段已经被选中。完成后,单击 OK。
现在您可以成功地将数据从 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 的可用选项信息,也可以查看 MySql 参考手册获得此信息。
使用 mysqldump 后,您会获得一个数据库的 SQL 脚本。
.......
该文档来源于:http://www.microsoft.com/china/technet/prodtechnol/iis/deploy/depovg/mysql.asp