- 博客(1526)
- 收藏
- 关注
原创 【只为求才,Want AD】
【求才】有数据库DBA经验,或开发经验均可谈。中国大陆地区。感谢关注和推荐。company: www.highgo.comSend Resumes To Mail: lisong@highgo.com
2021-12-10 16:13:50
2148
2
原创 基于PostgreSQL进行Java应用开发
该手册由PG实验室的成员结合多年对postgresql数据库的使用及Java应用开发经验,总结了一套实战入门手册。帮助PostgreSQL软件爱好者及初学者快速学习postgresql数据库的相关知识。针对应用如何适配postgresql数据库,提供了丰富的技巧案例。开发人员在不了解postgresql的情况下,通过该手册的学习,能够自主的实现基于postgresql的应用开发工作。以上是适配手册涵盖的章节内容。本手册一共6个章节:第1章PostgreSQL介绍 1.1.PostgreSQL起源
2021-11-04 15:27:45
4378
1
原创 HGDB快速将所有原生分区转换为普通表
注意:本文不考虑采用serial导致sequence和table挂钩、外键约束,如果分区表包含serial字段,序列属于partition table的情况,删除old table会导致序列被删除,并且新表的默认值也会被清理。某些情况下由于业务预估过多,导致开发把所有表都建立成了分区表,而实际上并不需要分区。分区多,会导致会话relcache的内存增加,长连接+高并发+未使用的huge page可能触发OOM。某些情况下由于业务预估过多,导致开发把所有表都建立成了分区表,而实际上并不需要分区。
2025-11-24 16:16:04
144
原创 psql无法正常连接数据库
修改LD_LIBRARY_PATH为:export LD_LIBRARY_PATH=/opt/HighGoDB-4.3.4.5/lib:/usr/lib64:$LD_LIBRARY_PATH。如上图所示:将原生postgresql的相关lib包卸载后,重新执行psql -U sysdba -d highgo 可正常连接。psql连接数据库报错:没有找到/var/run/postgresql/.s.PGSQL.5866锁文件。系统平台:中标麒麟(龙芯)7。可正常连接,问题解决。版本:4.3.4.5。
2025-11-24 10:41:16
774
原创 pg_archivecleanup的简单使用及注意事项
该工具可以删除指定目录下某归档文件之前的所有归档。1、使用时尽量保存至少一天的归档,保证清理后可以从备份文件中恢复数据库。介绍pg_archivecleanup工具的使用及注意事项。2、如果在集群或者流复制环境下,清理前先检查流复制状态。
2025-11-21 15:42:09
266
原创 hgdb中的时区与时间戳
下面示例演示了客户端时区变化时,带有时区的时间跟随时区发生变化,但不带时区的时间并未跟随时区改变而改变。timestampz将存储为UTC形式,hgdb会将timestampz转换为格林威治时间1970年01月01日00时00分00秒起至现在的总秒数(UTC),查询时,根据每个会话设定的时区进行转换。to_timestamp将符合条件的其他类型(字符串、数值等)转换为带时区的时间戳,通过下面示例可以看到转换后的数据是带时区的。本文介绍了在HGDB中,带时区和不带时区的时间戳类型如何使用及选择。
2025-11-21 11:06:51
455
原创 手动切换REPMGR节点的步骤和注意事项
2.在切换时 repmgrd 不应该在 repmgr.conf中启用 failover=automatic,否则 repmgrd守护进程可能尝试并自行提升备用数据库。repmgr集群主备切换使用的是repmgr standby switchover工具,它的作用是将备库提升为主库,所以该命令只能在备库上执行。4.建议在切换之前加上–dry-run,可以测试是否切换成功而不进行切换,测试成功后再进行正式切换。介绍repmgr手动主备切换的方法,以及使用过程中的注意事项。首先检查一下repmgr集群状态。
2025-11-20 16:32:59
422
原创 修改表字段长度时更新视图字段长度
2.导出涉及view,暂不考虑function 有使用到view情况,暂不考虑交叉调用情况。3.现通过函数将涉及的视图保存到表中,根据排序的规则删除视图,修改表字段,重建视图。1.修改表字段长度时,会提示有视图正在使用不允许修改,此时需要删除对应的视图。系统平台:Microsoft Windows (64-bit) 10。–根据表名,或者view 查出对应view名,view 建立语句。–测试,不可重复执行,会删除掉已保存view信息。–测试,删除关联view。–测试,创建关联view。
2025-11-20 09:25:40
1179
原创 HGDB开关归档、修改归档路径的方法
archive_command参数的默认值是个空字符串,它的值可以是一条shell命令或者一个复杂的shell脚本,%p表示将要归档的WAL文件的包含完整路径信息的文件名,%f代表不包含路径信息的WAL文件的文件名。修改参数archive_directory的值为‘/new_archive’修改参数archive_command中路径为新的归档路径。新建新的归档存放位置/new_archive。新建新的归档存放位置/new_archive。HGDB开关归档、修改归档路径的方法。
2025-11-19 16:05:51
1287
原创 类型转换处理思路
问题描述:比如,insert boolean类型的值到numeric类型列中,需要对值进行处理,由于insert时在HighGoDB中默认true值为t,false的值为f,而numeric类型无法直接接收t/f,第1行insert into t_varchar_to_numeric(code) values(‘123’::varchar…下面就来介绍一下错误场景及解决方案。对于不同类问题有不同的解决思路,当然,也存在同一思路就行解决两类相关问题,这个需要大家自己仔细研究一下,就可以摸索出其中的规律。
2025-11-19 14:39:26
999
原创 HGDB修改端口号指导手册
对于Windows操作系统来说,以瀚高数据库企业版V5.6.5来举例,该文件是指D:\highgo\database\5.6.5\bin\runpsql.bat。对于Linux操作系统来说,以瀚高数据库安全版V4.3.4.8来举例,该文件是指/opt/HighGo4.3.4.8-see/bin/runpsql.sh。在其它脚本,例如runipsql.sh,配置文件,例如hg_repmgr.conf等地方也有可能包含实际端口号。请修改端口时,考虑到修改需使用的脚本和配置文件的端口。此文档会不定期更新。
2025-11-18 10:08:01
441
原创 瀚高数据库自定义操作符‘&‘
SQL 错误 [42883]: ERROR: 42883: operator does not exist: integer & text。系统平台:Microsoft Windows (64-bit) 10。3、解决方式:自定义操作符。
2025-11-17 15:14:09
258
原创 MySQL与瀚高数据库的范围分区的语法及实例
对于原生RANGE分区,分区字段必须是整型或者转换为整型,如果分区字段是日期类型的字段,那么就必须将日期类型的字段转换成整型类型。对于日期类型的转换,优化器只支持year(),to_days,to_seconds,unix_timestamp()函数的转换,其他的并不支持,也就是说,在按日期字段分区的时候,如果不是使用上述几个函数转换的,查询优化器将无法对相关查询进行优化。当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。分区字段的值不能为NULL。
2025-11-17 10:50:07
970
原创 安全版普通用户获取系统对象的访问权限
oracle_catalog模式下user_table_column视图,是记录表字段信息的系统视图,三权分立和强制访问控制开启下,sysdba之外的所有用户无权访问该模式下的对象并且无法进行授权操作,对于普通用户来说,此时的权限就是自己所拥有的对象的访问和控制权限。三权分立开关、强制访问控制开关、行安全开关不能单独开启或者关闭,由Secure level统一管理,三个可选的参数,其中table代表行安全开关关闭,其余两个开启,row代表三个都开启,off代表三个都关闭。版本:4.3.4.7。
2025-11-14 16:43:51
491
原创 HGDW报错:WAL丢失的处理办法
系统平台:Linux x86-64 Red Hat Enterprise Linux 7。standby节点startup进程异常,该进程一直请求某一WAL,导致无法正常运行。gpinitstandby -s redhat164 (重新生成新的standby)3. 验证 重做standby,查看集群日志,未发现之前报错。gpinitstandby -r (删除原有standby)
2025-11-14 11:04:36
342
原创 Oracle大对象往HGDB迁移详解
Oracle的long raw主要用于不同的系统之间转移数据的时候所用,是Oracle不推荐使用的数据类型。Oracle的Clob类型,主要存储基于数据库字符集的单字节或多字节文本信息,最大长度是(4G-1)*database block size。Oracle的NClob类型,主要存储固定长度的UNICODE字符串,最大长度是(4G-1)*database block size。text的最大长度是1G,比Oracle的小。但是,实际应用中,1G已经足够。text的最大长度是1G,比Oracle的小。
2025-11-13 14:22:35
724
原创 认证方法什么要选择MD5而不是PASSWORD
与md5相反,要求客户端提供一个未加密的口令。因为是以明文形式在网络上传递,在不安全的网络环境上使用这种方式,密码可能会被截取。本文档用于加深对访问控制认证方法MD5与PASSWORD的理解,从底层理解为什么要选择MD5而不是PASSWORD。可以看出 md5方式下,密码在网络传输的过程中是使用md5加密的,不宜被破解,从而保证了安全性。密码是 a1234567,访问控制的认证方法分别配置为 md5 和 password。而 password方式下,则会被抓包工具看到明文形式的密码。到底哪个安全不言而喻。
2025-11-13 09:44:39
577
原创 安全版三权分立及密码限制
瀚高数据库安全版具有相互独立、相互制约的数据管理员(sysdba)、安全保密管理员(syssso)和安全审计员(syssao)三个管理员角色。安全版数据库默认的三个管理员用户中包含一个超级用户:sysdba,此超级用户只是名义上的超级用户,只拥有一般意义上的超级用户的部分权限。3.2 管理员用户密码只能由自己更改,例如修改sysdba账户密码,只能使用sysdba用户进行更改,其他用户无法进行更改。错误: can’t create with superuser。
2025-11-12 14:53:59
760
原创 瀚高数据库索引的创建与管理
注意:使用CONCURRENTLY参数建立索引时,如果索引创建语句被强行取消,此时会遗留在数据库中一个invalid的索引,该索引会导致更新变慢。如果所创建的索引是一个唯一索引,这个invalid的索引还会导致插入重复值失败。注意:reindex可以实现index级、table级、schema级、database级、system级的索引重建。6.SP-GiST: Space-Partitioned GiST,也就是空间分区GiST索引,通过一些新索引算法提高GiST索引的性能。而index是有序的。
2025-11-12 10:22:44
907
原创 如何处理表或索引的膨胀
vacuum full的过程,会改变table的pg_relation_filepath,会改变index的pg_relation_filepath。pg_repack的过程,会改变table的pg_relation_filepath,会改变index的pg_relation_filepath。警告:不带任何参数的pg_repack会直接repack,不要pg-repack不带参数直接敲回车!pg_repack的过程,不会改变table的oid,不会改变index的oid。
2025-11-11 14:34:29
656
原创 usage权限的使用与管理
此外,在撤消此权限后,现有会话可能还具有以前执行过此查找的语句,因此这不是阻止对象访问的彻底安全的方法。数据库对象创建后,其会被分配一个所有者,对大部分类型的对象而言,初始情况下只有所有者(除超管用户)能对该对象进行任意操作,为了让其他用户能使用、操作该对象,此时需对其他用户信息权限分配。总结:每次 highgo 用户在该模式中创建新表后,test用户都无法查询新表,需每次手动执行grant select on all tables in schema highgo TO test 权限。
2025-11-11 10:19:03
725
原创 HighGo Database触发器使用案例
HighGo Database触发器是先创建触发器函数,再创建触发器。触发器必须结合触发器函数来使用。1)pg_trigger表部分字段展示。
2025-11-10 16:07:00
482
原创 pg_pdr的生成方式
瀚高数据库企业版V5提供了类似Oracle数据库AWR报告的性能诊断报告(Performance Diagnosis Report),以下简称 PDR。
2025-11-10 10:11:45
923
原创 Mysql迁移到highgoDB如何实现ID自增长
注意:HighGo DB默认情况下,建立的序列最大值可以是: 9223372036854775807,超过此值将是无效的。这一点与oracle是有区别的,oracle的最大值是:999999999999999999999999999。(2)如果是在瀚高数据库上创建新的表,第一次创建表时,如果设置自增id,把id的类型设置成serial类型即可。伴随着会自动创建序列。(1)数据库中已经存在表(tab1),而且已经有数据,而且不想改动其他,只想改成自增,步骤如下。
2025-11-07 13:56:34
182
原创 Oracle与HGDB拼接的差异
2)用coalesce函数将null转换为’ ’ :select coalesce(null,‘’)||‘123’;1)用concat函数来拼接:select concat(null,‘123’);系统平台:Microsoft Windows (64-bit) 10。HGDB中任意字符与null拼接,结果为null。Oracle中任意字符与null拼接,结果不变。Oracle与HGDB拼接的差异。
2025-11-07 09:46:33
474
原创 SQL Server递归查询在Highgo DB中实现
WITH查询的一个重要属性是RECURSIVE,使用RECURSIVE属性可以引用自己的输出,从而实现递归,一般用于层次结构或树状结构的应用场景。SQL server中指定的排序列中null值会默认排在最前面,在Highgo DB中如果想让null值排在最前面需要加入nulls first。SQL server中连接符’+‘,在Highgo DB中需要改成’||'。系统平台:Microsoft Windows (64-bit) 10。在Highgo DB中实现和SQL Server一样效果的递归查询。
2025-11-06 14:55:20
556
原创 Linux系统下大sql文件根据行进行分割方法
在日常工作中,我们经常会碰到数据信息迁移备份或者恢复的情况,由于editplus和node++等文档查看工具大于2G以上几乎就打不开了,而记事本在sql文件大小超过本机的内存大小之后也无法在打开,就出现了大sql文件无法打开,导入速度慢的情况,所以在此分享一个将文件切割开来的方法,将文件按照行数或者大小进行切分,并且保证数据的完整性,从而解决导入数据慢,文件打不开的情况。按照分好行的b.sql文件进行分行,分前30行数据,生成一个新的sql文件,为test1.sql文件。版本:4.3.4.8。
2025-11-06 10:17:45
642
原创 数据库安全配置指导
密码的配置命令可能会被记录到history文件及csvlog日志文件中(如果开启了DDL或更高级别审计log_statement),这些文件明文记录了密码,可能造成密码泄露风险。这里只讨论数据库日志记录的审计方式,pg还有专用的审计插件(pg_audit)用于专业的审计,针对pg_audit请参考相关文章。2 每次连接尝试都会按顺序检查pg_hba.conf文件中的记录,因此限制IP记录应该放在靠前的位置。例如密码长度,包含数字,字母,大小写,特殊字符等,同时排除暴力破解字典中的字符串。
2025-11-05 16:04:48
1306
原创 数据库日志挖掘指导
WalMiner是从PostgreSQL的WAL(write ahead logs)日志中解析出执行的SQL语句的工具,并能生成出对应的undo SQL语句。reference。
2025-11-05 15:54:46
1159
原创 HGDB单机修改IP地址或主机名(含Linux和windows )
选中当前的网络链接右键点击"属性"—>选中"Internet协议版本4(TCP/IPv4)“复选框,点击"属性”,即可修改IP地址、DNS。点击任务栏"开始"按钮—>进入"控制面板"—>点击"网络和Internet"—>进入"网络和共享中心"—>点击左侧"更改适配器设置",点击任务栏"开始"按钮—>右击"计算机"属性进入系统,在"计算机名称、域和工作组设置"处点击"更改设置"/etc/hosts记录本机ip地址和主机名,修改IP地址或主机名后应修改hosts文件。修改完主机名需要重启。
2025-11-05 09:59:58
1175
原创 管理物化视图(MATERIALIZED VIEW)
要更改拥有者,你还必须是新拥有角色的一个直接或者间接成员,并且该角色必须拥有该物化视图所在模式上的CREATE特权(这些限制强制修改拥有者不能做一些通过删除和重建该物化视图做不到的事情。对物化视图的刷新不阻塞在该物化视图上的并发选择。这个查询将在一个安全受限的操作中运行。可用于ALTER MATERIALIZED VIEW的语句形式和动作是 ALTER TABLE的一个子集,并且在用于物化视图时具有相同的含义。自动删除依赖于该物化视图的对象(例如其他物化视图或常规视图),然后删除所有依赖于那些对象的对象。
2025-11-04 15:34:51
1055
原创 C#程序迁移指南
先将Nhgdb.dll和Mono.Security.dll两个DLL文件放入到工程下的Library文件夹。C#(vs2010)+sqlserver2008迁移到C#(vs2010)+hgdb5.6.4。(5)、ParameterExtension.cs文件。(3)、ConnectionManager.cs文件。文件è新建è项目èASP.NET Web应用程序。(4)、StudentService.cs文件。在解决方案上右键,添加è新建项目è类库。(2)、Web.config文件。此文件在Common下。
2025-11-04 10:55:56
744
原创 应用程序连接数据库查询不到数据
数据库版本说明该jar包适用的瀚高数据库版本(4.0代表适用所有V4版本数据库,5.0代表适用于所有V5版本数据库),后面的数字对应不同的jdk版本(4对应jdk6及以下版本,41对应jdk7版本,42对应jdk8及以上版本)3、使用如下命令查看当前search_path包含的schema,若未包含厂商的schema,添加到search_path,并重启数据库。1、根据以下方法判断,应用程序使用jdbc的版本号,如果使用jdbc的jar包版本号不对,及时更换。1、数据库正常访问,并且能正常查询到数据。
2025-11-03 14:37:36
453
原创 HGDB分区表的使用与管理
数据库表分区把一个大的物理表分成若干个小的物理表,并使得这些小物理表在逻辑上可以被当成一张表来使用。一般来讲我们把上述说明中的大的物理表称为父表/主表,小的物理表称为子表/分区表。主表/父表/Master Table 该表是创建子表的模板。它是一个正常的普通表,但正常情况下它并不储存任何数据。子表/分区表/Child Table/Partition Table 这些表继承并属于一个主表。子表中存储所有的数据。
2025-11-03 10:32:46
707
原创 在HGDB中生成连续时间数据
如果需要产生间隔的时间数据,只需要修改generate_series的第三个参数,如果需要间隔一小时的时间数据,将“1 hours”修改为“2 hours”即可。在一些业务场景下,有时需要数据库产生连续时间的数据。根据需要,可以将上述语句修改为按小时、分钟、秒等时间精度产生数据,与前面修改方法相同。本文介绍了如何使用函数generate_series产生连续的时间数据。根据上面的语句还可以产生按分钟、按秒的语句,写法如下。下面是按月、天、小时产生数据的示例。
2025-10-31 14:53:18
472
原创 对HGDB的pg_stat_statements介绍
从上面的总结中可以得出:用pg_stat_statements可以很轻易找到哪些sql执行的时间比较长,从而可以快速锁定相关的sql进行优化。pg_stat_statements模块提供一种方法追踪一个服务器所执行的所有 SQL 语句的执行统计信息,可以用于统计数据库的资源开销,分析TOP SQL。SQL的调用次数,总的耗时,最快执行时间,最慢执行时间,平均执行时间,执行时间的方差(看出抖动),总共扫描或返回或处理了多少行;pg_stat_statements的字段很多,下面就讲几个比较常用的。
2025-10-31 10:11:50
331
原创 HGDB的log打印配置
注:如果想打印执行慢的SQL语句,只设定log_min_duration_statement即可,参数log_statement需要设置为none。如果同时设置了log_statement和log_min_duration_statement,则会打印所有的语句,性能好的SQL语句也会被打印,原因是log_statement起主导作用。log_duration:显示打印时间,默认off。它不受log_duration和log_min_duration_statement的影响,会打印指定类型的SQL语句。
2025-10-30 10:24:50
1201
原创 HGDB-排他约束
排他约束保证如果将任何两行的指定列或表达式使用指定操作符进行比较,至少其中一个操作符比较将会返回否或空值。系统平台:Microsoft Windows (64-bit) 10。4、此数据与上面数据的name相同,但age不相同,故不允许插入。排它约束会自动建立一个索引,且为gist索引。5、查询数据库中在排序约束中可以使用的操作符。1、引入btree_gist扩展。讲述HGDB排他约束的使用。
2025-10-29 14:45:41
333
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