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

网友投稿 640 2022-05-29

1 写在前面

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

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

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

背景是这样的:

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

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

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

废话不多说,上干货。

2 准备工作

2.1 环境准备

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

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

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

2.2 安装数据库

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

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

MySQL、SQL Server、Oracle、PostgreSQL、Teradata、Vertica以及AWS自研的一些兼容MySQL、PostgreSQL等。

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

安装MySQL

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

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

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

安装PostgreSQL

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

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

下载JDBC驱动

转换工具连接各数据库,需要使用JDBC驱动:MySQL的JDBC驱动、PostgreSQL的JDBC驱动。

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

下载得到不同类型的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      选择源数据库配置。这里选择实际使用的数据库类型。

步骤 2      连接源数据库。

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

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

步骤 3      选择Schema。

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

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

步骤 5      选择目标数据库。

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

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

3.2 导入源码工程并分析SQL

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

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

步骤 2      选择源语言类型。

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

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

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

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

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

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

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

4 SQL兼容性分析

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

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

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

数据迁移 分布式数据库中间件 DDM

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:智慧城市以用为本,十大趋势必知道!
下一篇:ROS机器人操作系统的安装、配置与初级教程
相关文章