• 博客(1881)
  • 收藏
  • 关注

原创 瀚高用户反馈调研

瀚高用户调研

2022-04-22 12:35:13 1716 1

原创 【只为求才,Want AD】

【求才】有数据库DBA经验,或开发经验均可谈。中国大陆地区。感谢关注和推荐。company: www.highgo.comSend Resumes To Mail: lisong@highgo.com

2021-12-10 16:13:50 2418 2

原创 基于PostgreSQL进行Java应用开发

该手册由PG实验室的成员结合多年对postgresql数据库的使用及Java应用开发经验,总结了一套实战入门手册。帮助PostgreSQL软件爱好者及初学者快速学习postgresql数据库的相关知识。针对应用如何适配postgresql数据库,提供了丰富的技巧案例。开发人员在不了解postgresql的情况下,通过该手册的学习,能够自主的实现基于postgresql的应用开发工作。以上是适配手册涵盖的章节内容。本手册一共6个章节:第1章PostgreSQL介绍 1.1.PostgreSQL起源

2021-11-04 15:27:45 4697 1

原创 瀚高/PG复制表结构的sql语法

系统平台:Linux x86-64 Red Hat Enterprise Linux 7。本文主要用于介绍几种复制表结构的sql语法及区别。4.分别使用三种sql语法进行测试。一、示例语法及区别总结。创建索引(非约束索引)

2026-07-16 17:18:25 279

原创 COMMIT耗时长问题

2、ON COMMIT DELETE ROWS这种创建临时表的语法,在事务提交后删除数据,但保留临时表;随着临时表文件增多,文件系统inode数量变多,操作系统寻找文件时间变长,truncate时间变长,进而导致commit时间变长。创建临时表语句ON COMMIT DELETE ROWS(事务提交后删除数据,但保留临时表)改为ON COMMIT DROP(事务提交后删除临时表),解决临时表堆积。某系统运行时,使用数据库临时表的功能存在卡顿的情况,同时数据库日志中记录的慢SQL有大量commit相关日志。

2026-07-16 15:59:39 476

原创 HGDBv9版本pg模式配置nls_length_semantics产生警告日志

在HGDB V9版本,PG模式初始化的实例中,当显式配置参数nls_length_semantics时,例如。PostgreSQL 兼容模式原生支持按字符个数计算长度,不支持该参数,且参数配置后不生效。该警告日志会强制随相关SQL打印到数据库日志中,业务繁忙时会占用大量日志存储空间。所有操作使用highgo数据库用户执行,无需重启数据库,reload 即可生效。PG 模式下显式配置该参数,数据库会强制打印不兼容警告。集群架构下,需要检查并取消所有节点的此参数配置。

2026-07-15 16:06:00 378

原创 pg_rewind在流复制中的作用与应用

pg_rewind是用于在集簇的时间线分叉以后,同步一个 HighGo 集簇和同一集簇的另一份拷贝的工具。

2026-07-15 15:21:07 267

原创 HGDW如何处理某节点归档进程异常

standby节点wal receiver进程异常,该进程一直卡在请求00000001000000000000001A 这个wal处,异常提示与日志中提示吻合,因此判定集群standby节点异常。发现standby节点wal receiver进程异常,该进程一直卡在请求00000001000000000000001A 这个wal处,异常提示与日志中提示吻合。

2026-07-14 15:57:24 178

原创 create database创建数据库失败

1、初始化数据库的时候指定了参数locale、lc-collate、lc-ctype、lc-messages的值为’C’,即数据库默认模板template1对应这些参数值都为’C’。系统平台:Linux x86-64 Red Hat Enterprise Linux 7。1、创建数据库的时候指定模板template0即可修改这些参数。1、执行如下sql语句创建数据库报错。

2026-07-14 15:17:47 301

原创 HGDB中如何为表增加自增主键

alter table 表名 add constraint 约束名 unique (新字段名);alter table 表名 add constraint 约束名 unique (新字段名);行数不多可以使用serial而非bigserial,无论使用哪种格式一定要记得增加唯一约束。alter table 表名 add 新字段名 bigserial;本文主要介绍在瀚高数据库中如何为表增加新主键,便于业务改造和查询。实现原理:通过添加序列自增字段和唯一约束实现。可以根据数字类型来设计。

