it编程 > 数据库 > Oracle

Oracle数据库移植到KingbaseES的全流程

27人参与 2025-09-30 Oracle

前言

在国产化替代浪潮下,将oracle数据库迁移至kingbasees(金仓数据库)已成为众多企业的选择 。 kingbasees作为oracle兼容版数据库,通过原生支持大量oracle特性,大幅降低了迁移难度。下面我们就来从oracle到kingbasees的完整迁移流程,给各位带来一份从前期准备到落地验证的实战指南,助力企业实现平滑、高效的数据库国产化升级。

一、迁移前必知:为什么选择kingbasees?

在启动迁移前,首先要明确kingbasees的oracle兼容优势——这是降低迁移成本的核心前提。根据官方文档,kingbasees在关键层面实现了高度兼容:

简单来说,大部分oracle应用只需“少量修改甚至零修改”,即可在kingbasees上运行——这是选择它的核心原因。

二、 迁移前准备

oracle到kingbasees的迁移并非“直接拷贝数据”,而是遵循“准备-迁移-测试”的标准化流程。

2.1 获取 oracle 数据库的相关信息

迁移前,应获取源数据库oracle 服务名及迁移的数据规模信息。其中,前者用于 pl/sql developer 工具的登录操作,后者用于估算数据迁移时间和设计迁移方案。

  1. oracle 数据库基本信息
    获取源oracle 数据库的:
    a. ip 地址;
    b. 实例名;
    c. 网络服务端口号;
    d. 用户名/密码。

2.2 查询oracle 数据库编码方式

select userenv('language') from dual;
 userenv('language')
 simplified chinese_china.zhs16gbk
【kingbasees初始化设置编码方式】
--encoding=gbk(支持gbkunicodeascii)

2.3 看表数据量大小

查看当前用户在oracle中的表大小,按从大到小排序(单位gb)

select segment_name,bytes/1024/1024/1024 fromuser_segmentswheresegment_type='table'order by
 bytesdesc ;
 xfjxx16.046875
 xfrxx7.779296875
 pck 7.4375
 blfsxx 5.0625
 xfsxxx 2.3125
 dfgzxx 1.3359375
 fjb 0.53125
 tsjxx0.078125

2.4 检查数据库日期格式

时间的默认格式为:iso,mdy

在配置文件中添加:datestyle=’iso,ymd’修改为年月日的格式(99会改为1999)

在某项目中迁移数据时遇到:服务器报错,迁移工具中断,迁移停滞

--即使没有报错也会出现错误
set ora_date_sytle=true;
 create tablet_date(coldate);
 insert into t_datevalues('11-10-1010:10:10');
 select *fromt_date;
 col--------------------
2010-11-1010:10:10
 (1 row)

三、配置 kingbasees 的 oracle 兼容开关

在 oracle 数据库向 kingbasees 迁移的过程中,为确保两者在功能和数据存储上的兼容性,需根据实际场景对 kingbasees 目的数据库进行 oracle 兼容配置。以下将针对需重点配置的会话级兼容参数展开说明,明确各参数的作用、配置依据及注意事项。

3.1 nls_length_semantics 参数

该参数的核心作用是设定char类型字段的默认单位(byte或char),同时标识符的最大长度也会以该参数值为单位 —— 若参数值为char,标识符最大长度为 63 个char;若为byte,则最大长度为 63 个byte。

从配置依据来看,kingbasees 中nls_length_semantics参数的默认值为char,但迁移时需确保其与待迁移的 oracle 数据库参数值保持一致。oracle 数据库中,char类型的byte/char属性默认值由nls_length_semantics参数决定,可通过如下 sql 语句查询该参数值:

select value from nls_database_parameters where parameter = 'nls_length_semantics';

如果未修改可能会出现:迁移 char 类型时,由于数据库存储的类型不同,导致迁移的数据存在多余空格的情况。

3.2 default_with_oids:oid 伪列开关

kingbasees 的 oid 伪列可兼容 oracle 的 rowid 伪列。因此,如果oracle 移植对象有 rowid 伪列,则建议用oid伪列替代。

