【教程】【数据库迁移到DDM时SQL兼容性分析技巧】 | 求斑竹加精 | 求奖励代金券
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,免了。还是多磨叽几句,供兄弟们参考。
安装完成后记住数据库名称、数据库地址(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。
步骤 6 生成分析结果后,单击右下角的“Save”,生成CSV文件。
步骤 7 生成的CSV文件即为代码文件中SQL的分析结果。
4 SQL兼容性分析
把SQL抽取出来后,我们对着华为云帮助中心提供的SQL兼容性说明分析了2小时。不过还不放心,又联系了DDM服务的技术支持,帮忙做进一步分析,技术支持态度挺好的,帮着找出了5处不兼容的SQL,并给了修改建议。
这里赞一下他们的南哥,“老专家”称号,他至少配得上其中两个字。
沥血整理了一篇实战干货,版主能转告DDM产品团队,送我一些代金券么?????
- 点赞
- 收藏
- 关注作者
评论(0)