2026-07-13 15:52:29 334

原创 HGHAC4.2.1开启DCS Failsafe Mode的步骤

这一功能的应对的故障场景为当etcd集群出现故障或超时,patroni无法往etcd中写入数据时,之前版本的处理逻辑为集群将为只读集群,引入此功能后,当etcd不可用时,patroni之间会互相通信,只要主节点的patroni能够得到备节点的应答就认为集群正常,不会引发主节点的降级处理或切换,增加集群的稳定性。然后使用hghac show-config去验证。部署集群时,在hghac.yaml的dcs参数部分配置上failsafe_mode参数,之后正常启动服务即可。1、新部署集群开启及验证方法。

2026-07-13 15:38:21 169

原创 瀚高数据库集群切换后VIP丢失的处理方法

新版本hghac采用vip-manager管理vip,目前未发现有vip丢失现象,部分老版本采用callback脚本管理vip,可能会触发vip丢失情况,可采用集群切换使其自行加载vip或手动进行vip的添加。/opt/HighGo/tools/hghac/hghactl/hghactl -c /opt/HighGo/tools/hghac/hghac.yaml switchover 集群名称 ##未配置环境变量。本文主要用于介绍当瀚高数据库各类集群切换后,出现VIP丢失情况的处理方法。

2026-07-10 16:01:07 519

原创 linux-配置定时任务

minute 表示分钟(可以填写的数字为0-59),整点用0表示,1-10 表示从第1 到第10分钟这段时间内要执行,*/n 时表示每隔 n 分钟的时间间隔执行一次,另外1,2,3,…表示第1,2,3,…hour 表示小时(可以填写的数字为0-23),是24小时制,0表示子夜, 8-10 时表示从第8 到第10小时都要执行,*/n 表示每隔 n 小时的间隔执行一次,另外1,2,3,…day of week 表示的是星期几(可以填写的数字为0-6),0表示星期天,1表示星期一,1-5表示从周一持续到周五;

2026-07-10 15:02:31 269

原创 程序提示绑定参数报错

Cause: org.postgresql.uti.PSQL Exception:错误:绑定消息提供了0个参数但是已准备好语句""要求1个参数。org,postgresqL.util.PSQLException:错误:绑定消息提供了0个参数但是已准备好语句"要求1个参数。错误:绑定消息提供了0个参数但是已准备好语句""要求1个参数: nested exceptian is。1、修改参数streaming_replication_delay_time = 0即可。数据库版本:V604。

2026-07-08 15:44:52 337

原创 安全版V4.5密码加密算法由SM3改为MD5

注:参数password_encryption为动态参数,文件pg_hba可动态修改,因此无需重启数据库。系统平台:Linux x86-64 Red Hat Enterprise Linux 7。1、用默认三权用户和普通用户登录数据库,修改密码加密算法并更改密码。3、修改数据目录中的pg_hba.conf文件,将sm3改为md5。2、更改.pgpass中的密码,如未配置.pgpass请忽略此步。注:普通用户忘记密码时,可用管理员用户syssso设置密码。

2026-07-08 15:30:14 343

原创 企业版单机修改密码、密码过期、修改密码有效期及密码认证方式变更(sm3与md5)的操作步骤

当创建用户或修改用户密码且缺省validuntil时密码经过多长时间后过期,单位天,默认值7,取值范围0~365。需要更改用户认证密码,所有用户都需要改,如果需要更改回原密码,需要连续修改5次刷新(强制密码历史为5次)需要更改用户认证密码,所有用户都需要改,如果需要更改回原密码,需要连续修改5次刷新(强制密码历史为5次)用于企业版单机修改密码、密码过期、修改密码有效期及密码认证方式变更(sm3与md5)的操作步骤。登录highgo用户或者需要修改密码的用户。登录highgo用户或者需要修改密码的用户。

2026-07-07 15:44:51 298

原创 HGDB索引膨胀的检查与处理思路

假设对一个索引进行顺序的数据插入,那么索引分裂应该只会发生在最右边的叶子结点;若对索引进行无序的插入,那么中间的叶子结点会进行了分裂,多出了很多空闲空间,索引扫描的时候需要扫描更多的页,造成了io和存储空间上的浪费。

2026-07-07 15:33:37 250

