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

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

原创 基于PostgreSQL进行Java应用开发
该手册由PG实验室的成员结合多年对postgresql数据库的使用及Java应用开发经验,总结了一套实战入门手册。帮助PostgreSQL软件爱好者及初学者快速学习postgresql数据库的相关知识。针对应用如何适配postgresql数据库,提供了丰富的技巧案例。开发人员在不了解postgresql的情况下,通过该手册的学习,能够自主的实现基于postgresql的应用开发工作。以上是适配手册涵盖的章节内容。本手册一共6个章节:第1章PostgreSQL介绍 1.1.PostgreSQL起源
2021-11-04 15:27:45
4159
1
原创 瀚高安全版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
71
原创 DBeaver连接开启sm3认证的瀚高数据库
DBeaver Community 是一款免费的跨平台数据库工具,适用于开发人员、数据库管理员、分析师和所有处理数据的人。它支持所有流行的 SQL 数据库,如 MySQL、MariaDB、PostgreSQL、SQLite、Apache 系列等。
2025-05-20 16:00:30
182
原创 瀚高数据库中,对象不存在问题的处理思路及解决方案
确定代码实际要用的字段类型、数据库的字段类型,尽可能的修改成一致的数据库类型去解决问题;需要注意,添加了currentSchema参数,相当于把当前的会话的search_path参数值覆盖为currentSchema的值,因此如果创建的对象在public下,也需要把public添加上。2)函数(存储过程)在瀚高数据库中,重载现象很多,也就是不同的参数类型或个数可以使用同名函数;4、当遇到第二种问题时,也可以查询系统表pg_operator和pg_cast,确定对象是否存在,是新创建还是更改对象的属性。
2025-05-20 15:47:17
459
原创 添加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
210
原创 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
264
原创 企业版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
93
原创 配置CaseInsensitiveMap使key不区分大小写(APP)
在进行应用测试时,应用中使用Map返回结果集,键Key是区分大小写的,也就是说Name和name会被视为不同的键Key,这导致应用获取数据失败。如果我们需要不区分大小写,那么可以使用类CaseInsensitiveMap。
2025-05-20 15:00:48
55
原创 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
213
原创 DBHA修改VIP绑定的网卡
有的时候需要更改VIP绑定的网卡,如网络安全控制,使用内外网情况。需要将vip绑定到外网的网卡上。本文主要描述修改vip绑定网卡步骤。修改文件/usr/local/db_ha/conf/agent.yaml中的参数network_card_for_vip,配置新网卡名。系统平台:银河麒麟 (海光)
2025-05-20 14:41:53
123
原创 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
175
原创 查看数据库占用磁盘空间的方法
2、单个数据库大小,首先查询数据库oid,通过oid确定数据库存放路径,查看该文件夹大小即可,默认存放路径为$PGDATA/base/oid。通过系统函数查询数据库大小得到的结果仅为数据库、模式、表等各类逻辑数据对象占用大小,不包含WAL日志、审计日志、数据库运行日志等其他部分。如果用户手动创建过表空间,此种情况下还需要统计该表空间所在目录的大小,表空间的路径可通过元命令\db查看确定。本文档主要介绍查看数据库占用的磁盘空间大小的方法,可以通过系统函数的方式或者查看系统目录大小的方式查看。
2025-05-20 14:26:23
77
原创 浅析pg_hint_plan使用
扫描提示对普通表、继承表、表、 UNLOGGED表、临时表和系统目录有效。连接方法的提示:联接方法提示强制执行涉及指定表的联接的联接方法。这只会影响普通表、继承表、 UNLOGGED 表、临时表、外部(外部)表、系统目录、表函数、 VALUES 命令结果和 CTE 上的联接。提示短语根据对象的种类及其对规划的影响分为六种类型:扫描方法、连接方法、连接顺序、行数更正、并行查询和GUC参数设置。pg_hint_plan 读取给定 SQL 语句的特殊形式的注释中的提示短语。介绍pg_hint_plan的使用。
2025-05-20 14:13:30
347
原创 企业版单机修改密码、密码过期、修改密码有效期及密码认证方式变更(sm3与md5)的操作步骤
当创建用户或修改用户密码且缺省validuntil时密码经过多长时间后过期,单位天,默认值7,取值范围0~365。需要更改用户认证密码,所有用户都需要改,如果需要更改回原密码,需要连续修改5次刷新(强制密码历史为5次)需要更改用户认证密码,所有用户都需要改,如果需要更改回原密码,需要连续修改5次刷新(强制密码历史为5次)用于企业版单机修改密码、密码过期、修改密码有效期及密码认证方式变更(sm3与md5)的操作步骤。登录highgo用户或者需要修改密码的用户。登录highgo用户或者需要修改密码的用户。
2025-05-20 13:50:46
244
原创 流复备机断档处理
流复制集群出现主备数据库因断档导致数据不同步的问题,均可使用以下第一种方式解决,此解决方法若是数据量较大的情况下要选择在夜间业务不繁忙时重做备库,因为重做过程可能会对资源占用较大,对数据库运行有一定影响。主备流复制断档,由于未配置复制槽,wal已被删除,查询数据库日志,某wal日志文件已被删除,但在主节点归档目录中查询到此wal日志文件。数据库备节点所需wal日志已被删除,导致备节点接收不到相应日志,流复制断连。主备断档时间较久,备库需要的wal日志,或者归档日志已经被删除;二、主节点有归档的情况。
2025-05-20 13:36:43
524
原创 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
84
原创 瀚高数据库安全版审计查询方法
假如查询的时间跨度较大,需要导入的审计日志文件较多,则需要评估数据库读取审计占用的时间和硬盘空间等,假如条件允许,建议搭建相同版本测试环境,并将审计日志导入测试环境进行查询,避免影响主库性能。查询审计日志时,有时会发生无结果的情况,则将条件适当放开,特别是对象名、操作类型等,多试几次,实际应用系统运行的SQL并不像我们实验环境中那么简单和明确,检索审计日志需要耐心。支持指定多个文件,多个文件用逗号分隔,假如不使用-f指定,会将当前$PGDATA/hgaudit下的所有审计记录都导入,包括未写完的审计记录。
2025-05-20 11:05:54
741
原创 HGHAC集群滚动扩展或更换硬盘设备
解释:集群resume退出维护模式后,会删除主库上未使用复制槽,从而主库立刻开始删除之前囤积的wal日志,导致备库同步时出现wal断档。解释:暂停集群后,再停止备库节点的hac,会在主库上保留复制槽,从而保留拷贝数据这段时间的wal,避免备库断档。2.6 先启动数据库,等待对应复制槽变为active后,再启动hghac,并恢复集群。将数据文件拷贝到新逻辑卷中,并启动节点,保障集群同步,滚动更换所有节点的硬盘;部分环境下,集群pause后,停止hac服务不会停止数据库,需要手动停库。
2025-05-20 10:29:00
552
原创 hghac集群服务器时间同步(chrony同步)
2、银河麒麟系统默认安装了chrony同步工具,相对于其他的时间同步工具,chrony是轻量级的时间同步工具,具有更加先进的算法,更高的时间精度和稳定性,以及chrony配置相对简单,1、hghac集群使用etcd或者zookeeper监控组件,需要监控组件所在服务器时间一致才能保障hghac集群的高可用性和稳定性,对于时间不一致的服务器需要做时间同步。系统平台:银河麒麟(龙芯)svs,银河麒麟 (X86_64),银河麒麟 (飞腾),银河麒麟 (鲲鹏),银河麒麟 (海光),银河麒麟 (龙芯)
2025-05-20 10:02:40
118
原创 企业版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
92
原创 安全软件检测进程异常行为-Postgresql应用执行异常指令whoami
数据库运行时,postgres.exe–forkavworker进程会执行一个popen函数的嵌套,此函数会通过whoami命令去查看所属用户,然后通过返回的用户名去查找相关文件,最后返回文件路径。数据库安装包: 安全软件告警中提示“sh -c whoami”命令,是由数据库发出的,安全软件捕获到了postgres.exe–forkavworker的动作,然后发出的这个告警。数据库执行postgres.exe–forkavworker的过程属于功能需要,暂无安全风险。系统平台:UOS(海光)
2025-05-20 09:05:45
100
原创 开启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
659
原创 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
231
原创 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
166
原创 时序库timescaledb压缩功能优化
在2.11之前,数据压缩成本受排序的影响,排序的成本取决于表的大小和分配的内存大小(work_mem)。如果表很大,内存设置的很小,在这种情况下,元组将作为临时文件写到磁盘。此外在客户的系统中发现了这样的趋势:在大的分区压缩期间会创建大型临时文件导致性能下降。为了优化压缩,我们在压缩代码中添加了一个智能选项,以选择与压缩设置配置相匹配的相关索引。从理论上讲,这是对压缩功能的一个优化,但事与愿违。安装时序库timescaledb,使用数据压缩功能,压缩操作非常慢,导致压缩进程一直在运行,大量占用磁盘IO。
2025-05-19 15:24:34
273
原创 瀚高HGHAC高可用集群配置逻辑复制槽方法
若用数据库命令创建逻辑复制槽,在集群主备切换新主节点不会自动创建逻辑复制槽;意外情况出现的逻辑复制断开,集群会识别该逻辑复制槽为unkown,删除逻辑复制槽。如果已经成功创建逻辑复制,证明该参数为logical,也请跳过下方命令。说明: 在备节点创建逻辑复制槽后,hghac集群使用pg_replication_slot_advance()向前更新槽。方法二:修改订阅指定逻辑复制槽,不会影响已有逻辑复制。关掉逻辑复制订阅段数据库,逻辑复制槽依然存在。7.2启动逻辑复制数据库,查看逻辑复制槽信息。
2025-05-19 14:55:36
173
原创 逻辑复制禁止复制源端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
110
原创 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
134
原创 数据库未正常关闭后,再次启动时只有主进程,数据库日志无输出
base/pgsql_tmp目录用来支持一些需要临时存储空间的操作,比如排序、大型查询等;目录大小跟随这些操作变化,当数据库关闭时,数据库没有任何操作,则目录为空;但当前目录不为空,导致报错,也是强制关闭数据库导致的。现象:使用pg_ctl stop停止数据库,未正常关闭;使用pg_ctl stop -m i 强制关闭数据库后,再次启动数据库,启动失败;只有数据库主进程,查询数据库日志没有任何输出;解决:数据库关闭时,先执行checkpoint;1、查询数据库进程是否正常,若只有主进程,则kill;
2025-05-19 13:57:04
202
原创 Oracle中的sql%rowcount在瀚高数据库中的兼容方案(APP)
Oracle的函数迁移到瀚高数据库,应用程序调用瀚高数据库的函数时,提示“com.highgo.jdbc.util.PSQLException:错误: 字段 “sql” 不存在”的错误。语句替代sql%rowcount,同样也是获取更新或者删除语句的修改行数。经调查,在Oracle中使用了sql%rowcount,获取更新或者删除语句的修改行数。该语法在瀚高数据库中不兼容,需要单独修改。检索t1表的数据,插入了1条记录。检索t1表的数据,插入了1条记录。执行函数后,输出行数是1。执行函数后,输出行数是1。
2025-05-19 13:49:28
178
原创 HGDB中如何为表增加自增主键
行数不多可以使用serial而非bigserial,无论使用哪种格式一定要记得增加唯一约束。本文主要介绍在瀚高数据库中如何为表增加新主键,便于业务改造和查询。实现原理:通过添加序列自增字段和唯一约束实现。可以根据数字类型来设计。①防止后期字段值重复。
2025-05-19 13:43:16
91
原创 MySQL替换瀚高数据库报错: TO_DAYS()不存在(APP)
瀚高数据库兼容MySQL数据库,但TO_DAYS()函数在当前日期前未进行兼容。MySQL替换为瀚高数据库进行应用系统适配报错:TO_DAYS()不存在。使用sysdba用户执行下面SQL执行到数据库中,即可解决。MySQL替换瀚高数据库报错: TO_DAYS()不存在。系统平台:中标麒麟(海光)7,中标麒麟(飞腾)7。
2025-05-19 13:31:33
132
原创 value too long for type character varying报错处理
上述报错是因为NLS_LENGTH_SEMANTICS设置为byte,共4个汉字需要12个字节,但character varying长度为10byte,不满足。1、查看nls_length_semantics参数,修改nls_length_semantics为char。之前版本默认为char。第一种:(建议实施458时都调整NLS_LENGTH_SEMANTICS参数为char)NLS_LENGTH_SEMANTICS:该参数有byte和char两种取值。一个英文单词需要1个字节,一个汉字需要3个字节。
2025-05-19 13:22:23
201
原创 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。
2025-05-19 11:14:34
315
原创 HGDB4.5.5hgdbdeveloper报错:尝试连接已失败
新建连接–选择驱动属性–点击左下角图标新增配置–名称一列键入connectTimeout,值一列键入0–点击确定–点击常规,输入数据库连接信息–点击确定。正常配置HGDB4.5.5hgdbdeveloper相关信息后,点解连接报错:提示尝试连接已失败。可通过psql -h 方式正常连接。连接时添加驱动参数connectTimeout=0。网络异常导致的连接超时的问题。
2025-05-19 10:18:33
418
原创 HGDB-修改分区表名称及键值
整体测试思路为,先将分区表与主表分离->其次修改该表的表名->然后修改该表与分区键相关数据->最后将该表加入主表。使用存储过程拼接SQL,修改分区名称、分区键值、并重新加入主表,适用于分区表较多场景。(2) 创建表格table_tablename,用于存放所有主表的名称,并插入数据。(1)创建用于存放新老区划编码对应表格table_qhdm,并插入数据;(3)创建存放拼接后的sql语句存放表格ql_pinjie。1.3查看主表与分区表的关系。–创建测试主表为1的分区表。–创建测试主表为1的分区表。
2025-05-19 09:55:55
253
原创 db_ha集群配置文件参数含义详解
本文章详细介绍了db_ha高可用集群各参数的含义。本篇文章以db_ha v4.1.1版本为例介绍。如有其它备节点,按照节点2参数添加即可。版本:4.5.6,4.5.7,6.0。
2025-05-19 09:44:28
219
原创 db_ha集群所有节点重新开机的操作步骤
1、查看集群状态streamingType=NONE为主库,ASYNC为异步流复制,SYNC为同步流复制,healthy=t节点状态正常。4、开机步骤,先开机主节点,再开机备节点和主监控节点。(主备监控不会开机自启,所以顺序不受影响)系统平台:Linux x86-64 Red Hat Enterprise Linux 7。3、关机步骤,先关闭备节点,最后关闭主节点;主监控配置文件设置了备监控自启动,备监控无需手动启动。7、流复制状态正常之后,启动主监控。5、主节点检查流复制状态。6、备节点检查流复制状态。
2025-05-19 09:34:06
203
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人