应用迁移到国产数据库,总体包含下面这些迁移改造的工作:
1 数据库迁移
对象迁移:表,索引,视图,约束,存储过程等。这个过程中主要是一些列的定义数据类型需要映射。存储过程需要的工程量最大。
数据迁移:建议使用工具,从oracle读出来写入目标数据库,提高并发写。如果需要在线迁移,那么看看有没有合适的同步工具。
2 应用迁移:
连接改造:如果是使用了orm工具访问数据库,并且支持新的数据库,那是最好的情况。不是的话需要扫描代码替换为新的数据库连接方式。
sql改造:这部分工作也是最大的。建议原oracle里抓取SQL,在目标数据库回放,查缺补漏。如果有适合的sql评估工具更好。
收起对于 ORACLE迁移到国产数据库,假设国产数据库是分布式数据库(数据库分片存放,非分库分表的模式),应用系统是面向客户的交易型业务系统,例如手机银行、网上银行、聚合支付、直销银行、柜面、核心等,应用适配改造需要和数据结构改造相互结合,主要考虑如下方面:
1) 数据结构层适配改造:数据表包括所有应用层和批量层表重构,对表结构进行重新设计适配,重新设计定义表类型和分片字段。适配不同应用场景复杂业务功能。对所有的库表进行重新设计,合理设置分区键,分区键也是表的字段,表根据分区键字段将数据打散在各个节点,因此分区键设置时要从全局和交易局综合考虑,将交易中经常用来关联的字段设置为分区键,比如客户账户。
2)应用 SQL层适配改造
主要包括语法语义的改造和SQL语句优化改造。
语法语义改造:需要进行ORACLE语法和分布式数据库语法的兼容性改造,主要包括存储过程、函数、字段类型等,确保迁移到分布式数据库系统能运行起来。虽然目前有的数据库支持存储过程,但是还是建议将存储过程改造成程序执行,并且优化适配分布式数据库,具备高并发易扩展等特性。
SQL语句优化改造:解决了能运行的问题,SQL优化需要解决高效运行的问题,通过 SQL语句拆分、关联字段、业务逻辑重构等方式,尽可能减少或 避免节点间数据的流动,提升系统并发性能和扩展性能。
收起