原创 PostgreSQL libpq 由于整数回绕导致内存分配不足 HGVE-2025-E011

PostgreSQL libpq 客户端库中多个函数存在整数回绕问题,允许应用程序输入提供方或网络对端导致 libpq 分配内存不足并发生数百兆字节的越界写入。链接: https://pan.baidu.com/s/1zaqUn3NX2_QUT49m4Q-flQ?该漏洞是由于 libpq 库中多个字符串转义和字节转义函数在处理大尺寸输入时存在整数溢出问题。版本:9.0.4,9.0.3,6.0.4,4.5.9,4.5.10,4.5.11。添加 add_size_overflow 函数来安全地进行大小计算。

2026-07-06 16:23:46 210

原创 PostgreSQL 的 CREATE STATISTICS 未检查 schema 的 CREATE 权限 HGVE-2025-E010

这违反了 PostgreSQL 的安全模型,允许表所有者在没有相应 schema 创建权限的情况下,在该 schema 中创建统计对象,从而导致潜在的命名空间冲突和拒绝服务攻击。在 PostgreSQL 的 CREATE STATISTICS 命令中,由于缺少权限检查,表的所有者可以在任意 schema 中创建统计对象,从而对其他具有 CREATE STATISTICS 权限的用户造成拒绝服务攻击(DoS)。版本:9.0.3,9.0.4,6.0.4,4.5.9,4.5.10,4.5.11。

2026-07-06 16:20:09 329

原创 pgroonga全文检索插件的BUG

这个BUG是3.0.1之前的版本存在,在3.0.1版本已经修复,如果数据库中版本小于3.0.1升级插件版本或者升级数据库可以解决(目前V4.5最新支持3.2.4,ivorysql内置是4.0.4);如果重复执行 REINDEX 和 VACUUM ,PGroonga 可能返回错误结果并导致 INSERT 失败的错误。如果重复执行 REINDEX 和 VACUUM ,PGroonga 可能返回错误结果并导致 INSERT 失败的错误。

2026-07-03 16:46:25 260

原创 磁盘故障导致数据库进入恢复模式

3、vmstat 查看b 列:处于 “不可中断睡眠状态” 的进程数,持续稳定在 “3”,说明系统中始终有 3 个进程在等待 I/O 资源。2、top命令显示CPU 时间的 18.7%​ 消耗在 wa​ (I/O Wait) 上。1、命令 ls -lrth 执行后无任何输出,进程进入挂起状态。程序无法连接数据库,psql登录数据库提示数据库进入恢复模式。经诊断确认为存储设备物理故障,需要硬件供应商介入处理。系统平台:银河麒麟 (鲲鹏)

2026-07-03 15:04:32 323

原创 HGVE-2025-E009

理论上,写一个 VALUES ()(零列的值行)是很不常见甚至被禁止的,所以在正常写 SQL 时不会出现这种情况,但在某些情况下,可能间接触发这个问题:比如引用一个 零列表(zero-column table):当你写 tab.在parse阶段,将 VALUES 从行导向的列表转换为列导向列表的解析器代码在列数为零时会失败。通常不能直接写出符合这种情况的sql语句(尽管理论上应该可以),但如果展开一个零列表的 tab.* 引用,就可能触发这种情况。版本:6.0.4,4.5.10,4.5.8。

2026-07-02 16:23:18 290

原创 数据库日常检查

通过系统化的数据库日常检查,主动发现并解决数据库潜在问题,确保其高可用性、高性能及数据安全性,降低因数据库问题导致的业务中断风险。检查当前数据库的连接情况,包括总连接数、当前连接数。数据库相关的操作记录,告警(WARNING),错误(ERROR)都会记录到日志中。关注日志中的告警(WARNING),错误(ERROR)信息。备份路径下,会存在备份和备份日志。查看备份日志确认备份状态。表膨胀会导致查询性能下降和空间浪费,建议及时进行表膨胀检查和优化。对比表空间和磁盘空间,表空间占比过大时需提前进行磁盘扩容。

2026-07-02 16:15:13 336

原创 PostgreSQL pg_dump工具存在安全漏洞,可导致源数据库服务器的超级用户在客户端执行psql恢复操作时,触发任意代码执行HGVE-2025-E007

