作者: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连接,测试连通性;

测试

列表

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

测试

列表

5.2 创建迁移任务
5.2.1 选择迁移模式(如全量迁移);
选择数据源

选择模式

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



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

列表

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

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

六、技术难点与解决方案
迁移过程中我们遇到多个挑战,例如:
- PL/SQL语法差异:部分函数结构需调整为PostgreSQL兼容语法;
- 数据类型映射:如Oracle中的NUMBER精度需显式定义对应Kingbase类型;
- 特殊对象适配:如自定义类型、同义词、包体迁移需依赖Kingbase特定处理逻辑;
通过脚本预处理、规则定制、以及与Kingbase技术团队的联动支持,最终实现高质量迁移结果。
七、实施效果与用户反馈
最终迁移过程在业务低峰期完成,整个系统切换耗时不足2小时,实现了用户无感知上线。新系统运行稳定,关键SQL性能无明显下降,部分业务甚至因优化获得性能提升。
客户反馈表示:
“这次国产数据库替代方案超出预期,Kingbase的兼容性与美创的实施能力值得信赖。”
八、总结与建议
本次Oracle到KingbaseES的迁移项目不仅是一次技术转换,更是对国产数据库成熟度的验证。我们建议:
- 前期调研要充分:评估现有系统中的PL/SQL复杂度与依赖对象;
- 工具选型很关键:KDTS平台图形化体验良好,能显著提升迁移效率;
- 测试验证不可省:迁移后需完成功能回归与数据一致性校验;
未来,我们期待Kingbase进一步加强工具链能力与迁移知识库建设,为更多用户提供稳健的信创路径。





