Skip to content

金仓 PG 兼容模式安装要点(与 Oracle 模式的差异与坑)

一句话机制:金仓 PG 模式与 Oracle 模式的安装全流程只差 3 处配置(单机安装交互 + install.conf + kingbase.conf),其余章节完全沿用——真正的风险不在流程,而在**「兼容模式 + 大小写敏感」这两个 initdb 落地后不可逆的决策**,以及 oracle 兼容参数的清理是否彻底。

三处变更点(其余全沿用)

位置Oracle 模式PG 模式
单机安装 setup.sh 交互兼容模式选 ORACLE、大小写敏感选「否」PG、大小写敏感选 是(yes)
install.confdb_mode=oracledb_case_sensitive=nodb_mode=pgdb_case_sensitive=yesdb_auth=scram-sha-256
kingbase.conf启用 ora_* 系列参数全部删除/注释

必须删除的 oracle 兼容参数(PG 模式)

以下参数在 PG 模式下必须删除/注释,否则 PG 语义被污染:

ora_forbid_func_polymorphism / ora_statement_level_rollback / ora_open_cursors
nls_length_semantics / enable_upper_colname / ora_numop_style
ora_input_emptystr_isnull / exclude_reserved_words

三个必踩的坑

  1. archive_command='' 空串 → WAL 归档持续失败、主库 WAL 堆积、备库 LSN 延迟。必须指向真实可写的归档路径,并预先 mkdir -p + chown kingbase:kingbase
  2. 大小写敏感 yes 的 SQL 适配 → Oracle 模式「不敏感」已写入业务逻辑时,迁到 PG 模式后未加引号的标识符自动转小写,需应用侧统一或建表时显式加双引号 "MyTable" 保留大小写。此参数 initdb 落地后不可在线改
  3. postgis 扩展 libssl.so.10 缺失(x86_64 平台相关,与兼容模式无关)→ 用官方 libssl_x86.zip 修复。

不变量(必须成立的约束)

  • 兼容模式 + 大小写敏感在 initdb 后不可在线改,安装前必须定死;改动的代价是重建实例。
  • PG 模式必须彻底清理 ora_* 兼容参数,残留会导致 SQL 语义异常(如空串被当 NULL)。
  • archive_command 不能为空串,否则 WAL 堆积直到磁盘写满。
  • 认证方式 PG 模式建议 scram-sha-256(比 md5 安全)。

常见误解

  • 以为 PG 模式和 Oracle 模式安装流程差异很大 → 实际只差 3 处配置,其余全沿用。
  • 把 Oracle 模式"大小写不敏感"的业务假设直接套到 PG 模式 → 标识符需加引号保护。
  • 验证时只测连接不测"模式纯净度" → 应主动验证 SYSDATE/NVL/DUAL 在 PG 模式下报 function does not exist,确认无 oracle 函数污染。

关联

最近更新