- 博客(1263)
- 收藏
- 关注

原创 【只为求才,Want AD】
【求才】有数据库DBA经验,或开发经验均可谈。中国大陆地区。感谢关注和推荐。company: www.highgo.comSend Resumes To Mail: [email protected]
2021-12-10 16:13:50
1943
2

原创 基于PostgreSQL进行Java应用开发
该手册由PG实验室的成员结合多年对postgresql数据库的使用及Java应用开发经验,总结了一套实战入门手册。帮助PostgreSQL软件爱好者及初学者快速学习postgresql数据库的相关知识。针对应用如何适配postgresql数据库,提供了丰富的技巧案例。开发人员在不了解postgresql的情况下,通过该手册的学习,能够自主的实现基于postgresql的应用开发工作。以上是适配手册涵盖的章节内容。本手册一共6个章节:第1章PostgreSQL介绍 1.1.PostgreSQL起源
2021-11-04 15:27:45
4162
1
原创 无法选择最佳操作符(APP) 目录
使用as implicit创建的类型转换,操作符会涉及到多个算⼦,如果有多个转换,数据库并不知道应该选择哪个而报错。
2025-05-23 16:13:58
82
原创 md5升级scram-sha-256认证
系统平台:银河麒麟(飞腾)U系 V4,银河麒麟(龙芯)R系 V4。md5认证方式升级为scram-sha-256。
2025-05-23 15:41:01
71
原创 HGDB中分区表使用例子
如果主键不包含分区键,那么主键的唯一性将在整个表范围内进行强制执行,这可能导致在不同分区之间存在重复的主键值,破坏了唯一性要求。由于每个分区都有自己的主键范围,如果查询涉及分区键,数据库可以更容易地定位到包含所需数据的分区,从而加速查询。例如,如果一个分区的范围是从1到10,下一个分区的范围是从10到20,那么值10属于第二个分区而不是第一个。分区表一般也是用在大体量数据的情况下,在实际使用中,在尽可能的情况下最好去访问分区(子表),而不是访问分区表(主表),这样可以充分发挥分区表的功能,来提高访问性能。
2025-05-23 15:20:53
522
原创 网络抓包命令tcpdump及分析工具wireshark使用
系统平台:Linux x86-64 Red Hat Enterprise Linux 8,Linux x86-64 Red Hat Enterprise Linux 7,Linux x86-64 SLES 12,银河麒麟 (鲲鹏),银河麒麟 (X86_64),银河麒麟(龙芯)svs,中标麒麟(飞腾)6,中标麒麟(龙芯)7。用户可在wireshark官网下载对应的网络包,支持中文,用户可将在数据库服务器上抓取的网络包传输到个人电脑进行分析。这个参数通常与 -w 参数结合使用,用于定时切换捕获的数据包文件。
2025-05-23 15:10:06
191
原创 V9数据库替换授权
系统平台:Linux x86-64 Red Hat Enterprise Linux 7。1、上传新的授权文件到服务器并修改授权文件属主为highgo。①查看授权文件信息(注意:此命令并不会将授权导入到数据库)2、V9数据库授权文件为license.dat。②或者find命令查找license文件夹。授权目录license文件夹在安装目录下。1、本文档用于指导V9数据库替换授权。2、查找授权目录license文件夹。①可以通过环境变量查看安装目录。4、授权命令其他信息。
2025-05-23 10:53:22
156
原创 HAC集群修改管理员用户密码
2、ETCDCTL_ENDPOINTS三个ip需要修改为配置etcd三节点的ip,可以参考/opt/HighGo/tools/hghac/hghac-see.yaml文件中的etcd:hosts。方法A:使用集群命令,确保TL时间线一致,Lag in MB数据同步延迟不能过高,最好延迟为0。冒号为分隔符,倒数第二位用户名,最后一位数据库密码,将密码修改为修改之后的密码即可,保存退出。方法B:各个节点查询进程,有sender节点的是主库,有receiver节点的是备库。7、恢复集群(任意节点执行即可)
2025-05-23 10:34:38
149
原创 pg_dump备份加密
对于备份时输入的口令,使用 SM3 加密算法,生成类似 SM3***格式的 16 进制字符串,存储在文件的开头。在进行恢复时,需要比对输入的口令是否和备份时输出的口令一致。目前该方式只支持安全版V4.5。使用的方式:进行备份时:使用 pg_dump -Fc -d 数据库名称 -e “口令” > 输出文件名称进行恢复时:使用 pg_restore -d 数据库名称 -r “口令“ -Fc 输出文件名称注意,目前使用 pg_dump 进行加密备份时,只支持-Fc 格式。
2025-05-22 16:55:13
136
原创 数据库使用psql及jdbc进行远程连接,不定时自动断开的解决办法(app)
tcp_keepalives_interval (integer)规定未被客户端确认收到的TCP keepalive消息应重新传输的时间长度。在其他系统上,必须为零。在通过 Unix域套接字连接的会话中,这个参数被忽略并总被读作零。tcp_user_timeout (integer) 指定传输的数据在TCP连接被强制关闭之前可以保持未确认状态的时间量。tcp_keepalives_count (integer) 指定服务器到客户端的连接被认为中断之前可以丢失的TCP keepalive消息的数量。
2025-05-22 15:46:39
307
原创 db_ha执行ha_isready报错authentication method 13 not supported
db_ha执行ha_isready报错authentication method 13 not supported。修改环境变量LD_LIBRARY_PATH指定到HGDB安装目录下的lib目录。在执行ha_isready时调用了错误的lib包。系统平台:银河麒麟 (鲲鹏)
2025-05-22 15:21:33
101
原创 btree索引无法使用处理方式(APP)
btree索引中存储的是原始值。因此,当字段非常大时,btree索引可能无法使用。系统平台:Microsoft Windows (64-bit) 10。错误:索引行需要12840字节,最大值为8191。这种情况下可以使用hash index。
2025-05-22 13:52:17
124
原创 瀚高安全版4.5.8/4.5.9字符串默认按字节存储导致数据无法写入(APP)
系统平台:Linux x86-64 Red Hat Enterprise Linux 7。解决安全版4.5.8/4.5.9字符串默认使用字节存储导致插入时提示数据超长。使用sysdba用户执行,重载配置或重启数据库生效。
2025-05-20 16:02:02
154
原创 DBeaver连接开启sm3认证的瀚高数据库
DBeaver Community 是一款免费的跨平台数据库工具,适用于开发人员、数据库管理员、分析师和所有处理数据的人。它支持所有流行的 SQL 数据库,如 MySQL、MariaDB、PostgreSQL、SQLite、Apache 系列等。
2025-05-20 16:00:30
337
原创 瀚高数据库中,对象不存在问题的处理思路及解决方案
确定代码实际要用的字段类型、数据库的字段类型,尽可能的修改成一致的数据库类型去解决问题;需要注意,添加了currentSchema参数,相当于把当前的会话的search_path参数值覆盖为currentSchema的值,因此如果创建的对象在public下,也需要把public添加上。2)函数(存储过程)在瀚高数据库中,重载现象很多,也就是不同的参数类型或个数可以使用同名函数;4、当遇到第二种问题时,也可以查询系统表pg_operator和pg_cast,确定对象是否存在,是新创建还是更改对象的属性。
2025-05-20 15:47:17
898
原创 添加currentSchema后,该模式下表报不存在(APP)
解决程序URL添加currentSchema后,访问该模式下的表,报错信息com.highgo.jdbc.util.PSQLException: ERROR: relation “test004” does not exist。出现此问题的原因是URL中jdbc:highgo://x.x.91.139:5866/highgo?系统平台:Linux x86-64 Red Hat Enterprise Linux 7。
2025-05-20 15:43:44
270
原创 FATAL XX000 the limit of 818 distributed transactions has been reached
设置max_connections为1200。max_prepared_transactions参数值建议与max_connections参数值一致。系统平台:Linux x86-64 Red Hat Enterprise Linux 7。同步备库standby宕机,同时查询慢。standby日志报错如下。无法满足分布式事务需求。查询hgdw参数配置。
2025-05-20 15:13:59
377
原创 企业版601和602使用row_number()函数的区别
针对HGDB企业版601和602中,函数row_number()的区别601 使用row_number()函数查询出得结果为:查询的结果为row_number 字段,可以将row_number 使用别名替换例如:602 使用row_number 函数查询得结果,字段为rownum也可以使用别名得形式去替换结果中得rownum。但是使用别名rownum时不能省略 as如 select row_number() over() as rownum , * from test ; 这样是正确得
2025-05-20 15:12:02
167
原创 配置CaseInsensitiveMap使key不区分大小写(APP)
在进行应用测试时,应用中使用Map返回结果集,键Key是区分大小写的,也就是说Name和name会被视为不同的键Key,这导致应用获取数据失败。如果我们需要不区分大小写,那么可以使用类CaseInsensitiveMap。
2025-05-20 15:00:48
106
原创 DBHA集群修改IP
有的时候需要修改服务器IP地址,IP改变会影响DBHA集群运行。DBHA集群也需要修改相应的IP配置。手动修改参数primary_monitor_ip,secondary_monitor_ip中的ip地址。所有备库,手动修改参数primary_conninfo中host指定的ip地址,也可参考如下命令修改。如提前修改了服务器ip地址,此时无法和monitor通信。手动修改参数arbitration_ip,node_ip中的ip地址。手动修改参数primary_monitor_ip中的ip地址。
2025-05-20 14:54:07
304
原创 DBHA修改VIP绑定的网卡
有的时候需要更改VIP绑定的网卡,如网络安全控制,使用内外网情况。需要将vip绑定到外网的网卡上。本文主要描述修改vip绑定网卡步骤。修改文件/usr/local/db_ha/conf/agent.yaml中的参数network_card_for_vip,配置新网卡名。系统平台:银河麒麟 (海光)
2025-05-20 14:41:53
174
原创 HGHAC4.2.1开启DCS Failsafe Mode的步骤
这一功能的应对的故障场景为当etcd集群出现故障或超时,patroni无法往etcd中写入数据时,之前版本的处理逻辑为集群将为只读集群,引入此功能后,当etcd不可用时,patroni之间会互相通信,只要主节点的patroni能够得到备节点的应答就认为集群正常,不会引发主节点的降级处理或切换,增加集群的稳定性。然后使用hghac show-config去验证。部署集群时,在hghac.yaml的dcs参数部分配置上failsafe_mode参数,之后正常启动服务即可。1、新部署集群开启及验证方法。
2025-05-20 14:31:18
275
原创 查看数据库占用磁盘空间的方法
2、单个数据库大小,首先查询数据库oid,通过oid确定数据库存放路径,查看该文件夹大小即可,默认存放路径为$PGDATA/base/oid。通过系统函数查询数据库大小得到的结果仅为数据库、模式、表等各类逻辑数据对象占用大小,不包含WAL日志、审计日志、数据库运行日志等其他部分。如果用户手动创建过表空间,此种情况下还需要统计该表空间所在目录的大小,表空间的路径可通过元命令\db查看确定。本文档主要介绍查看数据库占用的磁盘空间大小的方法,可以通过系统函数的方式或者查看系统目录大小的方式查看。
2025-05-20 14:26:23
181
原创 浅析pg_hint_plan使用
扫描提示对普通表、继承表、表、 UNLOGGED表、临时表和系统目录有效。连接方法的提示:联接方法提示强制执行涉及指定表的联接的联接方法。这只会影响普通表、继承表、 UNLOGGED 表、临时表、外部(外部)表、系统目录、表函数、 VALUES 命令结果和 CTE 上的联接。提示短语根据对象的种类及其对规划的影响分为六种类型:扫描方法、连接方法、连接顺序、行数更正、并行查询和GUC参数设置。pg_hint_plan 读取给定 SQL 语句的特殊形式的注释中的提示短语。介绍pg_hint_plan的使用。
2025-05-20 14:13:30
649
原创 企业版单机修改密码、密码过期、修改密码有效期及密码认证方式变更(sm3与md5)的操作步骤
当创建用户或修改用户密码且缺省validuntil时密码经过多长时间后过期,单位天,默认值7,取值范围0~365。需要更改用户认证密码,所有用户都需要改,如果需要更改回原密码,需要连续修改5次刷新(强制密码历史为5次)需要更改用户认证密码,所有用户都需要改,如果需要更改回原密码,需要连续修改5次刷新(强制密码历史为5次)用于企业版单机修改密码、密码过期、修改密码有效期及密码认证方式变更(sm3与md5)的操作步骤。登录highgo用户或者需要修改密码的用户。登录highgo用户或者需要修改密码的用户。
2025-05-20 13:50:46
307
原创 流复备机断档处理
流复制集群出现主备数据库因断档导致数据不同步的问题,均可使用以下第一种方式解决,此解决方法若是数据量较大的情况下要选择在夜间业务不繁忙时重做备库,因为重做过程可能会对资源占用较大,对数据库运行有一定影响。主备流复制断档,由于未配置复制槽,wal已被删除,查询数据库日志,某wal日志文件已被删除,但在主节点归档目录中查询到此wal日志文件。数据库备节点所需wal日志已被删除,导致备节点接收不到相应日志,流复制断连。主备断档时间较久,备库需要的wal日志,或者归档日志已经被删除;二、主节点有归档的情况。
2025-05-20 13:36:43
867
原创 hgdbv9创建plpython3u插件后无法使用该插件创建函数
申请对应python版本plpython3u对应插件包并进行替换。4、需要重启数据库(可选,一些情况下可能需要重新读取操作系统lib库文件)问题原因为系统自带python环境与插件所需的3.6版本不同。重新创建对应plpython3u函数,问题应当得到解决。2、备份原有lib、share、include目录。在业务库中创建plpython3u插件。系统平台:银河麒麟 (X86_64)1、卸载原有plpython3u插件。
2025-05-20 13:17:53
168
原创 瀚高数据库安全版审计查询方法
假如查询的时间跨度较大,需要导入的审计日志文件较多,则需要评估数据库读取审计占用的时间和硬盘空间等,假如条件允许,建议搭建相同版本测试环境,并将审计日志导入测试环境进行查询,避免影响主库性能。查询审计日志时,有时会发生无结果的情况,则将条件适当放开,特别是对象名、操作类型等,多试几次,实际应用系统运行的SQL并不像我们实验环境中那么简单和明确,检索审计日志需要耐心。支持指定多个文件,多个文件用逗号分隔,假如不使用-f指定,会将当前$PGDATA/hgaudit下的所有审计记录都导入,包括未写完的审计记录。
2025-05-20 11:05:54
1054
原创 HGHAC集群滚动扩展或更换硬盘设备
解释:集群resume退出维护模式后,会删除主库上未使用复制槽,从而主库立刻开始删除之前囤积的wal日志,导致备库同步时出现wal断档。解释:暂停集群后,再停止备库节点的hac,会在主库上保留复制槽,从而保留拷贝数据这段时间的wal,避免备库断档。2.6 先启动数据库,等待对应复制槽变为active后,再启动hghac,并恢复集群。将数据文件拷贝到新逻辑卷中,并启动节点,保障集群同步,滚动更换所有节点的硬盘;部分环境下,集群pause后,停止hac服务不会停止数据库,需要手动停库。
2025-05-20 10:29:00
803
原创 hghac集群服务器时间同步(chrony同步)
2、银河麒麟系统默认安装了chrony同步工具,相对于其他的时间同步工具,chrony是轻量级的时间同步工具,具有更加先进的算法,更高的时间精度和稳定性,以及chrony配置相对简单,1、hghac集群使用etcd或者zookeeper监控组件,需要监控组件所在服务器时间一致才能保障hghac集群的高可用性和稳定性,对于时间不一致的服务器需要做时间同步。系统平台:银河麒麟(龙芯)svs,银河麒麟 (X86_64),银河麒麟 (飞腾),银河麒麟 (鲲鹏),银河麒麟 (海光),银河麒麟 (龙芯)
2025-05-20 10:02:40
328
原创 企业版v9创建函数sys_guid()
sys_guid()为oracle中生成全局唯一标识符的函数,瀚高数据库v9版本未兼容此函数。2、根据函数uuid_generate_v4()创建sys_guid()系统平台:UOS(海光),银河麒麟 (X86_64)1、创建“UUID-ossp”扩展。
2025-05-20 09:26:54
184
原创 安全软件检测进程异常行为-Postgresql应用执行异常指令whoami
数据库运行时,postgres.exe–forkavworker进程会执行一个popen函数的嵌套,此函数会通过whoami命令去查看所属用户,然后通过返回的用户名去查找相关文件,最后返回文件路径。数据库安装包: 安全软件告警中提示“sh -c whoami”命令,是由数据库发出的,安全软件捕获到了postgres.exe–forkavworker的动作,然后发出的这个告警。数据库执行postgres.exe–forkavworker的过程属于功能需要,暂无安全风险。系统平台:UOS(海光)
2025-05-20 09:05:45
207
原创 开启hghac集群Rest API证书认证,修复Prometheus Metrics 未授权访问8008端口
除了在restapi配置中添加证书信息及verify_client: required之外,还需要在ctl配置中添加客户端证书信息,因为hghactl会作为客户端与restapi服务端交互信息。所有集群节点拥有相同的根证书及客户端证书,将主节点上生成的根证书和客户端证书及对应的密钥复制到备节点同目录下,在各备节点上只需要生成对应的服务器证书,注意修改成对应节点的IP。其中,根证书、服务器证书和客户端证书配置不同的CN(Common Name),days配置成3650即10年不过期,可根据需要调整。
2025-05-19 17:05:46
827
原创 Navicat连接开启sm3认证的瀚高数据库
Navicat”是一套可创建多个连接的数据库管理工具,用以方便管理 MySQL、Redis、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和 MongoDB 等不同类型的数据库,它与 GaussDB、OceanBase 以及 阿里云、腾讯云、华为云、Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud 和 MongoDB Atlas等云数据库兼容。你可以创建、管理和维护数据库。
2025-05-19 16:36:33
339
1
原创 hgdbdeveloper备份报错:备份失败!
将msvcr120.dll文件上传至hgdbdeveloper安装目录下的dbclient文件夹下即可(具体文件见附件,解压后使用)版本:4.5.8,4.5.7,4.5.6,4.5.9,5.6.1,5.6.3,5.6.4。hgdbdeveloper所在环境缺少名为msvcr120.dll的动态链接库文件。使用hgdbdeveloper备份报错:备份失败!且备份日志没有其他异常信息;系统平台:Microsoft Windows (64-bit) 10。
2025-05-19 16:06:32
209
原创 时序库timescaledb压缩功能优化
在2.11之前,数据压缩成本受排序的影响,排序的成本取决于表的大小和分配的内存大小(work_mem)。如果表很大,内存设置的很小,在这种情况下,元组将作为临时文件写到磁盘。此外在客户的系统中发现了这样的趋势:在大的分区压缩期间会创建大型临时文件导致性能下降。为了优化压缩,我们在压缩代码中添加了一个智能选项,以选择与压缩设置配置相匹配的相关索引。从理论上讲,这是对压缩功能的一个优化,但事与愿违。安装时序库timescaledb,使用数据压缩功能,压缩操作非常慢,导致压缩进程一直在运行,大量占用磁盘IO。
2025-05-19 15:24:34
354
原创 瀚高HGHAC高可用集群配置逻辑复制槽方法
若用数据库命令创建逻辑复制槽,在集群主备切换新主节点不会自动创建逻辑复制槽;意外情况出现的逻辑复制断开,集群会识别该逻辑复制槽为unkown,删除逻辑复制槽。如果已经成功创建逻辑复制,证明该参数为logical,也请跳过下方命令。说明: 在备节点创建逻辑复制槽后,hghac集群使用pg_replication_slot_advance()向前更新槽。方法二:修改订阅指定逻辑复制槽,不会影响已有逻辑复制。关掉逻辑复制订阅段数据库,逻辑复制槽依然存在。7.2启动逻辑复制数据库,查看逻辑复制槽信息。
2025-05-19 14:55:36
223
原创 逻辑复制禁止复制源端COPY导入的数据
默认情况下创建逻辑复制会copy订阅端基量数据,订阅端存在与发布端相同唯一约束的数据的情况会导致数据冲突。数据库进行逻辑复制部署时,订阅端同步发布端数据失败,日志报错为表字段为违反唯一约束,copy报错。版本:9.0,6.0,5.6.5,4.5.9,4.3.4.9,4.7.8。务必确认好执行环境,避免误删数据。下面是执行完毕后自动恢复同步的日志。
2025-05-19 14:31:04
131
原创 API方式实现COPY调用
请链接 Highgo 数据库客户端C库,位于数据库安装路径的lib下的 libpq.so ,包含数据库安装路径的 include 下的头文件libpq-fe.h。需要将数据库中的数据导出到磁盘上保存。此需求可使用数据库工具copy实现,使用copy to命令将数据导出到文件中。附件里已提供API解决方案,实现在C++开发环境中,以COPY TO的方式传输大量数据到指定的文件中。对于传入 PQexec 的 copy_command 命令,请根据实际情况数据在文件中需要的格式来进行调整。
2025-05-19 14:14:33
155
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人