尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
人大金仓数据库V9数据库兼容模式为oracle如何更改为pg的解决方案
一、背景描述开发环境是人大金仓V8版本测试环境是人大金仓V9版本。同样的程序在开发环境可以正常运行而部署到测试环境之后各种问题。最让人发狂的是同一个SQL语句开发环境正常测试环境就执行报错了。最开始时是百思不得其解后来一问安装人大金仓V9版本 数据库的人结果一查初始化数据库时模式没有修改是默认的。默认就是 oracle的。而开发环境专门指定模式是 pg 的了。所以出现了各种问题。一行 SQL 查看人大金仓数据库兼容模式show database_mode;问题的根源就找到了。那么接下来就好办了。二、变更数据库模式人大金仓V9版本想安装成适配pg的结果安装后使用 show database_mode 语句查询出来的是 oracle。别担心安装完成后发现模式不对这个问题完全可以解决而且不用重装整个 软件。人大金仓的兼容模式是在**初始化数据库initdb**这一步确定的安装软件时只是解压了文件。所以你的根本问题是initdb初始化时-m参数指定成了oracle而非pg。解决方案是用正确的模式重新初始化数据库。你可以按下面的步骤来操作这不会影响已安装的软件本身。2.1 解决方案一保留原来的 Oracle 模式数据不动重新初始化一个新的 data 目录用作 PG 模式这样做有几个明显的好处风险极低原有的 Oracle 模式环境被完整保留不会因为操作失误导致数据丢失。可以随时切换通过切换$KINGBASE_DATA环境变量或停止/启动不同端口的服务可以在两个模式之间自由切换。配置清晰两个模式的配置文件如kingbase.conf完全独立互不干扰。操作步骤详解请按以下步骤操作核心思路就是规划一个新目录然后指向它进行初始化。1 创建新的数据目录首先为新的 PG 模式实例创建一个空的数据目录并确保它归属于kingbase操作系统用户以你实际的数据库用户名为准。# 切换到 kingbase 用户 (根据你的实际情况也可能是其他用户) su - kingbase # 创建新的数据目录例如在原目录旁加个 _pg 后缀 mkdir /opt/Kingbase/ES/V9/data_pg2 初始化新目录为 PG 模式这是最关键的一步。使用initdb命令通过-m pg参数显式指定新目录的兼容模式为 PostgreSQL。# 进入金仓安装目录的 bin 文件夹 (请替换为你的实际路径) cd /opt/Kingbase/ES/V9/bin # 执行初始化关键参数说明 # -D : 指定刚刚创建的新数据目录 # -m : 指定兼容模式pg 代表 PostgreSQL # -U : 指定数据库超级用户名通常为 system我的修改为了 kingbase # -W : 执行后会提示你输入并确认密码 ./initdb -D /opt/Kingbase/ES/V9/data_pg -m pg -U kingbase -W请注意如果initdb命令报错也可以尝试使用--dbmodepg参数其作用与-m pg相同 。金仓的兼容模式必须在initdb阶段确定之后无法更改 。3 修改新实例的端口为了防止新的 PG 模式和原来的 Oracle 模式实例因端口冲突而无法同时启动需要修改新实例的配置文件换一个端口。# 编辑新实例的配置文件 vim /opt/Kingbase/ES/V9/data_pg/kingbase.conf在文件中找到port 54321这一行如果没有就自己加上将它修改为另一个未被占用的端口例如54322。# 将端口改为 54322 或其他空闲端口 port 543224 启动新的 PG 模式实例现在就可以启动这个全新的 PG 模式 数据库实例了。# 使用 -D 参数明确指定使用新的数据目录启动 /opt/Kingbase/ES/V9/bin/sys_ctl -D /opt/Kingbase/ES/V9/data_pg start5 验证结果最后连接新实例并验证其模式。# 连接时需要用 -p 参数指定你刚才设置的新端口 /opt/Kingbase/ES/V9/bin/ksql -U kingbase -p 54322 -d test # 成功连接后执行以下 SQL 命令 SHOW database_mode;如果一切顺利你应该会看到输出结果为pg这就大功告成了6 两个实例的管理技巧这样配置完成后你的服务器上就同时存在两个独立的数据目录了。你可以通过以下方式管理它们启动/停止在使用sys_ctl命令时始终用-D参数明确指定你要操作的是哪个数据目录。# 启动 Oracle 模式实例 sys_ctl -D /opt/Kingbase/ES/V9/data start # 停止 PG 模式实例 sys_ctl -D /opt/Kingbase/ES/V9/data_pg stop连接通过-p参数指定不同端口来连接不同的实例。# 连接 Oracle 模式 (默认54321端口) ksql -U kingbase -p 54321 -d test # 连接 PG 模式 (你修改后的54322端口) ksql -U kingbase -p 54322 -d test这样一来既满足了使用 PG 模式的需求又能随时切换回原有的 Oracle 模式是一个非常安全、灵活的策略。2.2 解决方案二删除原 Oracle 模式重新初始化请注意此操作会清空当前数据库中的所有数据。如果数据很重要请务必先使用sys_dump等工具进行完整备份。请注意此操作会清空当前数据库中的所有数据。如果数据很重要请务必先使用sys_dump等工具进行完整备份。请注意此操作会清空当前数据库中的所有数据。如果数据很重要请务必先使用sys_dump等工具进行完整备份。重要的事情说三遍。1 停止数据库服务首先需要安全地停止正在运行的数据库服务。# 假设您的数据目录为 /opt/Kingbase/ES/V9/data请根据实际情况修改 sys_ctl -D /opt/Kingbase/ES/V9/data stop2 清空旧的数据目录为了确保全新的初始化建议清空或重命名旧的数据目录。请注意备份重要数据# 请务必将此路径替换为您的实际数据目录 rm -rf /opt/Kingbase/ES/V9/data3 重新初始化数据库关键一步现在用initdb命令并带上-m pg参数重新初始化。你需要根据实际情况调整-D数据目录、-U用户名和-W提示输入密码等选项。# -m pg 是指定兼容模式为 PostgreSQL initdb -D /opt/Kingbase/ES/V9/data -U system -W -E UTF8 -m pg执行该命令后系统会提示你输入并确认数据库超级用户system的密码。如果看到类似成功的提示说明初始化已完成。4 重启数据库服务新的数据库已经就绪现在可以启动服务了。sys_ctl -D /opt/Kingbase/ES/V9/data start5 验证结果最后登录数据库验证模式是否已成功修改。ksql -U system -p 54321 -d test成功连接后执行以下SQL命令查看当前模式SHOW database_mode;如果输出是pg就说明已经成功切换成PG兼容模式了。
RELATED