四、kdts数据的离线迁移实战

在完成上述准备工作以后,我们就可以使用kdts进行数据的离线迁移了,kdts提供了两种形态(bs、shell),可以根据需要进行选择,我们在这里就给大家介绍bs的oracle迁移的具体步骤。

4.1 创建源数据库连接

创建源库数据库连接。创建数据库连接界面如下,填写数据源信息,包括:“连接名称”、“数据库
类型”、“数据库版本”、“服务器地址”、“端口”、“用户名”、“密码”、“数据库”、“连接参
数”。

4.2 创建目标数据库连接

创建目标数据库连接。创建数据库连接界面如下,填写数据源信息,包括:“连接名称”、“数据
库类型”、“数据库版本”、“服务器地址”、“端口”、“用户名”、“密码”、“数据库”、“驱
动”、“url”、“连接参数”。

4.3 新建迁移任务

kdts 采用向导页的方式指导用户新建迁移任务,简单易用,用户依次配置“选择数据源”-“选择模
式”-“选择迁移对象”-“配置参数”,即可快速配置一个迁移任务。

填写自定义任务名称(任务名称不能重复),选择“源数据库”和“目标数据库”,或者选择“新建数据源”后使用

4.4 选择模式

根据我们的数据迁移所需选择对应模式(如需选择模式在系统模式中可选中“包含系统模式”复选
框)的表、视图、序列、函数、存储过程、程序包、同义词。当模式较多时也可以通过左上方的查
询框进行检索。请您至少选择一种模式,否则将收到错误提示,以至于不能完成新建任务。

4.5 选择迁移对象

通过已选模式选择我们需要迁移数据的表,模式较多时可在已选模式搜索框内输入模式名关键字进行快速检索。

可迁移此模式下全部表,也可以指定或排除部份表,当你选择“包含指定表”或“排除指定表”
时,请通过“从列表选择”、“从文件导入”或者在输入框内输入表名将数据添加到包含列表
中,如未添加数据,则会提示错误导致无法进行下一步并完成新建任务。

当我们点击“包含指定表”时也可选择多种方式。可直接在输入框内填写表名,多个表用“,”分割,回车确认;“从列表选择”可在模式中选择指定表;如您要“从文件导入”,可点击“下载导入模板”,根据导入模板规则填写,然后从文件导入该模板。当您需要“排除指定表”时,同指定部份表相同操作,但结果相反。

从列表选择表时,可选择对应模式、检索表名关键字、数据条数限制进行快速检索对应的表。点击
“添加”按钮后加入到已选列表,当您想要移除部份表时可以选择对应的表点击“移除”按钮取消
表。选择完成后点击确定。

4.6 配置参数

迁移工具给我们提供了一系列配置参数用于迁移方案的个性化配置,满足多种迁移场景。配置参数分为“迁移配置”、“数据类型映射”、“线程配置”三个方面。

五、查看迁移报告及问题处理

迁移完成后,我们需要确认执行结果,包括迁移数据量,是否有错误发生,可以通过迁移日志和迁移结果进行查看。

结语

从 oracle 到 kingbasees 的迁移,不仅是技术层面的替换,更是企业国产化转型的重要一步。在迁移过程中我们最好按照一下步骤,遵循标准化流程、利用兼容优势、做好测试调优,即可实现 “平稳迁移、无缝衔接”。

以上就是oracle数据库移植到kingbasees的全流程的详细内容,更多关于oracle移植到kingbasees的资料请关注代码网其它相关文章!

(0)

您想发表意见!!点此发布评论

推荐阅读

Oracle database恢复被修改的视图实现方式

09-30

Oracle数据库递归查询示例详解

10-11

ORACLE查看当前连接数的常见方法及解释

09-23

oracle数据库导入dmp文件实现方式

09-23

基于Oracle数据泵(expdp/impdp)的数据导入导出指南

10-14

Oracle授予普通用户kill session权限的方法

10-16

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论