PostgreSQL的pg_dump工具存在不可信数据注入漏洞,允许源服务器的恶意超级用户通过psql元命令注入任意代码,在客户端使用psql恢复备份时以客户端操作系统账户权限执行命令。当pg_restore用于生成纯文本格式转储时也存在此风险。恶意服务器可能会将psql元命令注入纯文本转储输出(即使用pg_dump --format=plain、pg_dumpall或者pg_restore --file创建的脚本)中,这些脚本会在运行psql的机器上执行恢复操作时被运行。1.修复pg_dump工具。

2026-07-01 16:24:04 448

原创 PostgreSQL pg_dump对象名称中有换行符时可导致psql客户端及恢复目标服务器执行任意恶意代码HGVE-2025-E008

PostgreSQL中的pg_dump、pg_dumpall工具对换行符的处理不当,使得原始服务器上的用户能够通过在精心构造的对象名称中插入psql元命令,将任意代码注入到由用于恢复转储文件的客户端操作系统账户(运行 psql)执行的恢复过程中。对象命中存在换行符的情况下,pg_dump导出生成注释时,会将换行符后的内容转到下一行,导致部分内容从注释中逃逸。整体修复方案:pg_dump导出时,在生成对象注释时,将换行符(\n)替换为空格,保证对象名中的字符串不会从注释中逃逸。版本:9.0.3,9.0.4。

2026-07-01 15:44:57 311

原创 HGVE-2025-E005

这是一个权限提升(Privilege Escalation)型漏洞,源于 PostgreSQL 对某些操作(如 WITH HOLD 游标或延迟触发器)的不充分限制,导致可以将攻击代码注册为“事务提交时执行的用户代码(at-commit user code)”,从而劫持执行流程。补丁下载地址: 链接: https://pan.baidu.com/s/1gFfd0tFiZf0iMLIGZKPbvQ?依据PostgreSQL官方公布的漏洞修复方法,修改受影响功能模块相关函数的执行逻辑,严格权限检查机制。

2026-06-30 16:01:07 293

原创 HGVE-2025-E003

PostgreSQL 在 GB18030 编码验证中存在缓冲区过度读取漏洞,允许数据库输入提供者在某些平台上通过触发 1 字节的越界读取导致进程终止,从而实现临时拒绝服务。当输入数据在内存分配末尾恰好为不完整字符(如 0xFE)时,原编码验证函数 pg_encoding_mblen 未严格检查剩余字节长度,直接尝试读取下一个字节,导致越界访问。pwd=ytsx 提取码: ytsx。版本:4.5,4.5.1,4.5.2,4.5.6,4.5.7,4.5.8,4.5.9,4.5.10,9.0.1。

2026-06-30 14:43:52 185

原创 pg_basebackup因权限不足无法备份

涉密专用机文件无法修改,因pg_basebackup问题更换pg_basebackup时,拷贝到bin目录下会报权限不足,只能申请补丁包安装,安装后如果没替换pg_basebackup,可以修改备份脚本语句中pg_basebackup的路径到对应路径,或者重新申请对应安装包的补丁包。修改权限后,再次执行备份脚本,备份成功。pg_basebackup权限不对。

2026-06-30 14:30:16 354

原创 查询优化-提升子查询-UNION类型

到此为止,还有一个需要解决的问题:子查询提升将对应的RangeTblEntry添加到了父查询的rtable中,而且过程中更新了rtindex(第4步),这个新的RangeTblEntry不会在父查询的FromExpr中出现,所以构造完ApendRelInfo后,需要对子查询构造新的RangeTblRef,填充新的rtindex, 然后执行pull_up_subqueries_recurse。如果子查询没有特殊的特性,比如分组/聚合,那么我们可以将其合并到父查询的联接树中。最后就能得到优化后的查询树结构。

2026-06-29 15:49:53 588

原创 pg空值管理

int natts = ((tup)->t_infomask2 & HEAP_NATTS_MASK) // 在该元组的元组头部中,根据infomask2计算该元组的属性数目 HEAP_NATTS_MASK = 0x7ff, 11位。if (hasnulls && att_isnull(attnum, bp))// 在该元组的t_bits当中判断该属性对应的属性值是否为空。

2026-06-29 15:29:29 317

原创 HGDB开关归档、修改归档路径的方法

