【教程】【数据库迁移到DDM时SQL兼容性分析技巧】 | 求斑竹加精 | 求奖励代金券

举报
应用万花筒 发表于 2018/07/13 15:45:13 2018/07/13
【摘要】 近期公司系统搬迁上华为云,抽空整理一些迁移心得,分享给大家。今天奉上一篇数据库迁移上DDM时,如何抽取SQL进行兼容性分析。

0.jpg

1 写在前面

最近公司成功地把服务全部迁移上华为云。认真讲一句,大大小小十几个系统,业务切换还是花了两个多月心血的,总结下来,就是要认真做好迁移方案的规划,以及迁移演练。

我们在演练过程中发现了很多平时忽略的小细节,比如安全组没规划好,连不上数据库;迁移用的跳板机磁盘买小了,从200G换成500G才够用,等等。

这里重点分享一个数据库迁移方面的案例,给各位上云的兄弟们参考。


背景是这样的

我们把数据库由MySQL改成了DDM+RDSMySQL)方案,做分布式数据库部署。华为云的DDM虽然兼容MySQL5.6+版本,但实际上还是有一些SQL语法约束的。虽然华为云在帮助中心列出了SQL语法的兼容清单与说明,但毕竟咱们SQL都是写在代码里的啊啊啊啊。

这让我们有点点小难过,毕竟代码里嵌了几千条SQL

关键时候,组里的DBA老专家给力,提供了一个从代码中批量抽取SQL的小工具。

废话不多说,上干货。

     

2 准备工作

2.1 环境准备

1. 需要准备一台电脑,用于运行SQL语句抽取工具:SchemaConversionToolAWS提供的SQL转换工具)。

 建议为Windows系统,以下指导采用Windows系统环境为例进行说明。如为其他系统,可参考点我下载其他系统版本


2. 将包含SQL的源代码文件拷贝到这台电脑上,用于分析和抽取SQL


2.2 安装数据库


安装两个不同类型的数据库,其中一个为系统所使用的数据库服务MySQL,另一个为其他类型的数据库,建议安装PostgreSQL

以下数据库理论上来说都可以:

 MySQLSQL ServerOraclePostgreSQLTeradataVertica以及AWS自研的一些兼容MySQLPostgreSQL等。

为了方便操作,建议采用MySQLPostgreSQL,在Windows系统下操作。


安装MySQL

我服务器上本来就有MySQL,免了。还是多磨叽几句,供兄弟们参考。

前往MySQL官网下载,可以选择社区版MySQL

安装完成后记住数据库名称、数据库地址(127.0.0.1localhost)、数据库端口(默认3306)、数据库用户(超级用户默认为root)、用户密码。


安装PostgreSQL

前往PostgreSQL官网下载,选择Windows版本PostgreSQL

安装完成后记住数据库名称(默认postgres)、数据库地址(127.0.0.1localhost)、数据库端口(默认5432)、数据库用户(默认postgres)、用户密码。


下载JDBC驱动

转换工具连接各数据库,需要使用JDBC驱动:MySQLJDBC驱动PostgreSQLJDBC驱动

如果使用其他类型数据库,请前往以下页面选择并下载驱动:其他类型数据库驱动下载

下载得到不同类型的jar文件,如:

  mysql-connector-java-5.1.45-bin.jar

  postgresql-9.4-1204.jdbc4.jar


2.3 安装转换工具

这个工具老外整的,够强大,能够将一个数据库的SQL语句转换为另一种数据库类型的SQL语句。我们仅使用它的SQL抽取功能,从含有SQL语句的应用程序中,将SQL分析并抽取出来。

转换工具下载页面,为兄弟们再贴一次:SchemaConversionTool工具

下载后解压,并双击以下文件进行安装(Windows版):AWS Schema Conversion Tool-1.0.609.msi

 双击后静默方式安装,不需要填写任何参数。安装完成后可在开始菜单中找到:“amazon.com > SchemaConversionTool”。


3 操作指导

3.1 配置转换工程(连接两个不同的数据库)

准备工作完成后(安装完数据库以及转换工具),打开转换工具:AWS Schema Conversion Tool

如果第一次使用,会弹出新的转换工程创建窗口。

步骤 1      选择源数据库配置。这里选择实际使用的数据库类型。

                111.png


步骤 2      连接源数据库。

    填写数据库配置信息,导入JDBC驱动。     

            111 (1).png

            这里要注意:需要单击左下角的“Test Connection”,测试数据库配置正确后,才能单击“Next”。


步骤 3      选择Schema

    由于仅分析和抽取SQL,所以我们选择其中一个Schema即可。        

            111 (2).png


 步骤 4      运行数据迁移评估。这一步不需要做选择,直接单击“Next”。


 步骤 5      选择目标数据库。

      目标数据库引擎可以选择已安装的PostgreSQL。填写PostgreSQL数据库配置信息,导入驱动程序。

            111 (3).png


步骤 6      单击“Finish”,完成导入。

3.2 导入源码工程并分析SQL

    说明:将源码导入到工具中,完成SQL分析。


步骤 1      在工具主菜单中选择“Applications > New Application”。


步骤 2      选择源语言类型。

    右侧的参数风格可以不用选择。

            111 (4).png


步骤 3      单击“确定”,进入新创建的转换工程页面。


 步骤 4      在菜单栏中选择“File > Change Folders”。将文件夹指向客户程序源码文件夹。

            111 (5).png


步骤 5      选中文件夹,然后在菜单栏选择“Actions > Alalyze”,开始分析SQL


步骤 6      生成分析结果后,单击右下角的“Save”,生成CSV文件。

            111 (6).png


 步骤 7      生成的CSV文件即为代码文件中SQL的分析结果。


4 SQL兼容性分析

SQL抽取出来后,我们对着华为云帮助中心提供的SQL兼容性说明分析了2小时。不过还不放心,又联系了DDM服务的技术支持,帮忙做进一步分析,技术支持态度挺好的,帮着找出了5处不兼容的SQL,并给了修改建议。


这里赞一下他们的南哥,“老专家”称号,他至少配得上其中两个字。

沥血整理了一篇实战干货,版主能转告DDM产品团队,送我一些代金券么?????

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200