简介
将MySQL(源)数据库迁移到SQL Anywhere(目标)数据库涉及几个阶段。本文演示了将模式和数据从MySQL示例数据库“sakila”转换到SQL Anywhere数据库的过程。
若要迁移数据库模式和数据,可以使用迁移数据库向导包含在SQL Anywhere中。但是,请记住,在使用Wizard时需要耐心,因为它会使迁移成为一个乏味且耗时的过程。此外,向导不支持迁移视图、存储过程、触发器和用户定义函数。您需要通过修改T-SQL代码来手动迁移这些数据库对象。此外,您还需要在系统上安装Migrate Database Wizard,并建立到源(MySQL)数据库的连接以执行迁移。
为了使迁移过程更容易,可以使用专门的数据库转换器轻松快速地将数据库表及其记录从MySQL转换为SQL Anywhere。
MySQL和SQL Anywhere的区别是什么?
在继续迁移之前,让我们基于一些重要特性比较MySQL和SQL Anywhere数据库。
注意:对MySQL和SQL Anywhere的比较不感兴趣?跳转到下一个部分。
特性 | MySQL | SQL在任何地方 |
---|---|---|
概述 | MySQL是Oracle旗下的开源关系数据库管理系统(RDBMS)。 | SQL Anywhere(主要称为Sybase SQL Anywhere)是SAP的私有关系数据库管理系统(RDBMS)。 |
使用 | 该应用程序用于数据仓库、电子商务和其他应用。 | 该应用程序用于物联网和数据密集型应用。 |
安装和设置 | 安装和设置MySQL数据库需要时间。 | 安装、设置和管理SQL Anywhere数据库所需的工作量更少。 |
MSupport | 自从Oracle接管MySQL的开发以来,该公司还没有发布用于错误纠正和检测的代码。 | SAP的支持团队以提供良好的支持而闻名。 |
部署 | 与SQL Anywhere相比,在数据部署方面可以花费更多时间吗 | 执行(小型和大型)查询所需的时间更少,确保更快地部署数据。 |
接口 | 友好的用户界面 | 不是很方便使用。 |
你需要知道的事情
在开始迁移过程之前,您需要了解以下几个概念:
统一(后端)数据库
后端数据库(在我们的例子中是MySQL)保存需要迁移到SQL Anywhere数据库的系统表和过程。
Sybase中央
这是一个简单易用的数据库管理工具,可以帮助您在Windows系统上处理数据库对象。它允许您创建SQL Anywhere数据库对象,包括表、视图、索引等。
数据类型
有一些MySQL数据类型与SQL Anywhere数据类型不完全匹配。例如,SQL Anywhere不支持MySQL YEAR数据类型。因此,YEAR数据类型需要映射到INTEGER。
下表列出了需要映射到SQL Anywhere的一些主要MySQL数据类型:
注意:有关需要在SQL Anywhere中映射的数据类型的详细列表,请参考此链接。
MySQL | SQL在任何地方 | 映射的笔记 |
---|---|---|
文本(n < = 32767) | VARCHAR (n)。 | - |
文本(n > 32767) | 文本 | - |
非常小的整数无符号 | 非常小的整数 | TINYINT在SQL Anywhere是无符号的。 |
保龄球 | 位 | |
量变 | 文本 | - |
整数 | 整数 | - |
时间 | 时间 | MySQL中的TIME数据类型不支持小数秒。MySQL TIME数据类型范围从'-838:59:59'到'838:59:59'。在SQL Anywhere中,TIME数据类型的范围是'00:00:00.000000'到'23:59:59:999999'。 |
年[(2 | 4)] | 整数 | SQL Anywhere不支持MySQL YEAR数据类型,需要映射为INTEGER。取值范围为1000 ~ 9999。 |
小数 | 小数 | - |
开始
确保您的系统满足以下先决条件:
MySQL数据库必须安装在您的机器上
•运行SQL Anywhere数据库的系统必须安装MySQL ODBC驱动3.51(及以上版本)。
•ODBC数据源管理员
•SQL Anywhere 16
•Sakila样本数据库0.8版
从MySQL数据库迁移到SQL Anywhere
迁移包括以下几个阶段:
阶段1 -创建一个新的SQL Anywhere数据库
您需要创建一个新的SQL Anywhere数据库,您希望将源数据库迁移到该数据库。下面是使用Sybase Central创建新数据库的步骤:
步骤1:发射Sybase中央(启动>程序> SQL Anywhere 16 >管理工具> Sybase Central)。关闭提示对话框和/或欢迎对话框,如果它们出现。
步骤2:从工具菜单,扩大SQL Anywhere 16,右键单击SQL Anywhere 16数据库,单击创建数据库。
步骤3:在创建数据库向导,选择'在此计算机上创建数据库,然后单击“下一步”。
步骤4:保存数据库文件的名称sakila.db。
注意:一旦创建了新数据库,就可以更改数据库的默认设置(如页面大小、加密等)。
步骤5:点击完成完成数据库创建过程。
创建数据库后,关闭创建数据库向导。
阶段2 -为MySQL数据库创建ODBC数据源
要继续迁移,需要建立到源数据库的ODBC连接。要做到这一点,请遵循以下步骤:
步骤1:打开Sybase Central,单击> SQL Anywhere 16 >管理工具> ODBC数据源管理员。
步骤2:在出现的窗口中,单击添加.
步骤3:从驱动程序列表中选择MySQL ODBC 3.51驱动程序然后点击完成.
注意:下载并安装MySQL ODBC驱动程序(如果你还没有下载驱动程序)。
步骤4:打开“MySQL连接器/ODBC数据源配置”窗口。填写所需的详细信息连接参数节连接到数据库。
步骤5:点击好吧,退出“MySQL Connector/ODBC”窗口。再次,点击好吧退出ODBC管理员。
阶段3 -迁移模式和数据从MySQL到SQL Anywhere
SQL Anywhere Server数据库运行并可以通过ODBC与MySQL数据库通信之后,下一步需要将源数据库模式和数据移动到目标(SQL Anywhere)数据库。
SQL Anywhere带有内置的迁移数据库向导可以用来将MySQL数据库模式及其数据迁移到新创建的SQL Anywhere数据库。此向导帮助您创建表、索引和其他数据库对象,以便将源数据库(MySQL)模式与目标数据库模式相匹配。然后,它将所有表数据从源数据库复制到目标数据库。
注意:除了“迁移数据库向导”,您还可以使用sa_migrate系统过程将所有表从MySQL数据库迁移到SQL Anywhere数据库。
使用迁移数据库向导的步骤如下:
步骤1:在“Sybase Central”中,单击工具> SQL Anywhere 16 >迁移数据库.这将启动迁移数据库向导。
步骤2:在向导中,选择'sakila'数据库,然后单击下一个.
步骤3:输入的sakila’作为要迁移的远程数据库的名称,然后单击立即创建远程服务器。
注意:MySQL的sakila'数据库包含所有需要迁移到目标数据库的数据库对象。
步骤4:当出现提示时,输入'SakilaMySQLRemoteServer'作为远程服务器名称,然后单击下一个.
步骤5:在选择“Server Type”界面,选择'MySQL从远程服务器类型列表,然后按下一个按钮。
步骤6:在提供连接详细信息屏幕上,选择开放数据库连接(ODBC),并在连接信息文本框中输入MySQL数据库的ODBC数据源名称(即前面创建的MySQL ODBC源数据)。点击下一个.
第七步:避免使服务器为只读,然后单击下一个.
步骤8:连接到SQL Anywhere数据库为DBA.由于远程服务器(MySQL)不知道这个用户,您应该创建一个外部登录,将SQL Anywhere DBA映射到MySQL用户。接下来,检查'为当前用户创建外部登录'复选框,并输入正确的凭据以登录MySQL数据库服务器。点击下一个.
步骤9:摘要页面将显示目标数据库将执行的SQL语句,以创建远程服务器(MySQL)。点击完成用于创建远程服务器。
第十步:您将回到迁移数据库向导。在向导中,选择新创建的SakilaMySQLRemoteServer然后点击下一个.
步骤11:在“Select Tables”屏幕中,从“Select Tables”中选择所有或特定的表。sakila'数据库在左侧列表框中您要移动。选中表之后,单击Add All,然后下一个.
步骤12:您可以将表添加到用户的DBA”;但是,让我们创建一个可以访问Sakila数据库对象。为此,单击Create新用户.
步骤13:弹出“创建用户向导”窗口。类型的sakila作为新用户名,然后单击Next。
步骤14:为新创建的用户分配密码,单击下一个.
步骤十五:将出现一个窗口,要求更改新用户的默认设置。您可以跳过该步骤,单击完成.
步骤16:将出现“迁移数据库向导”窗口。选择新创建的用户sakila(如下面的截图所示),然后点击下一个.
步骤17:在指定迁移选项屏幕中,选中所有选项,然后单击下一个.
步骤18:将出现Summary屏幕,其中显示将由Migrate Database Wizard执行的用于迁移数据库模式和数据的SQL语句。
步骤19:单击Finish启动迁移过程。
迁移数据库向导将把模式和数据从MySQL的Sakila数据库到SQL AnywhereSakila的数据库。
迁移的下一个阶段需要验证迁移的数据库模式和数据。一旦检查了数据,就可以继续将视图、存储过程和其他MySQL数据库对象迁移到SQL Anywhere数据库。
迁移数据库向导的限制
SQL Anywhere迁移向导有如下限制:
•从MySQL数据库到SQL Anywhere数据库的模式和数据转换是一个漫长而耗时的过程。
•需要专业技术知识。
•源数据库和目标数据库都需要安装在计算机上。
•仅将源数据库文件移动到活动数据库。
如何克服这些限制?
Stellar数据库转换器可以帮助您克服与迁移数据库向导相关的限制。方法如下:
•通过使用几个简单的步骤将数据从MySQL转换为SQL Anywhere数据库。
•软件用户界面(UI)可以轻松操作,无需技术支持。
•只需要安装目标数据库服务器。
•允许将转换后的文件保存到实时或脱机数据库。
使用软件进行转换的步骤如下:
•SQL Anywhere(目标)数据库必须安装在您的机器上。
•应该在SQL Anywhere应用程序中创建一个新的数据库文件。
•存储数据库的驱动器必须有与所选数据库大小相等的空闲空间。
步骤1:下载、安装和启动用于数据库的恒星转换器软件
步骤2:在选择数据库对话框,选择MySQL作为源数据库类型。
步骤3:要选择要转换的数据库文件,请单击“数据库路径”下的“浏览”,然后单击“扫描”。
注意:如果找不到数据库文件,请单击“搜索”来定位系统硬盘驱动器或文件夹中的数据库文件。
步骤4:当“扫描完成的对话框,单击好吧.显示可以转换为SQL Anywhere的MySQL数据库对象预览。
注意:预览过程所花费的时间取决于表中记录的数量。您可以通过单击“停止文件”菜单跳过该过程。
步骤5:单击,继续进行转换转换在文件菜单。
步骤6:在Convert和保存数据库对话框,执行以下操作:
1.选择SQL Anywhere下选择数据库类型.
3.步骤9:接下来,从下拉列表中选择以下操作之一:
•要将转换后的文件保存到离线数据库,请选择'连接到脱机空数据库”。
•要将文件保存到活动数据库,请选择'连接到正在运行的数据库',并指定服务器名。
4.点击保存.
所选择的MySQL数据库文件将转换为SQL Anywhere数据库文件格式。
注:恒星数据欧宝娱乐app下载地址库转换器软件只转换表和表数据。然而,该软件尝试执行数据库对象(如视图、过程、触发器、索引、约束、函数等)查询。如果查询执行失败,软件将在源路径生成一个失败查询的“.txt”文件。
结论
本文演示了将MySQL(源)数据库迁移到SQL Anywhere(目标)数据库的主要阶段。最重要的是,它涵盖了如何使用“迁移数据库向导”平稳过渡数据从源数据库到目标数据库。但是,迁移向导也有一些缺点。将MySQL数据库模式和数据转换为SQL Anywhere的步骤非常复杂,需要专门的技术知识。如果你是一个初学者,并寻找一个快速的方法来执行MySQL到SQL Anywhere转换,使用用于数据库的恒星转换器软件
常见问题解答
问.使用迁移数据库向导可以迁移什么?
回答.向导帮助迁移表及其记录从MySQL数据库到SQL Anywhere数据库。
问.我如何迁移数据库对象,如存储过程,触发器,函数,视图等从MySQL到SQL Anywhere?
回答.要将视图、触发器和其他数据库对象从MySQL数据库迁移到SQL Anywhere,您需要在T-SQL代码中进行修改。
问.恒星转换器的数据库软件需要互联网连接的转换过程?
回答.不需要,该软件不需要互联网连接来执行转换。