
PostgreSQL
文章平均质量分 62
PostgreSQL号称“世界上最先进的开源关系型数据库“,是一个功能非常强大的、源代码开放的客户/服务器 对象关系型数据库管理系统(ORDBMS)。
这里主要介绍一些PostgreSQL的常用的技巧。
秦时明月之君临天下
道阻且长,行则将至。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL中类似PostgreSQL中的string_agg函数--GROUP_CONCAT函数的使用
MySQL中没有直接等同于PostgreSQL的`string_agg`函数的内置函数,但你可以使用`GROUP_CONCAT`函数来实现类似的功能。`GROUP_CONCAT`函数可以将多个行的字符串值连接成一个字符串,类似于`string_agg`。原创 2025-02-12 14:51:16 · 1523 阅读 · 0 评论 -
PostgreSQL查看wal日志大小
介绍了两种方法来获取wal日志的大小。原创 2025-02-10 18:04:01 · 842 阅读 · 0 评论 -
PostgreSQL插件-pg_stat_statements-安装和使用
`pg_stat_statements`模块提供了一种跟踪服务器执行的所有 SQL 语句的规划和执行统计信息的方法。原创 2025-02-10 15:47:08 · 1260 阅读 · 0 评论 -
探索PostgreSQL:从起源到各版本特性与支持周期
PostgreSQL 最初名为 POSTGRES,指的是加州大学伯克利分校开发的 Ingres 数据库的后继者。1996 年,该项目更名为 PostgreSQL,以反映其对 SQL 的支持。经过 2007 年的审查,开发团队决定保留 PostgreSQL 这个名称和别名 Postgres。转载 2025-01-24 10:56:12 · 220 阅读 · 0 评论 -
PostgreSQL命令pg_ctl stop的三种模式
SIGTERM "Smart"模式等待所有客户端断开连接以及任何在线备份结束。如果该服务器是热备,一旦所有的客户端已经断开连接,恢复和流复制将被终止。SIGQUIT "Immediate"模式将立刻中止所有服务器进程,而不是做一次干净的关闭。这将导致下一次重启时进行一次崩溃恢复。)不会等待客户端断开连接并且将终止进行中的在线备份。所有活动事务都被回滚并且客户端被强制断开连接,然后服务器被关闭。-m选项可以选择三种不同的关闭方法。SIGINT "Fast"模式(只列出了些和 stop 相关的。转载 2025-01-10 14:22:55 · 84 阅读 · 0 评论 -
TBase创建默认组时报错:ERROR PGXC Node dn001 object not defined
相关代码可参考:\contrib\pgxc_ctl\coord_cmd.c#prepare_configureNode函数中的两个for循环,分别遍历cn和dn然后去创建node,之后重新加载配置。回想起艰难的安装过程,好像知道了是怎么回事,因为不是一次性就安装成功,反复修改一些配置后才成功,导致一开始初始化的时候集群是不全的,也就导致了部分节点压根没有创建。规划1gtm,2cn,2dn,名称为:gtm,cn001,cn002,dn001,dn002。cn002查看节点视图,发现只有gtm和cn002。原创 2024-12-30 18:07:21 · 459 阅读 · 0 评论 -
国产云厂商数据库产品--思维导图
为了对比国产云厂商数据库产品,我查阅了各云厂商的官方介绍,墨天轮等平台的部分数据和文章,整理出了简易的思维导图。会去整理,也是因为有点懵,比如说阿里的PolarDB数据库,看起来就是一个数据库,但是其实是一个系列数据库(一组数据库产品的**统称**),它有兼容MySQL的版本,也有兼容PostgreSQL的版本。其它的产品也是如此。原创 2024-12-22 22:16:22 · 504 阅读 · 0 评论 -
PostgreSQL标识符长度限制不能超过63字节
PostgreSQL里面限制标识符(库名、表名等)长度不能超过63个字节,虽然这个参数可以在编译时修改,但是一般都不会去修改(63其实已经够用了,相当于6个长的单词,如果这都说不清楚,那么建议用简称+comment的模式)。原创 2024-12-22 13:55:56 · 423 阅读 · 0 评论 -
TBase开源版V2.1.0集群搭建部署完整版
TBase开源版V2.1.0集群搭建部署完整版转载 2024-12-19 17:04:22 · 219 阅读 · 0 评论 -
TBase安装
TBase 安装转载 2024-12-19 16:55:13 · 185 阅读 · 0 评论 -
TBase源码编译安装
TBase源码编译安装转载 2024-12-19 16:45:29 · 107 阅读 · 0 评论 -
什么是TBase?
TBase是一个提供写可靠性,多主节点数据同步的关系数据库集群平台。你可以将TBase配置一台或者多台主机上,TBase数据存储在多台物理主机上面。数据表的存储有两种方式, 分别是distributed或者replicated ,当向TBase发送查询 SQL时,TBase会自动向数据节点发出查询语句并获取最终结果。转载 2024-12-19 16:17:46 · 366 阅读 · 0 评论 -
pgAdmin简单介绍
pgAdmin是世界上最先进的开源数据库PostgreSQL的最流行和功能丰富的开源管理和开发平台。pgAdmin可以在Linux, Unix, macOS和Windows上管理PostgreSQL和EDB Advanced Server 11及以上版本。原创 2024-11-15 01:39:49 · 709 阅读 · 0 评论 -
PostgreSQL12不再更新了,你还在用吗?还能用吗?
就在今天,即2024年11月15日,PostgreSQL12不再更新了,该大版本的最新版本是12.21,发版时间:2024年11月14日,详见发布说明:。原创 2024-11-15 01:19:26 · 1006 阅读 · 0 评论 -
PostgreSQL用load语句加载插件
在 PostgreSQL 中,`LOAD` 主要用于加载共享库,通常用于扩展功能或性能优化。原创 2024-10-24 22:15:55 · 572 阅读 · 0 评论 -
PostgreSQL VACUUM之深入浅出 (五)
`autovacuum_freeze_max_age` 是 AUTOVACUUM 最不常用的参数,也基本不需要优化,但却是 AUTOVACUUM 最重要的一个参数,因为它与 wraparound 有关,即使 AUTOVACUUM 关闭,达到这个阈值,也会强制触发 AUTOVACUUM ,可见它有多重要。转载 2024-10-23 22:41:37 · 206 阅读 · 0 评论 -
PostgreSQL VACUUM之深入浅出 (四)
可以看到, AUTOVACUUM 已触发,并且 autovacuum worker 已启动,先是 query 为空,而后 query 为 VACUUM ANALYZE public.pgbench_accounts。与 AUTOVACUUM 不同的是,手动 VACUUM 可以通过如下方式设置参数。这样,在实际工作中,就可以灵活调整参数而不需要改配置文件了。查看 PostgreSQL 日志,得知 VACUUM 用时 304.60 s,ANALYZE 用时 27.56 s。根据如上测试,可以验证,适当增大。转载 2024-10-23 22:33:19 · 138 阅读 · 0 评论 -
PostgreSQL VACUUM之深入浅出 (三)
对 VACUUM 有了一定的了解之后,下面系统介绍下 VACUUM 相关参数。VACUUM 相关参数主要分为三大类。转载 2024-10-23 22:28:51 · 123 阅读 · 0 评论 -
PostgreSQL VACUUM之深入浅出 (二)
PostgreSQL 提供了 AUTOVACUUM 的机制。autovacuum 不仅会自动进行 VACUUM,也会自动进行 ANALYZE,以分析统计信息用于执行计划。转载 2024-10-23 21:57:27 · 247 阅读 · 0 评论 -
PostgreSQL VACUUM之深入浅出 (一)
VACUUM 是 PostgreSQL MVCC (Multiversion concurrency control) 实现的核心机制之一,是 PostgreSQL 正常运行的重要保证。本文将通过实例演示 PostgreSQL 为什么需要做 VACUUM,以及一步一步精准触发 AUTOVACUUM, 到 VACUUM 优化实战,深入浅出,一看就懂。转载 2024-10-23 21:48:54 · 371 阅读 · 0 评论 -
pgAdmin不显示template1数据库,该如何设置才可以显示?
pgAdmin和其他数据库管理工具一样,可能是考虑到使用者(比如普通开发人员)可能并不是特别的了解PostgreSQL的(相对)底层的逻辑;因此,为了方便使用(提高使用体验),默认情况下,pgAdmin是不会显示模板库、以及一些内置的模式和对象。但是如果是针对了解部分底层逻辑的使用者(比如DBA),他们可能需要这些比较底层的功能。设置后我们重连一下数据库,就能看到模式数据库和内置模式了。原创 2024-10-21 02:06:14 · 475 阅读 · 0 评论 -
PostgreSQL模板数据库template0和template1的异同点
PostgreSQL有两个模板数据库:template0和template1,template0是不可修改的,而template1是可以修改的。其实就是复制template1模板库,命名为新库。那模板数据库有什么作用呢?顾名思义,当做模板。那两个模板库有什么区别呢?原创 2024-10-21 01:52:16 · 750 阅读 · 0 评论 -
DBeaver显示PostgreSQL数据库的信息模式
DBeaver连接PostgreSQL数据库后,默认情况下是不加载信息模式的,如果有需要,我们可以通过设置显示信息模式。具体步骤:点击数据库连接–>右键打开设置–>连接设置–>常规–>导航视图–>自定义–>勾选显示系统对象。原创 2024-10-01 22:50:53 · 873 阅读 · 0 评论 -
什么是 PostgreSQL commitfest以及如何贡献
Commitfest 是一个为期一个月的活动,Postgres 贡献者和核心员工(提交者)致力于查看补丁、审查补丁、改进补丁并提交到 master 分支。实际上,这些是您最有可能获得补丁反馈的月份。翻译 2024-09-24 18:42:01 · 145 阅读 · 0 评论 -
了解Postgres Hackers邮件列表语言
邮件列表充满了可能不熟悉的首字母缩略词和行话 没有在电子邮件中长大的年轻人(尽管短信已经 继承了许多缩写)。如果您不是英语母语者, 或者 30 岁以下,或者没有沉浸在科技世界中,我会提供一些 解决方案。为此,我下载了去年的黑客电子邮件,编写了一个程序 去掉所有非人类的东西(头、代码块、附件等), 然后对结果进行了一些数据分析。翻译 2024-09-24 16:48:53 · 270 阅读 · 0 评论 -
VSCode调试PostgreSQL源码
本文讲述了如何在Ubuntu20.04上使用对PostgreSQL进行调试转载 2024-08-14 15:29:19 · 420 阅读 · 0 评论 -
PostgreSQL扩展file_fdw详解及使用实践(使用SQL查询数据库日志)
从上例中我们发现使用file_fdw可以很轻松的读取服务器上的数据文件里面的内容。那么通过file_fdw我们可以实现一个很常见的功能:利用file_fdw在数据库中创建外部表来读取数据库日志里面的信息。PostgreSQL的file_fdw模块允许我们直接从数据库中来访问服务器的文件系统中的文件,不过这些文件必须是能够被COPY FROM读取的格式。可以发现,上面我们创建的外部表只能访问一个日志文件,并且需要指定绝对路径,如果日志文件中像上图所示有多个LOG文件,而且绝对路径不固定又该怎么办呢?转载 2024-07-23 18:16:25 · 281 阅读 · 0 评论 -
PostgreSQL报错invalid primary checkpoint record的修复
如果在容器中, 使用下面命令进行挂载数据库 并执行命令行, 方便与我们执行后面的命令。registry.uixe.net/images/postgres 是我的内网镜像地址,因此如果公网, 或者你自己私有镜像, 请替换为可用的 镜像名称。最近又遇到这个错误,这种情况一般都是由于客户服务器断电等原因导致的, 因此网上搜索一堆修复方法, 总结了后, 打算写在这里, 由于我们的pgsql是运行在容器内, 因此这里写的命令均是容器内可以执行的。否则程序以为自己依然在运行状态。重启后, 完美解决。转载 2024-07-21 01:15:43 · 758 阅读 · 1 评论 -
PostgreSQL学习笔记之——备份和恢复(pg_start_backup、pg_stop_backup、pg_basebackup)
需要注意的是,archive_command 设定的归档命令是否成功执行,如果未成功,它会周期性的重试,在此期间已有的WAL日志将不会被覆盖重用,新的WAL日志信息会不断占用 pg_wal 的磁盘空间,知道pg_wal所在磁盘沾满后数据库关闭。用 %f 代表不包含路径信息的WAL文件的文件名。**判断当前是否是全页写模式,当参数 full_page_writes的值为 off 时表示关闭了全页写模式,但当检查备份准备时,如果没有开启,则会强制性将参数 full_page_writes 值设置为 on。转载 2024-07-21 01:12:51 · 527 阅读 · 0 评论 -
PostgreSQL源码分析——基础备份
在排他模式下使用时,该函数将写一个备份标签文件(backup_label),如果pg_tblspc/目录中有任何链接, 则将一个表空间映射文件(tablespace_map)写入数据库集群的数据目录,然后执行检查点,然后返回备份的开始写-提前日志位置。这里的基础备份,其中一个最大的优势就是可以不停机,不停业务进行物理备份,在备份过程中,不需要获取表上的锁,正常业务受备份的影响较小。历史文件包括给予pg_start_backup的标签,备份的开始和结束写前预写式日志的位置,以及备份的开始和结束时间。转载 2024-07-21 01:08:55 · 197 阅读 · 0 评论 -
PostgreSQL如何在windows/linux开启归档
修改后需要重启才能生效!原创 2024-07-19 23:50:32 · 444 阅读 · 0 评论 -
PostgreSQL锁和阻塞发现与处理
或者通过数据库日志(开启log_statements=‘all’,SQL审计)追踪事务中所有的SQL,分析事务之间的锁冲突。通过数据库日志(开启lock_timeout, log_lockwait参数)跟踪锁等待信息。state为idle in transaction,说明该会话执行完了但没有提交。如果觉得前面分步操作太麻烦,可以用下面的sql一次查出(比较长,可以建成视图)根据pid和relation找到阻塞源(granted=t)根据被阻塞/阻塞源的pid查正在执行的语句。找到所在会话执行提交或回滚。转载 2024-02-28 01:11:10 · 718 阅读 · 0 评论 -
PostgreSQL在Windows重装后重新恢复数据的方法
windows系统重装后我们的postgresql服务器就不会正常启动,因为在系统中注册的服务重装后已经没有了,但是你的postgresql不是安装在系统盘区上的,那么postgresql服务器的文件和数据就还是存在的,比如原来的安装目录是D:\PostgreSQL,那么我们怎么让服务器服务自动运行起来,这样我们的程序才能连接数据库了,而且数据还不会丢失。最简单的办法重装,把原来的文件全部删除,如果原来有数据备份,把备份数据恢复就可以了,那如果重装系统前没有备份数据呢?-D代表数据库文件目录 ,转载 2023-12-17 14:37:57 · 681 阅读 · 0 评论 -
查看PostgreSQL数据库进程占用内存的方法
使用top命令查看内存时,会发现有一些PostgreSQL进程占用了很大的内存,用ps aux常看各个进程的内存时,如果把各个进程的内存加起来时,发现超过了总内存,所以很困惑。转载 2023-11-26 01:06:05 · 1550 阅读 · 0 评论 -
PostgreSQL将文本转换成固定的长整型
PostgreSQL将文本转换成固定的长整型原创 2023-10-24 23:47:38 · 638 阅读 · 0 评论 -
PostgreSQL如何查询表大小
查询 PG 表的大小通常需要使用函数/视图来实现,分为单独查询和批量查询的场景,下面简单列一下转载 2023-08-27 18:33:00 · 5109 阅读 · 0 评论 -
PostgreSQL could not identify an equality operator for type json
看这字面上的意思是:pgsql没有能够对json类型字段进行等值操作的操作符。因为这里面我用的是`UNION`,而不是`UNION ALL`,因此会有个去重的操作,而去重的话,就必需将它们进行等值比较,查看是否相等(重复);而pg没有对应的操作符能够支持json字段的该功能,因此报错了。原创 2023-08-20 16:27:22 · 1602 阅读 · 0 评论 -
PostgreSQL-Character with value 0x09 must be escaped.
这个ASCII的值,是换行符。那这应该是因为json不支持换行导致的,我们将换行符转换成空格就行了。中文即使:值为0x09的字符必须转义。原创 2023-07-24 00:44:47 · 1128 阅读 · 0 评论 -
PostgreSQL查找配置文件位置、数据所在目录
转自:https://blog.youkuaiyun.com/DongGeGe214/article/details/121489384。后面的参数即为配置文件所在位置。后面的参数即为数据目录,转载 2023-04-05 21:39:30 · 3595 阅读 · 0 评论 -
PostgreSQL常用的两个字符串分割函数
常用的两个字符串分割函数:regexp_split_to_table、regexp_split_to_array,具体作用其实显而易见,一个是分割成表,一个是数组。原创 2023-03-30 23:37:55 · 1973 阅读 · 0 评论