- 博客(1673)
- 收藏
- 关注
原创 【只为求才,Want AD】
【求才】有数据库DBA经验,或开发经验均可谈。中国大陆地区。感谢关注和推荐。company: www.highgo.comSend Resumes To Mail: lisong@highgo.com
2021-12-10 16:13:50
2230
2
原创 基于PostgreSQL进行Java应用开发
该手册由PG实验室的成员结合多年对postgresql数据库的使用及Java应用开发经验,总结了一套实战入门手册。帮助PostgreSQL软件爱好者及初学者快速学习postgresql数据库的相关知识。针对应用如何适配postgresql数据库,提供了丰富的技巧案例。开发人员在不了解postgresql的情况下,通过该手册的学习,能够自主的实现基于postgresql的应用开发工作。以上是适配手册涵盖的章节内容。本手册一共6个章节:第1章PostgreSQL介绍 1.1.PostgreSQL起源
2021-11-04 15:27:45
4489
1
原创 linux-配置定时任务
crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于/etc/crontab 文件中,以供之后读取和执行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。
2026-03-05 14:48:57
122
原创 浅析pg_hint_plan使用
扫描提示对普通表、继承表、表、 UNLOGGED表、临时表和系统目录有效。连接方法的提示:联接方法提示强制执行涉及指定表的联接的联接方法。这只会影响普通表、继承表、 UNLOGGED 表、临时表、外部(外部)表、系统目录、表函数、 VALUES 命令结果和 CTE 上的联接。提示短语根据对象的种类及其对规划的影响分为六种类型:扫描方法、连接方法、连接顺序、行数更正、并行查询和GUC参数设置。pg_hint_plan 读取给定 SQL 语句的特殊形式的注释中的提示短语。介绍pg_hint_plan的使用。
2026-03-05 14:46:06
176
原创 企业版单机修改密码、密码过期、修改密码有效期及密码认证方式变更(sm3与md5)的操作步骤
当创建用户或修改用户密码且缺省validuntil时密码经过多长时间后过期,单位天,默认值7,取值范围0~365。需要更改用户认证密码,所有用户都需要改,如果需要更改回原密码,需要连续修改5次刷新(强制密码历史为5次)需要更改用户认证密码,所有用户都需要改,如果需要更改回原密码,需要连续修改5次刷新(强制密码历史为5次)用于企业版单机修改密码、密码过期、修改密码有效期及密码认证方式变更(sm3与md5)的操作步骤。登录highgo用户或者需要修改密码的用户。登录highgo用户或者需要修改密码的用户。
2026-03-05 09:22:53
463
原创 HGVE-2023-E006(CVE-2023-5870)
相反,它可以向后台worker进程发出信号,包括流复制数据库辅助进程。向autovacuum worker进程和这两个辅助进程发出信号不会提供有意义的攻击,因此利用此漏洞需要一个不重要的不能自己恢复的后台worker进程。银河麒麟V4、银河麒麟服务器版V10、中标麒麟V5、中标麒麟V6、中标麒麟V7、UOS20服务器版、UOS20桌面版、中科方德V3、中科方德V4、Centos7/8/9、普华V4、普华V5、凝思V6。创建一个信号终止函数并将其赋给pg_signal_bendend角色,使其执行。
2026-03-04 14:05:28
106
原创 HGVE-2023-E005(CVE-2023-5869)
银河麒麟V4、银河麒麟服务器版V10、中标麒麟V5、中标麒麟V6、中标麒麟V7、UOS20服务器版、UOS20桌面版、中科方德V3、中科方德V4、Centos7/8/9、普华V4、普华V5、凝思V6。2023年PostgreSQL被公布存在sql注入攻击漏洞,该漏洞允许已认证的数据库用户通过在SQL数组值修改期间缺少溢出检查来执行任意代码。对整数溢出的数组下标进行操作。安装附件patch。
2026-03-04 10:00:29
9
原创 HGVE-2023-E004(CVE-2023-5868)
执行类似jsonb_object_agg()函数时,会在聚合函数调用的完成聚合调用的初始转换transformAggregateCall() 中会先对直接参数与聚合参数导入参数类型链表中,然后在有序参数集合判断中对参数类型进行判断,并没有对全部无效参数从链表tlist中去除,导致链表argtypes存在多余的信息,致使能够泄露系统内存中的信息。2023年PostgreSQL被公布存在代码执行漏洞,该漏洞允许远程用户利用某些使用’unknown’类型参数的聚合函数调用来访问敏感信息。安装附件patch。
2026-03-03 14:02:21
129
原创 HGVE-2024-E001(CVE-2024-0985)
这个命令旨在将SQL函数以物化视图的所有者身份运行,从而安全地刷新不受信任的物化视图。作为利用此漏洞的一部分,攻击者创建使用CREATE RULE将内部构建的临时表转换为视图的函数。银河麒麟V4、银河麒麟服务器版V10、中标麒麟V5、中标麒麟V6、中标麒麟V7、UOS20服务器版、UOS20桌面版、中科方德V3、中科方德V4、Centos7/8/9、普华V4、普华V5、凝思V6。下载附件对应版本的附件即补丁包,按照附件内提示进行安装升级。版本:9.0.1,4.5.8,6.0。
2026-03-03 13:20:33
114
原创 HGVE-2024-E004、HGVE-2024-E005、HGVE-2024-E006、HGVE-2024-E007
HGVE-2024-E007:PL/Perl中对环境变量的不正确控制允许无特权的数据库用户更改敏感的进程环境变量(例如PATH)带来执行任意代码的风险。新发现安全漏洞 HGVE-2024-E004、HGVE-2024-E005、HGVE-2024-E006、HGVE-2024-E007。HGVE-2024-E005:中间人攻击者发送一条长错误消息向psql。HGVE-2024-E006:数据库中不正确的权限控制允许低权限的用户查看或修改与预期不同的行。HGVE-2024-E004:数据库启用了行安全策略。
2026-03-02 13:25:13
192
原创 HGVE-2024-E002(CVE-2024-4317)
PostgreSQL 内置视图pg_stats_ext和pg_stats_ext_exprs中缺少授权,允许非特权数据库用户从其他用户的 CREATE STATISTICS 命令中读取大多数常见值和其他统计信息。系统平台:银河麒麟 (X86_64),UOS(鲲鹏),银河麒麟svs(X86_64),中科方德 (X86_64),普华Linux(龙芯),中标麒麟 (x86-64) 6。普通用户在查询语句中使用系统视图pg_stats_ext和pg_stats_ext_exprs。
2026-03-02 09:57:36
105
原创 企业版v9创建函数sys_guid()
sys_guid()为oracle中生成全局唯一标识符的函数,瀚高数据库v9版本未兼容此函数。2.根据函数uuid_generate_v4()创建sys_guid()系统平台:UOS(海光),银河麒麟 (X86_64)1.创建“UUID-ossp”扩展。
2026-02-28 16:49:19
21
原创 流复备机断档处理
流复制集群出现主备数据库因断档导致数据不同步的问题,均可使用以下第一种方式解决,此解决方法若是数据量较大的情况下要选择在夜间业务不繁忙时重做备库,因为重做过程可能会对资源占用较大,对数据库运行有一定影响。主备流复制断档,由于未配置复制槽,wal已被删除,查询数据库日志,某wal日志文件已被删除,但在主节点归档目录中查询到此wal日志文件。数据库备节点所需wal日志已被删除,导致备节点接收不到相应日志,流复制断连。主备断档时间较久,备库需要的wal日志,或者归档日志已经被删除;
2026-02-28 14:36:50
498
原创 Etcd集群重做步骤
检查操作系统日志记录,发现故障时间段内etcd集群各节点间出现长时间的网络故障,导致etcd集群不可用。etcd集群是存储集群主备切换仲裁信息的分组件,导致数据集群无法维持正常的运行状态,首先降级为只读集群。系统平台:Linux x86-64 Red Hat Enterprise Linux 7,UOS(海光),银河麒麟svs(X86_64)应用无法连接数据库,无法对外提供服务。#启动主节点hghac服务。版本:4.5,6.0。
2026-02-28 09:43:15
58
原创 pg_basbackup备份与恢复
r, --max-rate=RATE 传输数据目录的最大传输速率(以 kB/s 为单位,或使用后缀“k”或“M”)-F, --format=p|t 输出格式(plain,直接拷贝数据文件,tar 配合 -z -Z 进行打包压缩)-X, --wal-method=none|fetch|stream 包含指定方法所需的 WAL 文件。-s, --status-interval=状态包发送到服务器的间隔时间(以秒为单位)-Z, --compress=0-9 使用给定的压缩级别压缩 tar 输出。
2026-02-28 08:57:42
604
原创 UOS e版本下hac集群归档使用cp命令,导致归档失败
当前版本的hac,删除服务文件调用hac打包的libselinux.so.1的配置,重命名libselinux.so.1文件,使其调用操作系统自带的;数据库使用服务器cp命令归档,使用hac集群服务启动时,cp命令依赖的libselinux.so.1与此操作系统存在不兼容的地方。数据库单机,数据库归档进程正常;hac集群启动数据库,数据库归档报错;归档命令:cp %p /path/archive/%f。升级hac版本,4.2.3.3版本已经解决此问题;数据库:4.5.8+hac4.2.1。
2026-02-27 16:23:17
52
原创 ERROR:cannot user serializalbe mode in a hot standby
GUC参数配置问题,数据库中事务隔离级别default_transaction_isolation默认为:read committed,应用在会话中设置了默认的事务隔离级别为 SERIALIZABLE 了,导致每次连接5888端口提示该报错。应用连接读写分离端口报错:ERROR:cannot user serializalbe mode in a hot standby。删除应用配置中的设置的事务隔离级别,即可解决。系统平台:UOS (飞腾)
2026-02-27 15:46:28
220
原创 如何排查阻塞语句
②pg_blocking_pids函数: 返回阻止具有指定进程 ID 的服务器进程获取锁的会话的进程 ID 数组,如果没有此类服务器进程或未被阻止,则返回空数组。①通过查询可以发现,当前update语句的pid为16725,被pid为16717的update语句阻塞。1、通过pg_stat_activity视图和pg_blocking_pids函数查找阻塞sql。②该函数会终止进程,一旦进程被终止,未完成的事务可能会回滚,并且可能会丢失数据。查询阻塞当前sql的语句,并结束阻塞语句。
2026-02-27 15:09:32
163
原创 时序库timescaledb压缩功能优化
在2.11之前,数据压缩成本受排序的影响,排序的成本取决于表的大小和分配的内存大小(work_mem)。如果表很大,内存设置的很小,在这种情况下,元组将作为临时文件写到磁盘。此外在客户的系统中发现了这样的趋势:在大的分区压缩期间会创建大型临时文件导致性能下降。为了优化压缩,我们在压缩代码中添加了一个智能选项,以选择与压缩设置配置相匹配的相关索引。从理论上讲,这是对压缩功能的一个优化,但事与愿违。安装时序库timescaledb,使用数据压缩功能,压缩操作非常慢,导致压缩进程一直在运行,大量占用磁盘IO。
2026-02-27 14:46:15
354
原创 逻辑复制禁止复制源端COPY导入的数据
如果不需要订阅端的数据,全部基量数据都从发布端同步获取的话,需要执行如下步骤清空目标端表数据。如果需要订阅端的数据,不打算从发布端同步基量数据。需要先将该表从发布集中剔除,然后重新添加进去并跳过基量数据复制。默认情况下创建逻辑复制会copy订阅端基量数据,订阅端存在与发布端相同唯一约束的数据的情况会导致数据冲突。数据库进行逻辑复制部署时,订阅端同步发布端数据失败,日志报错为表字段为违反唯一约束,copy报错。版本:9.0,6.0,5.6.5,4.5.9,4.3.4.9,4.7.8。
2026-02-27 13:56:56
51
原创 mysql兼容模式下smallint类型修改成boolean类型失败的处理办法
兼容模式为mysql时修改字段类型,由smallint类型修改为boolean,报错: ERROR: cannot cast type smallint to boolean LINE 1: alter table t2 alter dy type boolean using dy::boolean。smalliint和boolean是不同的类型,存储的是不同的值,没有办法直接进行数据转换。先将字段类型由smallint转成integer,再转成boolean。
2026-02-27 13:35:04
266
原创 如何处理瀚高数据库与PG的冲突
瀚高数据库引进了国际上最先进的开源数据库PostgreSQL内核技术,在此PostgreSQL社区版之上做了一系列的研发和优化。当服务器上同时部署PostgreSQL数据库与瀚高数据库时,可能存在数据库命令冲突、误操作等情况。正常情况下,配置好PATH、LD_LIBRARY_PATH、PGDATA这三个变量,即可使用psql正常连接到HGDB的psql命令行下,并能够通过pg_ctl控制数据库服务的启停。对于HGDB安全版4.5和企业版6,psql工具默认会访问位于/tmp/下的socket文件。
2026-02-26 15:06:11
528
原创 瀚高HGHAC高可用集群配置逻辑复制槽方法
本文档用于指导使用hghactl集群命令配置逻辑复制槽;若用数据库命令创建逻辑复制槽,在集群主备切换新主节点不会自动创建逻辑复制槽;意外情况出现的逻辑复制断开,集群会识别该逻辑复制槽为unkown,删除逻辑复制槽。此参数可用于消除由清理记录导致的查询取消,但对于某些工作负载,可能会导致主库膨胀。如果已经成功创建逻辑复制,证明该参数为logical,也请跳过下方命令。方法二:修改订阅指定逻辑复制槽,不会影响已有逻辑复制。关掉逻辑复制订阅段数据库,逻辑复制槽依然存在。方法一:创建订阅指定逻辑复制槽。
2026-02-26 14:27:09
400
原创 hghac和hgproxy版本升级相关操作和注意事项
1、如果用的是tar包安装,etcd.service和hghac.service需要手动拷贝到/usr/lib/systemd/system/文件夹下。2、关闭服务时先停止hghac.service,再关闭etcd.service,防止数据库都变成备库模式。本文档用于高可用集群环境中hghac组件和hgproxy组件替换和升级操作。3、注意备份原集群配置文件,参数尽量保持与原配置相同。版本:4.5.6,4.5.7,4.5.8。操作前请先备份原集群配置文件。查看etcd集群状态。初始化hgproxy。
2026-02-26 13:45:57
66
原创 数据库表字段插入bug
数据库安全版v4.5.1,安装包为:hgdb4.5.1-see-centos7-x86-64-20210804.rpm。在使用过程中,向表中插入数据时,因为数据超长,不能将数据插入表中,报错信息为“错误: 对于可变字符类型来说,值太长了(1)”,根据报错,不能详细判断是哪个字段超长。验证结果: 通过验证测试,使用该补丁,可以完成相关需求,并准确显示报错信息。错误: 对于列[name]的可变字符类型来说,值太长了(1)如需该补丁文件,请联系400-708-8006获取。–补丁安装后验证测试。
2026-02-26 08:59:42
64
原创 API方式实现COPY调用
请链接 Highgo 数据库客户端C库,位于数据库安装路径的lib下的 libpq.so ,包含数据库安装路径的 include 下的头文件libpq-fe.h。需要将数据库中的数据导出到磁盘上保存。此需求可使用数据库工具copy实现,使用copy to命令将数据导出到文件中。附件里已提供API解决方案,实现在C++开发环境中,以COPY TO的方式传输大量数据到指定的文件中。对于传入 PQexec 的 copy_command 命令,请根据实际情况数据在文件中需要的格式来进行调整。
2026-02-25 13:58:16
54
原创 修复HGVE-2024-E003安全漏洞
在PostgreSQL中,pg_dump用来导出数据库。开始导出数据库对象时,pg_dump先会检查这些对象的定义和类型,并且在稍后使用这些信息。漏洞存在于,攻击者利用检查数据库对象与使用这些数据之间的时间差,在pg_dump检查某个数据库对象(比如表或序列)后,但在使用该对象之前,将其替换为其他对象(比如视图或外部表),替换后的对象中可能包含恶意SQL代码。1、超级用户执行数据库备份时。2、攻击者拥有在当前模式中创建对象的权限 3、攻击者能够赢得竞争条件。安装附件patch。
2026-02-24 15:54:26
80
原创 could not open shared memory segment “/PostgreSQL.xxxxx“: No such file or directory
企业版数据库服务使用的用户与备份用户同名,均为highgo,定时任务自动备份结束后,user退出并清除/dev/shm下的所有IPC objects,此时数据库存在并发进程的话就会报相应的错误。数据库参数dynamic_shared_memory_type设置为posix时,并行查询进程会在/dev/shm文件夹下生成PostgreSQL.开头的共享内存段文件,并行查询结束时删除。修改操作系统参数RemoveIPC为no。重启systemd-logind服务生效。将RemoveIPC修改为no。
2026-02-24 14:03:49
54
原创 数据库未正常关闭后,再次启动时只有主进程,数据库日志无输出
base/pgsql_tmp目录用来支持一些需要临时存储空间的操作,比如排序、大型查询等;目录大小跟随这些操作变化,当数据库关闭时,数据库没有任何操作,则目录为空;但当前目录不为空,导致报错,也是强制关闭数据库导致的。现象:使用pg_ctl stop停止数据库,未正常关闭;使用pg_ctl stop -m i 强制关闭数据库后,再次启动数据库,启动失败;只有数据库主进程,查询数据库日志没有任何输出;解决:数据库关闭时,先执行checkpoint;1、查询数据库进程是否正常,若只有主进程,则kill;
2026-02-24 13:53:08
152
原创 数据库中ALTER SYSTEM、ALTER DATABASE、ALTER USER的使用
当database或user需要单独配置参数时,可使用ALTER DATABASE单独设置database的参数,使用ALTER USER单独设置user的参数。系统平台:Linux x86-64 Red Hat Enterprise Linux 7。1、在项目上线时做好项目规划以及数据库相关设置,项目上线后非必要不修改数据库参数;2、使用数据库全局参数,不针对user、database单独设置参数;使用ALTER DATABASE单独修改database的兼容模式;版本:4.5,6.0。
2026-02-12 14:16:50
62
原创 hghac8008漏洞扫描处理
1、服务器上添加防火墙规则,允许相应端口通过,以10.xx.xx.189、10.xx.xx.190、10.xx.xx.191为例。系统平台:Linux x86-64 Red Hat Enterprise Linux 7。防火墙规则生效优先级为:直接规则–富规则–区域规则。本文适用于处理hghac8008端口漏洞户。
2026-02-12 10:46:29
522
原创 hgdb运行日志保存周期配置详解
log_filename参数默认是postgresql-%Y-%m-%d_%H%M%S.log,默认为永久保留,以下是详解介绍。本文主要用于介绍hgdb运行日志配置项,工程师可根据客户需要进行保存策略的设置。2、日志保存周期参数log_filename的补充介绍。版本:9.0.1,6.0,4.5.10。系统平台:银河麒麟 (鲲鹏)
2026-02-12 10:10:57
116
原创 HGDB安全版单机修改用户密码
日常工作,有时候用户需要修改数据库密码,或者因为输入错误密码次数过多,导致了用户被锁,在安全版,用户分为三权用户和普通用户,当三权打开时,忘记普通用户密码后,可以使用syssso用户修改,如果三权未打开,所有用户可以用sysdba用户修改密码,syssso无权修改用户密码。hg_sepofpowers为on时三权打开,off为三权关闭,三权打开时,修改普通用户密码使用syssso用户,关闭时使用sysdba用户,修改普通用户密码。注意,这样修改后用户的有效期不显示,为永久有效,
2026-02-12 09:41:47
285
原创 数据库启动时发生报错,致命错误: 无法创建信号量
2018-01-15 11:36:05 CST [2840] : [3-1] user=,db= 提示: 这个错误不表示磁盘空间已经用完. 发生的原因有可能超过系统对于最大数量信号灯集合(由参数SEMMNI表示),或者是对系统范围内最大可使用信号灯(由参数SEMMNS表示)的限制.您需要增加这两个系统核心参数的值。2018-01-15 11:36:05 CST [2840] : [2-1] user=,db= 详细信息: semget(5866129, 17, 03600) 系统调用失败.
2026-02-11 16:05:10
427
原创 because another server process exited abnormally and possibly corrupted shared memory
在Red Hat 7.2中,systemd-logind 服务引入了一个新特性,该新特性是:当一个user完全退出os之后,remove掉这个user所有的IPC objects。该特性由/etc/systemd/logind.conf参数文件中RemoveIPC选项来控制。系统平台:Linux x86-64 Red Hat Enterprise Linux 7。在Red Hat 7.2中,RemoveIPC的默认值为yes。
2026-02-11 11:02:12
287
原创 客户端连接数据库报错:ERROR: XX000: missing chunk number x for toast value x in pg_toast_x
toast是The OverSized Attribute Storage Technique(超尺寸字段存储技术)的缩写,是超长字段在HighgoDB的一种存储方式。当某表中的超长字段的时候,那这个表会有与之相关联的Toast表。根据toast表的命名规则,假设存在表test的oid为2867,那么如果存在与之相关联的toast表,toast表名为pg_toast_2867。5) 重复执行第3,4步,直到全部有问题的记录被清除。某张表关联的toast表的data发生损坏。3) 定位该表中损坏的数据行。
2026-02-11 09:55:24
709
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