我眼中的openGauss数据库十大尬点

我眼中的 openGauss 数据库十大尬点
本文出处:https://www.modb.pro/db/545567

写过几篇标题带"十大"关键字的文章,阅读量较高,比如昨天这篇PG 数据库十大经典案例解说浏览量接近一千,于是本文以"十大尬点"作为关键字吐槽一下 openGauss。

吐槽有两方面的原因,首先是为了留念本人之前处理和分析问题的过程,其次也是为了让大家更好的使用 openGauss,就如小时候我老爸揍我一样,那也是满满的爱。

一、剪不断的 SSL 依赖
本以为 pg_hba.conf 不使用 SSL 认证就可以不依赖它,后来发现内部工具也有依赖,是我想简单了。

二、娇气的 OM 工具
初次安装 openGauss 时容易遇到 OM 工具相关的问题,比如 XML 文件格式配置问题,python3 小版本等问题,最后经过 preInstall 和 Install 两大高手的挑战之后能感受到超级玛丽通关的体验。

三、过度的安全机制
首次接触 1.0 版本,安装数据库时没有设置初始用户的密码,发现 gsql 登录之后无法做任何操作,因为必须要修改初始用户的密码。

但这确实有点尴尬,或许应该仔细先看看文档,就明白系统预设了一个轩辕代号。

postgres:# ALTER ROLE omm IDENTIFIED BY 'XXXX' REPLACE 'XuanYuan@2012';
该问题很快就得到了完善,不过在 2.0 时也遇到了新的挑战,管理用户不能帮普通用户重置密码,必须知道普通用户的原密码才能进行修改,后面的版本也快速优化了这个问题。

四、不可大意的启动模式
使用 gs_ctl 启动服务时在单机场景下不需要关注启动模式,主备环境下需要注意区分。

启动主库:

$ gs_ctl start -D data -M primary
启动备库:

$ gs_ctl start -D data -M standby
主库和备库需要以各自的模式启动,如果备库我们忘记了使用启动模式,除了主备关系会失败之外,也无法简单地通过关闭服务来重新操作,只能使用 build 操作来重建备库。

因此主备环境下启动备库一定要注意使用 standby 模式启动,切记!

五、public 模式的硬依赖
不可否认 openGauss 对 public 模式增强了安全性,但我们不能强制删除它,不然备份恢复等场景会遇到一些小麻烦。

六、内卷的模板库
PG 里默认模板库是 template1,openGauss 里轮换到了 template0。

openGauss# create database mydb template template1;
ERROR: template1 is not supported for using here, just support template0
七、步调不一致的 LSN
主备环境查询 xlog 接收 LSN 不同阶段的两个函数返回类型不一致,如果有相关计算,不能运算,需要做一下转换处理。

八、当自定义表空间遇上外部参数配置
在做增量备份时,自定义表空间 tablespace-mapping 与外部参数配置 external-mapping 遇上之后会产生什么化学反应呢?对比测试请参考:pg_probackup 包含新建表空间的备份及恢复

九、被吞噬的 0x00
遇到一个从 MySQL 数据库迁移过来的应用程序解压数据不一致,最终发现 openGauss 吞掉了零字节,案例参考:openGauss/MogDB 零字节问题处理

十、元数据版本不碰撞
PG 里通过 catalog_version_no 进行系统元数据碰撞,检测数据库的二进制与初始化的 PGDATA 是否匹配来避免可能隐藏的不兼容性问题。openGauss 目前不管是低启高,还是高启低都不会 BUMP。

posted @   openGaussbaby  阅读(16)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示