暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

【金仓数据库征文】_从Oracle到KingbaseES:一次国产数据库替代的实战迁移之路

作者:Digital Observer(施嘉伟)
Oracle ACE Pro: Database
PostgreSQL ACE Partner
11年数据库行业经验,现主要从事数据库服务工作
拥有Oracle OCM、DB2 10.1 Fundamentals、MySQL 8.0 OCP、WebLogic 12c OCA、KCP、PCTP、PCSD、PGCM、OCI、PolarDB技术专家、达梦师资认证、数据安全咨询高级等认证
ITPUB认证专家、PolarDB开源社区技术顾问、HaloDB技术顾问、TiDB社区技术布道师、青学会MOP技术社区专家顾问、国内某高校企业实践指导教师
公众号:Digital Observer;CSDN:施嘉伟;ITPUB:sjw1933;墨天轮:Digital Observer;PGFans:施嘉伟。

一、引言

随着国家信创战略的持续推进,国产数据库逐步成为各行业核心系统的新选择。在这一背景下,我们开展了一次完整的从Oracle 11g向KingbaseES V8R6的迁移实践,不仅验证了KingbaseES的兼容能力和可运维性,也为后续大规模替代方案打下了坚实基础。

二、项目背景

本次迁移项目的源端系统为一套典型的制造业业务支撑平台,数据库使用Oracle 11g,部署于192.168.xxx.9,端口为1521。业务系统中包含大量存储过程、包、触发器、序列、同义词和视图等复杂对象。

目标系统选择KingbaseES V8R6,部署于192.168.2xx.244(端口:54321),其较强的Oracle兼容性、安全性、与国产软硬件的适配能力,成为此次替代的关键优势。

三、准备阶段:源端配置调整

在迁移前的准备工作中,我们首先对Oracle数据库进行配置优化,确保数据一致性和日志可获取性,包括:

  • 开启归档日志模式,确保数据可回滚、可增量追踪;
  • 启用附加日志(Supplemental Log),以支持更精确的数据变更捕获;
  • 关闭回收站机制,避免无效对象干扰迁移过程;
  • 创建迁移专用账户kdts,并授权最低限度的数据读取和DDL执行权限。

3.1 检查归档日志

archive log list
如果没有打开归档则执行以下命令打开归档
#关闭数据库
shutdown immediate
#以mount方式开启数据库
startup mount
#开启归档
alter database archivelog;
alter system set db_recovery_file_dest='';
alter system set log_archive_dest='/data/oracle/oradata/orcl/archlog';
#开启数据库
alter database open;

3.2检查附加日志

select supplemental_log_data_min, supplemental_log_data_all from v$database;
#若未开启则执行以下命令开启附加日志
alter database add supplemental log data;
alter database add supplemental log data (all) columns;

3.3检查回收站

show parameter recycle;
#若回收站未关闭即recyclebin为on,则执行以下命令关闭
alter system set recyclebin=off deferred;

执行以上命令后需要重启数据库才能看到更改结果

3.4创建数据库用户kdts

create user kdts identified by "kdts" default tablespace USERS temporary tablespace TEMP profile DEFAULT;
 
#赋予kdts以下权限
grant connect to kdts;
grant select any table to kdts;
grant select any dictionary to kdts;
grant create session to kdts;
grant lock any table to kdts;
grant execute on kdts_flashback to kdts;

通过以上操作,为后续数据提取和结构映射打下基础。

四、目标端部署:Kingbase安装与配置

目标数据库环境采用KingbaseES V8R6版本,部署于兼容麒麟操作系统的服务器,确保整体信创软硬件栈一致性。参考基于LINUX7的Kingbase单机标准化安装文档,启动迁移工具KDTS(BS版)并配置Web访问:

迁移工具BS版随数据库一起打包发布,安装完数据库后,执行启动脚本startup.sh即可。

$ su - kingbase
$ cd /data/KingbaseES/V8/ClientTools/guitools/KDts/KDTS−WEB/bin
$ sh startup.sh

默认访问地址:http://192.168.2xx.244:54523,用户名/密码为kingbase/kingbase。

五、迁移执行过程:KDTS图形化管理

在KDTS Web平台中,迁移任务的核心步骤包括:

5.1数据源配置

5.1.1新建源端Oracle连接,测试连通性;

image.png
测试
image.png
列表
image.png

5.1.2新建目标端Kingbase连接,确保网络可达;

image.png
测试
image.png
列表
image.png

5.2 创建迁移任务

5.2.1 选择迁移模式(如全量迁移);

选择数据源
image.png
选择模式
image.png

5.2.2 配置迁移对象:表、视图、函数、序列、存储过程等;

选择迁移对象
image.png
image.png
image.png

5.1.3 指定迁移参数与数据过滤规则;

配置参数
image.png
列表
image.png

5.3 任务执行与监控

5.3.1 一键启动迁移任务,实时监控进度与日志;

image.png

5.3.2 自动校验迁移结果,提示异常信息;

image.png

六、技术难点与解决方案

迁移过程中我们遇到多个挑战,例如:

  • PL/SQL语法差异:部分函数结构需调整为PostgreSQL兼容语法;
  • 数据类型映射:如Oracle中的NUMBER精度需显式定义对应Kingbase类型;
  • 特殊对象适配:如自定义类型、同义词、包体迁移需依赖Kingbase特定处理逻辑;

通过脚本预处理、规则定制、以及与Kingbase技术团队的联动支持,最终实现高质量迁移结果。

七、实施效果与用户反馈

最终迁移过程在业务低峰期完成,整个系统切换耗时不足2小时,实现了用户无感知上线。新系统运行稳定,关键SQL性能无明显下降,部分业务甚至因优化获得性能提升。

客户反馈表示:

“这次国产数据库替代方案超出预期,Kingbase的兼容性与美创的实施能力值得信赖。”

八、总结与建议

本次Oracle到KingbaseES的迁移项目不仅是一次技术转换,更是对国产数据库成熟度的验证。我们建议:

  1. 前期调研要充分:评估现有系统中的PL/SQL复杂度与依赖对象;
  2. 工具选型很关键:KDTS平台图形化体验良好,能显著提升迁移效率;
  3. 测试验证不可省:迁移后需完成功能回归与数据一致性校验;

未来,我们期待Kingbase进一步加强工具链能力与迁移知识库建设,为更多用户提供稳健的信创路径。

hhh6.jpg

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论