暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

F25赛年数据库踩坑点总结

原创 彭冲 2025-12-25
369

2025年工作中一些记忆犹新的案例盘点

openGauss数据库

  • 个人虚拟机环境内存不大时,可设置enable_memory_limit=off
  • 个人虚拟机环境节约磁盘可关闭双写,设置enable_double_write=off
  • 不支持.pgpass密码文件或环境变量,gsql可使用-W/–password选项
  • gs_dump使用tar格式备份时需检查表的大小在8GB以内
  • 物化视图的字典表是gs_matview
  • sysdate函数性能不如now函数
  • number类型建议换成numeric类型
  • large sequence暂不推荐使用
  • oracle风格的自刷新物化视图不能对基表做truncate操作
  • 秒的精度虽然支持FF1-FF7,但interval间隔类型最高到FF6
  • interval间隔类型对纯数字的单位默认按day处理,而非second
  • 分区表定义分区的边界时,建议显式设置最小值边界分区(否则系统会帮我们生成最小值边界分区,分区的名称可能会与预期不符)
  • 分区表仅对单个分区建索引,需要使用PG风格的分区创建语法
  • 分区表仅备份单个分区,gs_dump使用"–table-conditions"选项格式为:
--table-conditions="tab_part1;partition(p1)" --table-conditions="tab_part1;subpartition(p1_sub1)"
  • 逻辑备份数据过滤,gs_dump使用"–table-conditions"选项格式为:
--table-conditions="tab1;where id>100" --table-conditions="tab1;where id<100 limit 5"
  • 加密备份恢复单个表及其依赖对象
$ gs_dump --with-encryption=AES128 --with-key=openGauss@2025 \ --include-depend-objs --table=public.tab1 --file=f1.dat mydb $ gsql --with-decryption=AES128 --with-key=openGauss@2025 --file=f1.dat --dbname=restore_db
  • 逻辑备份使用二进制格式导出,可使用"–remap-schema"进行重映射
  • 服务端COPY文件时,不仅要有gs_role_copy_files角色,还需设置enable_copy_server_files=on
  • gs_probackup工具无法配置拷贝归档进行PITR恢复,可基于全备或增量恢复
  • 字段名大小写敏感JDBC驱动参数:db_compatibility=oracle/postgresql
  • MySQL兼容性create database可以创建为schema:受b_compatibility_mode参数控制
  • MySQL兼容性auto_incement字段不能按sequence方式来设置值

PostgreSQL数据库

  • 如果修改或重设了wal段文件的默认大小,需保证min_wal_size至少为wal_segment_size的两倍
  • PG14+版本,compute_query_id=on,query_id亦可为NULL(queryid计算生成过程中),并非bug
  • PG16+版本,standby节点创建逻辑复制槽会被primary节点未提交的事务阻塞,等待事件无法观测
  • PG17+版本,使用pg_dump逻辑导出时会set transaction_timeout参数,再使用pg_restore恢复到低版本会提示参数设置错误,但不影响最终恢复结果
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论