archive_command参数的默认值是个空字符串,它的值可以是一条shell命令或者一个复杂的shell脚本,%p表示将要归档的WAL文件的包含完整路径信息的文件名,%f代表不包含路径信息的WAL文件的文件名。修改参数archive_directory的值为‘/new_archive’修改参数archive_command中路径为新的归档路径。新建新的归档存放位置/new_archive。新建新的归档存放位置/new_archive。HGDB开关归档、修改归档路径的方法。

2026-06-26 16:09:51 232

原创 HGDB索引膨胀的检查与处理思路

假设对一个索引进行顺序的数据插入,那么索引分裂应该只会发生在最右边的叶子结点;若对索引进行无序的插入,那么中间的叶子结点会进行了分裂,多出了很多空闲空间,索引扫描的时候需要扫描更多的页,造成了io和存储空间上的浪费。

2026-06-26 16:08:22 334

原创 为什么停库可能会很慢?

如果有walsender进程存在(例如有standby,有pg_basebackup,有pg_receivewal等利用流复制协议的客户端就会存在walsender进程),那么要等walsender将所有未发送完的wal日志都发送给下游后才可关闭该进程。事实上,除了client进程以后,数据库可能会有 walsender 进程、归档进程等。了解了归档进程和walsender进程需要执行的操作后,我们也就明白为什么有时候停库会花费很长的时间, wal没有发送完成,wal日志未归档完成都会导致这种情况的发生。

2026-06-24 17:32:53 396

原创 审计策略修改

系统平台:银河麒麟svs(X86_64),银河麒麟(龙芯)svs,银河麒麟(飞腾)svs,银河麒麟 (X86_64),银河麒麟 (飞腾),银河麒麟 (鲲鹏),银河麒麟 (海光),银河麒麟 (龙芯)版本:9.0.1,4.5.10,4.5.9,4.5.8,4.5.7,4.5.6,4.3.4.9,4.3.4.8,4.3.4.7,4.3.4.6,4.3.4.5,4.3.4.4,4.3.4.3,4.3.4.2本文适用于指导Highgo Database数据库审计功能相关配置。目前瀚高数据库支持审计功能的版本有安全版

2026-06-24 15:41:29 595

原创 HGDB创建只读用户

3、如果表的属主为sysdba用户,需要把所有表的只读权限赋给只读用户,不允许关库可以(3)生成对应sql;(1)把test_schema_secure模式下的表只读权限赋给只读用户read_only_secure报错。(6)设置test_schema_secure模式新增表,用户read_only_secure也有只读权限。6、设置test_schema_secure模式新增表,用户read_only_secure也有只读权限。3、单独将表abs的只读权限赋给用户read_only_secure。

2026-06-24 15:33:57 303

原创 企业版v9创建函数sys_guid()

sys_guid()为oracle中生成全局唯一标识符的函数,瀚高数据库v9版本未兼容此函数。2.根据函数uuid_generate_v4()创建sys_guid()系统平台:UOS(海光),银河麒麟 (X86_64)1.创建“UUID-ossp”扩展。

2026-06-23 15:58:22 250

原创 hghac集群服务器时间同步(chrony同步)

2、银河麒麟系统默认安装了chrony同步工具,相对于其他的时间同步工具,chrony是轻量级的时间同步工具,具有更加先进的算法,更高的时间精度和稳定性,以及chrony配置相对简单,1、hghac集群使用etcd或者zookeeper监控组件,需要监控组件所在服务器时间一致才能保障hghac集群的高可用性和稳定性,对于时间不一致的服务器需要做时间同步。系统平台:银河麒麟(龙芯)svs,银河麒麟 (X86_64),银河麒麟 (飞腾),银河麒麟 (鲲鹏),银河麒麟 (海光),银河麒麟 (龙芯)

2026-06-23 15:46:58 462

原创 V9数据库替换授权

Project info: xxx集团有限公司信息化项目(一期)Project info: xxx集团有限公司信息化项目(一期)1、上传新的授权文件到服务器并修改授权文件属主为highgo。①查看授权文件信息(注意:此命令并不会将授权导入到数据库)2、V9数据库授权文件为license.dat。License used type: 交付。License used type: 交付。授权目录license文件夹在安装目录下。User info: xxx集团有限公司。2、查找授权目录license文件夹。

