- 博客(1578)
- 资源 (18)
- 收藏
- 关注
原创 【只为求才,Want AD】
【求才】有数据库DBA经验,或开发经验均可谈。中国大陆地区。感谢关注和推荐。company: www.highgo.comSend Resumes To Mail: lisong@highgo.com
2021-12-10 16:13:50
2207
2
原创 基于PostgreSQL进行Java应用开发
该手册由PG实验室的成员结合多年对postgresql数据库的使用及Java应用开发经验,总结了一套实战入门手册。帮助PostgreSQL软件爱好者及初学者快速学习postgresql数据库的相关知识。针对应用如何适配postgresql数据库,提供了丰富的技巧案例。开发人员在不了解postgresql的情况下,通过该手册的学习,能够自主的实现基于postgresql的应用开发工作。以上是适配手册涵盖的章节内容。本手册一共6个章节:第1章PostgreSQL介绍 1.1.PostgreSQL起源
2021-11-04 15:27:45
4452
1
原创 无法连接到服务器:连接被拒绝
打开数据库文件目录下的postgresql.conf文件搜索listen_addresses将其参数值改为’*'后重启数据库。打开数据库文件目录下的postgresql.conf文件搜索port值,如果不是5866,需要在连接时显式指定端口号。2.该服务器未配置为接受显示的地址上的TCP/IP 请求。2.检查listen_addresses参数设置。3.检查防火墙配置,关闭防火墙或开放数据库端口。连接数据库提示:无法连接到服务器:连接被拒绝。1.服务器没有运行服务。4.检查port参数设置值。
2026-01-04 09:21:47
113
原创 数据库连接数的查看方式
该命令只是一个大概进程数查询,这其中包含了很多数据库自身进程(例如archive进程等),如果想要精确连接数请考虑下面两种方式。本文档主要用于指导HGDB用户查看当前数据库的数据库连接数。3、与2同理,但是此条SQL不包含当前查询进程。1、通过操作系统层的shell命令查看。2、通过登录数据库后查看后台连接进程。
2025-12-31 09:46:50
405
原创 highgo DB中数据库对象,模式,用户,权限之间的关系
4、权限问题:对于数据库,模式和数据库对象来说,只有超级用户(highgo)及其所有者才有权限修改这些数据库对象。2、每个数据库,模式,数据库对象都有其唯一的所有者。根据自己的使用数据库心得,以及客户在权限这部分遇到的问题,自己总结了一下在HGDB当中,数据库,模式,角色和权限之间的一些关系。3、用户和数据库对象:每个数据库只能有一个其所有者,但一个用户可以拥有多个数据库,模式,数据库对象。1、数据库和模式:一个服务器上可以有多个数据库,每个数据库会有多个模式,模式下面是数据库对象。
2025-12-30 14:40:44
172
原创 HIGHGODB内部MVCC机制简介
当一个 MVCC 数据库需要更一个一条数据记录的时候,它不会直接用新数据覆盖旧数据,而是将旧数据标记为过时(obsolete)并在别处增加新版本的数据。如果有人从数据库中读数据的同时,有另外的人写入数据,有可能读数据的人会看到『半写』或者不一致的数据。最简单的方法,通过加锁,让所有的读者等待写者工作完成,但是这样效率会很差。MVCC 使用了一种不同的手段,每个连接到数据库的读者,在某个瞬间看到的是数据库的一个快照,写者写操作造成的变化在写操作完成之前(或者数据库事务提交之前)对于其他的读者来说是不可见的。
2025-12-30 10:32:23
516
原创 再谈mvcc与vacuum(2)
vacuum处理是一个维护过程,有助于PostgreSQL的持续运行。它的两个主要任务是 清理 dead tuples 和 冻结事务ID为了清理 dead tuple,vacuum提供了两种模式,即 Concurrent VACUUM 和 Full VACUUM。Concurrent VACUUM(通常简称为VACUUM)为表文件的每个页清理 dead tuple,其他事务可以在此过程运行时读取表。
2025-12-29 14:17:57
1070
原创 再谈mvcc与vacuum(1)
在pg的各种技术讨论和日常运维中,vacuum永远是主要的话题之一。pg数据库管理运维过程中,经常会调整以下的vacuum参数,以优化数据库的性能。
2025-12-29 14:14:19
723
原创 Tomcat 后台日志不断刷新应用系统重新连接HGDB的警告信息
原因:客户应用系统创建连接池时,最大空闲时间(maxIdleTime)参数的值,检查空闲连接(idleConnectionTestPeriod)参数的值,小于 瀚高数据库,超时自动断开参数(hg_ClientNoInput)的值。第一种方案:将连接池的参数,最大空闲时间(maxIdleTime)参数的值和检查空闲连接(idleConnectionTestPeriod)参数的值设置为0,默认连接池不检查。系统平台:银河麒麟(飞腾)U系 V4。版本:4.3.4.5。
2025-12-26 14:57:03
199
原创 go语言连接瀚高数据库
默认情况下 .msi 文件会安装在 c:\Go 目录下。你可以将 c:\Go\bin 目录添加到 Path 环境变量中。添加后你需要重启命令窗口才能生效。Windows 下可以使用 .msi 后缀(在下载列表中可以找到该文件,如go1.4.2.windows-amd64.msi)的安装包来安装。系统平台:Microsoft Windows (64-bit) 10。安装包下载地址为:https://golang.org/dl/。创建工作目录 C:>Go_WorkSpace。go语言连接瀚高数据库。
2025-12-26 09:11:37
222
原创 通过jdbc连接数据库报时区错误
hgdbadmin图形化管理工具替换掉$PGBASE/hgdbadmin/lib/lib/hgdb-5.0-jdbc42.jar或hgdb-5.0-jdbc41.jar即可。com.highgo.jdbc.util.PSQLException: 致命错误:参数”TimeZone”的值无效:”Asia/Beijing”应用通过jdbc连接数据库报时区错误,或者hgdbamin图形化管理工具连接数据库报北京时区错误。更换附件中的jdbc驱动包即可解决。操作系统使用了北京时区。版本:4.3.4.6。
2025-12-25 13:59:31
264
原创 逻辑运算符的优先级
通过使用逻辑运算符(AND、OR、NOT),可以将多个查询条件进行组合,通过 NOT 运算符可以生成“不是~”这样的查询条件,但是逻辑运算符本身也存在执行的先后顺序,如果不能正确理解会导致写出的SQL不能得到正确的执行结果。对于逻辑运算符执行顺序的理解如果存在偏差,在进行SQL优化时,很可能出现通过改变逻辑运算符执行顺序减少了执行时间但是执行结果相差甚远的情况。对于第一条测试SQL而言,首先执行的是 where条件中的 a='1’并且b=‘2’,最后追加c='3’的数据。本文档阐述了逻辑运算符的顺序。
2025-12-25 09:26:59
594
原创 外部表numeric列包含空值如何插入到本地表
-fwbb_time是外部表。系统平台:Linux x86-64 Red Hat Enterprise Linux 7。在HGDB中空字符串与NULL值并不相等,所以会造成numeric=''的错误语义。版本:4.7.7,4.7.6,4.7.5,4.3.2,4.1.1。1、创建外部表,将numeric列先用varchar类型代替。2、从外部表插入到本地表。3、修改本地表列数据类型。
2025-12-24 17:10:00
234
原创 .NET应用程序连接池爆满
net程序的MaxPoolSize不设置的话默认是100,满了以后就会报错连接池爆满,数据库连接超时的错,实际数据库连接数是远远没有达到限制的。建议在.net程序中的连接字符串设置MaxPoolSize=1000 调高一些 实际上后台数据库查询。系统平台:Linux x86-64 Red Hat Enterprise Linux 7。前台应用打开页面时一直卡住,应用日志提示连接池爆满,数据库连接超时的错。连接应用的的会话数超出默认值导致超出默认值的会话连接数据库失败。
2025-12-24 09:59:31
346
原创 Activiti 连接瀚高数据库
系统平台:Microsoft Windows (64-bit) 10。Activiti 连接瀚高数据库,根据附件文档操作配置。
2025-12-23 15:08:10
503
原创 使用聚合函数报错Could not choose a best candidate function
在 HGDB 中聚合函数只允许 SMALLINT、 INT、 BIGINT、 REAL、 DOUBLE PRECISION、 NUMERIC、 INTERVAL数据类型,或者通过::转义为以上类型。版本:5.6.5,4.3.4,4.7.7。
2025-12-23 09:24:02
246
原创 在Highgo DB 中创建MySQL兼容函数datediff
SQL 错误 [42883]: ERROR: 42883: function datediff(unknown, unknown) does not exist。Highgo DB中没有DATEDIFF函数,需要手动创建该函数。MySQL中的DATEDIFF() 函数返回两个日期之间的天数。date1 和 date2 参数是合法的日期或日期/时间表达式。注释:只有值的日期部分参与计算。版本:4.3.4.6。
2025-12-22 14:27:20
273
原创 影响应用连接数据库的因素
2、检查端口,使用telnet命令检查端口是否开放,瀚高数据库端口为5866。写法:telnet加ip地址加端口号。3、检查配置文件,检查数据库data目录下的pg_hba.conf文件是否开放了应用服务器的IP地址。1、检查网络,使用ping命令检查应用服务器与数据库服务器之间是否联通。4、检查数据库监听,使用show listen_addresses;用于排查应用连接不上数据库的错误原因用于排查应用连接不上数据库的错误原因。
2025-12-22 09:53:13
337
原创 HGDB如何提升批量导入数据的速度
在批量插入数据时,如果每条数据都被自动提交,当中途出现系统故障时,不仅不能保障本次批量插入的数据一致性,而且由于有多次提交操作的发生,整个插入效率也会受到很大的打击。解决方法是,关闭系统的自动提交(SET AUTOCOMMIT = OFF),并且在插入开始之前,显式的执行 BEGIN TRANSACTION 命令,在全部插入操作完成之后再执行 COMMIT 命令提交所有的插入操作。如果你正在装载一个新创建的表,最快的方法是创建表,用 COPY 批量装载,然后创建表需要的任何索引。使用 COPY 命令。
2025-12-19 13:47:43
660
原创 HighGo Database性能参数及调整建议
比如,如果将 work_mem 设置为实际内存的 2% 大小,则在极端情况下,如果有50个查询都有排序要求,而且都使用2% 的内存,则会导致 swap的产生,系统性能就会大大降低。checkpoint_segments:日志文件段的最大数量(通常每个段16兆字节),到达后会激发checkpoint,默认设置为3,增加这个参数会增加数据库崩溃恢复所需要的时间。值设置稍大,优化器更倾向使用索引扫描而不是顺序扫描,建议的设置为可用空闲内存的 25%,这里的可用空闲内存指的是主机物理内存在运行数据库后的空闲值。
2025-12-19 13:44:17
930
原创 瀚高数据库 JDBC连接相关操作
数据库版本说明该jar包适用的瀚高数据库版本(4.0代表适用所有V4版本数据库,5.0代表适用于所有V5版本数据库),后面的数字对应不同的jdk版本(4对应jdk6及以下版本,41对应jdk7版本,42对应jdk8及以上版本)如我们使用的HighGoDB-5XX数据库为V5版本,jdk为1.8版本,选择对应瀚高数据库驱动为hgdb-5.0-jdbc42.jar。如我们使用的HighGoDB-5XX数据库为V5版本,jdk为1.8版本,选择对应瀚高数据库驱动为hgdb-5.0-jdbc42.jar。
2025-12-18 09:03:06
1053
原创 若是Windows下的HGDB配置参数work_mem>=2GB会导致HGDB服务无法启动
2019-08-01 06:26:58.199 GMT [18712] 日志: 22023: 10485760 超出了参数 “work_mem” (64 …2097151) 的有效范围。---->>>请注意上面的极大值2097151,2097151/1024=2047.9990234375,也就是说,不能超过2GB。系统平台:Microsoft Windows (64-bit) 10。设置配置参数work_mem小于2GB即可。
2025-12-17 10:26:01
243
原创 timestampdiff (MYSQL)函数在Highgo DB中的写法
在做MYSQL到Highgo DB 迁移适配工作时,客户大量使用了timestampdiff 函数,修改比较麻烦,希望可以使用同名函数来替代。MYSQL中正常执行的业务SQL报错,找不到timestampdiff函数。版本:4.3.4.6。
2025-12-16 14:08:52
152
原创 拼接符“II”在Oracle和HGDB中使用的差异
在Oracle中和HGDB中使用拼接符“||”拼接NULL时,结果不一致。如下情况所示:在Oracle中和HGDB中使用拼接符“||”结果不一致。系统平台:Microsoft Windows (64-bit) 10。
2025-12-16 09:22:48
290
原创 HGDBL date_trunc() 和timestamp
系统平台:Microsoft Windows (64-bit) 10。//每个季度的最后一天的晚上的11点(从下个季度开始算起).date_trunc() 和timestamp 时间用法。//本季度的第15天,15小时 15分 30秒。//每个季度最后一天的晚上11点。//每周的周二第一分钟。//每月1号 12点。
2025-12-15 15:30:33
311
原创 修改search_path导致的审计与安全函数不可用
search_path参数被修改,public选项被删除。至此可正常使用审计与安全相关操作函数。版本:4.3.4.6。
2025-12-15 10:40:13
364
原创 WebSphere Application Server 连接瀚高数据库JDBC解决方案
配置serverName、portNumber、databaseName、user和password 输入相应的数据库服务器IP、数据库服务端口、数据库名、用户名和用户密码。注意:这里我没有配置安全认证别名,如果有配置过J2C认证别名,可以根据需要自行配置,J2C认证中的用户密码可以充当数据库的用户及密码(前提是认证用户信息及数据库用户信息)。注意:默认安装管理员用户密码均为wasadmin,如果在WAS概要文件管理配置时,配置了管理安全性用户及密码则用自定义的。下一步,输入数据源特定的数据库属性。
2025-12-12 14:48:47
704
原创 数据库未能完全启动,创建socket临时文件失败
因为autovacuum launcher process和stats collector process进程需要通过本地回环接口收集统计信息,如果本地回环接口down掉,则这两个进程无法启动。后台进程缺少了autovacuum launcher process和stats collector process进程,数据库未能完全启动。系统平台:Linux x86-64 Red Hat Enterprise Linux 7。
2025-12-12 14:19:55
365
原创 Windows下DATA目录的迁移
(由于windows下封装的包,在安装时写入的data目录会注册到服务相对应的注册表中,所以修改了data目录就要修改相关的所有注册表,所以删除服务重新生成服务可以生成新的注册表,才能通过服务来启动数据库)错误信息存在于系统日志 ( 开始->管理工具->服务器管理器->诊断->事件查看器->windows日志->应用程序) 中会提示找不到data目录。6、通过服务启动数据库,发现会报错,提示找不到data目录,所以仅改数据库配置文件不够,可以有以下几种方法。7、刷新服务列表,启动数据库。
2025-12-11 16:20:15
238
原创 瀚高安全版数据库跨模式访问表
4、如果一个b用户想访问a用户下自建模式下的表,需要a用户将模式、表的权限都赋给b用户才可以实现,单独授予任何一个的情况下,在添加了search_path参数后,可以看到表,但是无法查询表的内容。2、通过角色继承的方式创建的用户a跟b,a用户创建的表,将表a的属主改为b用户后,ab用户同时拥有drop该表的权限;5、将表a的属主改为用户b,此时用户a,用户b均可以对表a进行drop操作。6、用户a创建同名模式a,创建表f,同时把模式a下所有表的查询权限赋给b。输入 “help” 来获取帮助信息.
2025-12-11 10:06:00
950
原创 数据库重启后,无法删除postmaster.pid锁文件
执行mount命令,排查发现data目录所在的盘变为了只读。方案二:使用磁盘管理工具,手动将盘卸载,然后重新挂载光盘。系统平台:中标麒麟(龙芯)7。版本:4.3.4.5。
2025-12-10 14:39:35
177
原创 数据库大写用户名修改密码有效期
数据库内用户名默认存储为小写,如使用大写用户名,在修改相关信息时,需要使用双引号把用户名引起。系统平台:中标麒麟(海光)7。版本:4.3.4.2。
2025-12-10 10:45:28
417
原创 如何处理数据库连接数满
管理员用户无法连入数据库时,可先在系统层kill几个空闲连接后,再尝试连入,若kill后,应用仍不断重复发起连接,可让应用人员先停止相关应用程序后再进行操作。管理员用户无法连进数据库时,将postgresql.auto.conf配置文件中的max_connections值修改后,重启数据库。与客户说明情况,调整连接数需重启数据库,征得客户同意后,适当增大连接数。条件允许时,建议重启数据库前先停止应用程序,重启完成后,再启动应用程序。必要时,征得客户同意后,可通过重启数据库释放连接。2.应用程序异常占用。
2025-12-09 14:49:01
462
原创 使用应用插入默认时间字段与系统时间不一致
关于MySQL与PostgreSQL的时间类型:https://www.jianshu.com/p/5c58bdeaf27a。解决办法:timedatectl set-timezone ‘Asia/Hong_Kong’;设置数据库时区为香港时区。另外一篇关于解决瀚高数据库不支持北京时区的文章:标题:通过jdbc连接数据库报时区错误。(如果重启之后问题还没有得到解决,并且条件允许,重启服务器)。解决思路:使系统时区和数据库时区保持一致。解决难点:瀚高数据库不支持北京时区,系统时区与数据库时区不一致。
2025-12-09 09:02:07
365
原创 Blob和Clob类型的数据查询报错
以BYTEA为例,PostgreSQL的两种处理方式是通过分别调用JDBC的setBinaryStream()和setBlob()接口来实现的。期望的逻辑应该是Hibernate能针对PostgreSQL的这个特点来正确区分、正确调用,但不幸的是:Hibernate以为所有数据库都是调用setBinaryStream()来写入BYTEA,出于某种原因并不打算照顾PostgreSQL的特殊情况(貌似一段时间内不会改观),于是前面提到的错误现象发生了。1、定义EJB时,取消@Lob标注,按String对待。
2025-12-08 10:12:54
328
原创 search_path 的使用说明
在 HGDB 中,想要查看数据库中有什么数据表或者视图,一般会在连接数据库后使用元命令\d进行查询,而元命令\d的搜索范围会限定在这个 search_path 模式搜索路径参数中。但是上述修改方式是暂时性修改,只会在本次会话生效,如果断开了数据库连接,再次使用 psql 连接进去数据库,search_path 参数又会变回默认值。search_path 模式搜索路径,是数据库使用的一个进行表查看的模式列表,本文章用于介绍如何使用模式搜索路径参数 search_path。
2025-12-05 14:44:39
230
原创 HighGo Database删除表中的重复数据
本文适用于提供在HighGo Database中,没有主键及唯一索引的情况下,如何清理重复数据。本文中提供的删除方法不会判断数据的有效性,实际环境中,如数据保留有要求,需谨慎使用。ctid类似oracle中的rowid,可以标记唯一数据,如下所示。
2025-12-05 14:42:10
411
原创 postgresql日期/时间数据类型中有无时区的差异使用
注意:SQL要求只写timestamp等效于timestamp without time zone,并且PostgreSQL鼓励这种行为。timestamptz被接受为timestamp with time zone的一种简写,这是一种PostgreSQL的扩展。SQL标准通过“+”或者“-”符号的存在以及时间后面的时区偏移来区分timestamp without time zone和timestamp with time zone文字。本文演示日期/时间数据类型的有无时区的差异使用,时间戳的认识和使用。
2025-12-04 15:14:39
442
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