当前位置: 首页 > news >正文

【金仓数据库产品体验官】KingbaseES-ORACLE兼容版快速体验

不知不觉中,社区活动之金仓数据库产品体验官第三期开始了,本次在介绍产品体验的同时也希望感兴趣的朋友们一起来参加:

关于活动发起者:金仓社区

     金仓社区通常不是一个单一的论坛,而是一个由多个平台和渠道组成的综合体,主要包含以下几大部分:

     1、问答中心:用户遇到问题时可以在此提问,由金仓的技术支持工程师、资深用户或社区专家进行解答。这是解决问题、交流故障排除经验最重要的地方。

     2、知识库/技术文章:包含大量的官方技术文档、白皮书、最佳实践、迁移案例、性能优化技巧等高质量内容,是系统学习金仓数据库的宝库。

   3、产品资料下载:提供最新版本的数据库安装包、驱动(JDBC/ODBC等)、迁移工具、管理工具等资源的下载。

活动公告:发布线上/线下的技术沙龙、培训、大赛、技术分享直播等活动信息。

附一张社区首页截图:

体验官活动参加地址:(https://bbs.kingbase.com.cn/forumDetail?articleId=8a3fc929b40be1e5b6ad5bca3c9da3f9)我们继续来看下金仓数据库的ORACLE兼容模式:

    金仓数据库(KingbaseES)是北京人大金仓信息技术股份有限公司推出的国产大型通用关系型数据库,其 Oracle 兼容版 是其最重要的产品形态之一,核心目标是为使用 Oracle 数据库的用户提供一套平滑、低风险、高性能的国产化迁移替代方案。

该版本并非简单的“仿制”,而是基于深度兼容的理念进行设计和开发。

    其核心思想是:让原有的 Oracle 应用系统,能够以最小的修改代价(甚至零修改)迁移到金仓数据库上运行,从而极大地降低数据库国产化替代的技术风险、成本和时间周期。

    本文将深入探讨金仓数据库对ORACLE的兼容特性,通过实际测试体验其兼容程度,为考虑数据库迁移或国产化替代的企业提供参考。话不多说,我们接下来开启体验之旅:

开启体验之旅

首先进行下载ORACLE 兼容版本安装包:

下载地址:(https://www.kingbase.com.cn/download.html)

PS:下载安装包的同时,记得下载授权文件哦。

一、安装部署KingbaseES

查看Kingbase支持的OS版本:

KingbaseES支持各种主流的Linux操作系统64位发行版本,包括CentOS、中标麒麟、银河麒麟、统信UOS、Deepin、凝思、中科方德、欧拉等操作系统。

本次使用OS版本及配置:

1、新建kingbase用户

安装前必须创建 kingbase 用户,禁止使用 root 用户安装数据库。

创建用户所在的组:

groupadd dinstall -g 2001

创建用户:

useradd  -G dinstall -m -d /home/kingbase -s /bin/bash -u 2001 kingbase

修改用户密码:

passwd kingbase

2、配置内核参数

cat >> /etc/sysctl.conf<<OEF

fs.aio-max-nr= 1048576

fs.file-max= 6815744

kernel.shmall= 2097152

kernel.shmmax= 4294967295

kernel.shmmni= 4096

kernel.sem= 250 32000 100 128

net.ipv4.ip_local_port_range= 9000 65500

net.core.rmem_default= 262144

net.core.rmem_max= 4194304

net.core.wmem_default= 262144

net.core.wmem_max= 1048576

EOF

#生效配置

sysctl -p

3、修改文件打开最大数在 Linux、Solaris、AIX 和 HP-UNIX 等系统中,操作系统默认会对程序使用资源进行限制。如果不取消对应的限制,则数据库的性能将会受到影响。

#设置永久生效:

vi /etc/security/limits.conf

# *表示所有用户,可只设置root和kingbase用户

* soft nofile 65536

# 注意:设置nofile的hard limit不能大于/proc/sys/fs/nr_open,否则注销后将无法正常登陆

* hard nofile 65535

* soft nproc 65536

* hard nproc 65535

# unlimited表示无限制

* soft core unlimited

* hard core unlimited

登录Kingbase用户验证是否生效:

4、RemoveIPC参数

systemd-logind服务中引入的一个特性,是当一个用户退出系统后,会删除所有有关的IPC对象。该特性由/etc/systemd/logind.conf文件中的RemoveIPC参数控制。某些操作系统会默认打开,会造成程序信号丢失等问题(只有redhat7及以上和一些特殊的国产Linux的版本需要修改,改之前可先查看此项是否为默认yes)。设置RemoveIPC=no。 设置后重启服务:

systemctl daemon-reload

systemctl restart systemd-logind.service

5、创建目录并授权

mkdir /data/kdb

chown -R kingbase:kingbase /data/kdb

6、设置环境变量:

cat >>~/.bash_profile<<EOF

export PATH=/data/kdb/V9/Server/bin:$PATH

export KINGBASE_DATA=/data/kdb/V9/data

EOF

二、安装部署KingbaseES ORACLE兼容版

1、挂载镜像

切换到 root 用户,将 KingbaseES 数据库的 iso 安装包保存在任意位置

 cd  /data/soft

mount KingbaseES_V009R002C012B0003_Lin64_install.iso /mnt

2、命令行安装

切换至 kingbase 用户下,在 /mnt 目录下使用命令行安装数据库程序,依次执行以下命令安装 DM 数据库

su - kingbase

cd /mnt

开始进行一步步回车安装,中间篇幅太长,就先省略了。。。

看到Complate,表示安装已完成。

4、将KES服务注册为Linux系统服务

/data/kdb/install/script/root.sh

注册到Linux系统 进行使服务可以开机自启

登录验证连接:

三、开始进行功能体验

1. 测试 yminterval (年月至月间隔)和 dsinterval (天至秒间隔)数据类型

官方文档介绍:

开始测试:

测试间隔类型的运算

如上可以得出KingbaseES成功支持了yminterval和dsinterval数据类型。

2. 虚拟列测试

虚拟列(Virtual Column)是一种特殊的列,其值是根据其他列的值通过表达式计算得到的,而不直接存储在数据库中。虚拟列可以节省存储空间、保持数据一致性,并简化查询操作。

通过上边得结果可以看到,更新了基础列之后,虚拟列也会自动更新。PS:官方对GENERATED ALWAYS AS ..... STORED语法解释

3. 伪列测试(使用ROWNUM)

说明伪列测试也是正常支持的。

4. 分区表及interval自动分裂

说明Kingbase oracle兼容模式支持分区表以及interval自动分裂。

5、INTO子句与USING子句测试

创建测试基础表:

可以得到正常的返回说明是正常支持的。

6、RETURNING ... INTO 语句,及EXECUTE IMMEDIATE

达到预期效果,说明是正常支持的。

7、函数及数组测试

达到预期效果,说明是正常支持的。

8、LATERAL连接测试

达到预期效果,说明是正常支持的。

9、使用ARRAY_AGG和循环批量处理

达到预期效果,说明是正常支持的。

10、临时表测试

达到预期效果,说明是正常支持的。

总结

经过如上体验我们可以得知:

金仓数据库Oracle兼容模式基础语法支持良好:大多数基础DML,DDL语句与Oracle高度兼容,

同时PL/SQL高度兼容性(存储过程和函数: PL/SQL语法基本兼容),带来了非常棒的体验,

常见数据类型和基础函数能够正常工作,提供了非常好的兼容性,大大降低了从Oracle迁移至金仓数据库的技术门槛,

平滑迁移:极大减少了代码改写量,缩短了迁移周期,降低了项目风险。

期待金仓对Oracle的兼容性将进一步提升,为数据库国产化替代提供更加平滑的迁移路径。

http://www.dtcms.com/a/358257.html

相关文章:

  • 国家统计局数据分析01——机器学习
  • GD32VW553-IOT 基于 vscode 的 bootloader 移植(基于Cmake)
  • 【DreamCamera2】相机应用修改成横屏后常见问题解决方案
  • 阿里云营业执照OCR接口的PHP实现与技术解析:从签名机制到企业级应用
  • LZ4 解压工具(WPF / .NET 8)说明书
  • Java Stream API并行流性能优化实践指南
  • 基于Kubernetes自定义调度器的资源隔离与性能优化实践指南
  • 从 0 到 1 构建零丢失 RabbitMQ 数据同步堡垒:第三方接口数据零丢失的终极方案
  • 人工智能学习:Python相关面试题
  • 人工智能学习:Linux相关面试题
  • 98、23种设计模式之代理模式(7/23)
  • spark.sparkContext.broadcast() 与 org.apache.spark.sql.functions.broadcast 的区别
  • 开源PPT生成智能体(Agent)全景透视:技术路线、代表项目与未来趋势
  • 鸿蒙ArkTS 核心篇-15-条件渲染(组件)
  • 三重积分的性质
  • [论文阅读] 人工智能 + 软件工程 | 从“法律条文”到“Gherkin脚本”:Claude与Llama谁更懂合规开发?
  • comfUI背后的技术——VAE
  • [创业之路-581]:如何驾驭不确定性和风险,并从中获利?
  • 什么是雪花算法
  • [Mysql数据库] 知识点总结7
  • 直播间整蛊玩法
  • 【一】Django框架版本介绍
  • 2025 批量下载hasmart所有知乎回答,文章和想法,导出txt,html和pdf
  • OSI与TCP/IP各层功能详解
  • 计算机毕设javayit商城 基于SSM框架的校园二手交易全流程管理系统设计与实现 Java+MySQL的校园二手商品交易与供需对接平台开发
  • java字节码增强,安全问题?
  • python pyqt5开发DoIP上位机【介绍】
  • 【Big Data】AI赋能的ClickHouse 2.0:从JIT编译到LLM查询优化,下一代OLAP引擎进化路径
  • 【具身智能】【机械臂】机械臂轨迹规划项目以及资料汇总【持续更新】
  • PLC中的指令:LDP,ANDP,ORP这几个英文全称是什么