2026-06-23 15:44:56 407

原创 如何处理数据库连接数满

管理员用户无法连入数据库时,可先在系统层kill几个空闲连接后,再尝试连入,若kill后,应用仍不断重复发起连接,可让应用人员先停止相关应用程序后再进行操作。管理员用户无法连进数据库时,将postgresql.auto.conf配置文件中的max_connections值修改后,重启数据库。–管理员用户可以连进数据库时,连入数据库查询(普通用户连接数被占满时,默认保留3个连接给管理员使用)条件允许时,建议重启数据库前先停止应用程序,重启完成后,再启动应用程序。数据库设置的连接数已满,无法建立新的连接。

2026-06-22 16:50:16 295

原创 HGDB中如何在线重建索引

非常大的表可能需要几个小时才能编制索引,即使对于较小的表,索引重建也会锁定编写器,这些时间段对于生产系统来说是不可接受的。使用此选项时,PostgreSQL必须对需要重新生成的每个索引执行两次表扫描,并等待可能使用索引的所有现有事务的终止。此方法需要比标准索引重建更大的工作量,并且需要相当长的时间才能完成,因为它需要等待可能修改索引的未完成的事务。但是,由于它允许在重建索引时继续正常操作,此方法可用于在生产环境中重建索引。当然,重建索引所需的额外 CPU、内存和 I/O 负载可能会减慢其他操作的速度。

2026-06-22 16:03:44 355

HGVE-2023-E006(CVE-2023-5870)

HGVE-2023-E006(CVE-2023-5870)

2026-03-04

HGVE-2023-E005(CVE-2023-5869)

HGVE-2023-E005(CVE-2023-5869)

2026-03-04

HGVE-2023-E004(CVE-2023-5868)

HGVE-2023-E004(CVE-2023-5868)

2026-03-03

HGVE-2024-E001(CVE-2024-0985)

HGVE-2024-E001(CVE-2024-0985)

2026-03-03

HGVE-2024-E002(CVE-2024-4317)

HGVE-2024-E002(CVE-2024-4317)

2026-03-02

修复HGVE-2024-E003安全漏洞

修复HGVE-2024-E003安全漏洞

2026-02-24

HGWatcher使用说明

HGWatcher使用说明

2026-01-27

weblogic 连接瀚高数据库

weblogic 连接瀚高数据库

2026-01-12

通过jdbc连接数据库报时区错误

通过jdbc连接数据库报时区错误

2025-12-25

Activiti 连接瀚高数据库

Activiti 连接瀚高数据库

2025-12-23

C#程序迁移指南附件sqltest

C#程序迁移指南附件sqltest

2025-11-04

HGDB的log打印配置

HGDB的log打印配置

2025-10-30

Linux环境下编译C语言使用libpq连接瀚高数据库

Linux环境下编译C语言使用libpq连接瀚高数据库

2025-10-24

瀚高数据库data目录详解

瀚高数据库data目录详解

2025-10-15

psql常用命令及示例

psql常用命令及示例

2025-10-11

外网获取瀚高JDBC方法和使用案例

外网获取瀚高JDBC方法和使用案例

2025-09-18

金仓到瀚高数据库的迁移

金仓到瀚高数据库的迁移

2025-09-10

外网获取瀚高.NET驱动dll方法和使用案例

外网获取瀚高.NET驱动dll方法和使用案例

2025-09-03

使用Qgis将shp文件导入瀚高数据库

使用Qgis将shp文件导入瀚高数据库

2025-08-04

多表查询时,执行速度耗时太多

多表查询时,执行速度耗时太多

2025-08-01

excel 导入highgo数据库

excel 导入highgo数据库

2025-07-21

CnFirstChar

CnFirstChar

2025-07-16

在瀚高数据库中实现汉字转拼音(APP)

在瀚高数据库中实现汉字转拼音(APP)

2025-07-16

Navicat连接开启sm3认证的瀚高数据库

Navicat连接开启sm3认证的瀚高数据库

2025-05-19

hgdbdeveloper备份报错:备份失败!

hgdbdeveloper备份报错:备份失败!

2025-05-19

API方式实现COPY调用

API方式实现COPY调用

2025-05-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除