相关推荐

工控机部署YOLO的7个致命误区,看完少走半个月弯路

工控机部署YOLO的7个致命误区,看完少走半个月弯路

摘要:在实验室跑通YOLOv8/v11只需半小时,但在工控机上稳定运行3个月不宕机,可能需要踩半年的坑。本文不讲模型训练,只聊部署落地。从GPU选型陷阱到TensorRT版本地狱,从散热降频到看门狗机制,总结了我近三年…

📅 2026/10/5 17:36:09
STM32与ADS1015L高精度模拟信号采集方案

STM32与ADS1015L高精度模拟信号采集方案

1. 项目背景与硬件选型解析 在工业控制、医疗设备和消费电子等领域,模拟信号采集系统扮演着关键角色。传统方案往往面临精度不足、接口复杂或功耗过高等问题。ADS1015L作为TI推出的12位ΔΣ ADC,配合STM32F302VC的硬件I2C外设,构建了一套高性…

📅 2026/10/15 13:35:59
产品认证过了,技术文档却没跟上:出口合规的“隐形防线”如何失守?

产品认证过了,技术文档却没跟上:出口合规的“隐形防线”如何失守?

​一家出口欧洲的工业设备企业,产品拿下了CE认证,却在一次市场监督抽查中吃了罚单。原因不是产品有问题,而是说明书里一处安全警告的措辞和图标不符合欧盟最新标准。更麻烦的是,企业自查发现,这款设备还有另外两个语言…

📅 2026/10/25 4:47:14
MORE NEWS

更多资讯

📰

技能盘点与成长策略:从评估到复利,打造个人核心竞争力

1. 先别急着学新东西,盘清楚你手里有什么聊到 skills 这个话题,我见过太多人第一反应是"我好像什么都不会",然后转头就去收藏一堆"2024年必学技能清单"。但真正拉开人与人差距的,往往不是你会多少&#xff0c…

📰

营销技能的底层逻辑与五大核心能力实战拆解

1. 营销技能的底层逻辑:先想清楚再做动作1.1 营销的本质不是“推销”而是“匹配”做营销这些年,我见过太多人陷入一个误区:以为营销就是想办法把东西卖出去——写文案、投广告、搞活动、做促销,恨不得一天发十条朋友圈轰炸用户。结…

📰

Context-Mode驱动的技术内容策划:从零散描述到完整博文

抱歉,我这边只收到了你的提示指令,并没有看到具体的项目标题、项目正文、关键词和摘要描述。麻烦你按下面的格式把素材发给我,我马上开始整理成一篇可直接发布的完整博文:项目标题:在这里填入你的标题 项目正文&#x…

📰

Django+微信小程序开发健康生活助手全栈实践

1. 项目概述:健康生活助手微信小程序的全栈实现这个项目本质上是一个融合了前后端技术的健康类活动管理平台。作为全栈开发者,我们选择了PythonDjango作为后端核心,搭配微信小程序前端,实现了从活动发布、用户报名到数据可视化的完…

📰

连锁品牌私域流量运营:企业微信+SCRM实战指南

1. 项目概述:连锁品牌的私域流量突围战去年服务某烘焙连锁品牌时,他们的市场总监给我算过一笔账:在第三方外卖平台每成交100元订单,要支付22元平台佣金6元配送费。这还不算平台上的竞价排名费用。当时我就意识到,传统餐…

📰

深度学习入门指南:从零构建手写数字识别模型

1. 李哥深度学习班第一课:从零开始的AI入门指南第一次接触深度学习的朋友们,你们好!我是李哥,一个在AI领域摸爬滚打了8年的老码农。今天这堂课,我想用最接地气的方式带你们走进深度学习的大门。很多人觉得AI高深莫测&a…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