PostgreSQL 安全性配置概要
本文从网络、数据库实例、数据库、schema 和表对象几个层面对 PostgreSQL 数据库的安全性配置进行了简要的回顾。
本文从网络、数据库实例、数据库、schema 和表对象几个层面对 PostgreSQL 数据库的安全性配置进行了简要的回顾。
最近在做 Oracle 迁移的时候发现一个类型错误,如下所示:
1 | ERROR: invalid input syntax for type numeric: "null" |
这个问题其实很简单,就是原始数据里面包含 'null'
的字符串导致的。解决这个问题的办法就是将数据中为 'null'
的异常数据转换为正常数据。
最近由于需要从事 Go 语言相关的工作,为此花了约一个星期的时间将《Go 语言实战》这本书过了一遍,对 Go 语言有了一个基本的认识。这本书短小精悍,全书 200 多页,详细介绍了 Go 语言的数组、切片的底层原理,Go 语言的类型系统、并发、通道以及测试。当然部分内容也没有深入的讲解,如映射,其底层的实现介绍的不是很充分。《Go 语言实战》这本书适合有一定语言编程经验的读者。
在目前的 PostgreSQL 13 中,如果我们采用同步逻辑复制,那么在同步 TRUNCATE 表时,可能会发生数据库 hang 住的可能。本文便是针对这一问题进行分析。
Oracle 数据库的 wm_concat
函数用于将多行数据聚合为单行,从而提供与特定值关联的数据列表,它将以逗号来分割列表。
本文主要介绍 wm_concat
函数的功能以及其在 PostgreSQL 数据库中的替换方法。
PostgreSQL 使用 autoconf 工具来自动配置软件源代码包。我在修改了 configure.ac 文件之后执行 autoreconf 发现它将引入其他无关的更改,如下所示:
1 | @@ -1187,6 +1189,15 @@ do |
这是由于供应商的软件包经常包含一些改进导致的,这就导致了我们生成的 configure 文件与其他提交者的有不同的结果。
最近看到 PostgreSQL 邮件列表中有人说 auto_explain 插件在特定情况下会导致 OOM 问题,经过一番分析发现原来是由于内存上下文的问题导致的。目前该泄露已经修复,并合并到代码库中。
经过约八个月的努力,终于完成了 PostgreSQL 空闲会话超时断开的功能,该功能将在版本 14 中发布。这是我第一次向 PostgreSQL 提供功能,虽然之前也有向社区提供过补丁,但是这次整个功能(相对比较简单)被接受还是比较高兴的,感谢社区各位大佬的帮助和反馈。
PostgreSQL 数据库在 9.0 中引入了物理复制,之前的文章中也有介绍。物理复制将主库中所有的更改都通过 WAL 日志流式地传输到备库中,备库通过重放 WAL 日志来实现同步。但是,物理复制也有其自身的局限性。
PostgreSQL 在版本 10 中引入了逻辑复制,它用于解决上述物理复制的局限性,同时业务复制开辟了一个新的方向。逻辑复制使用发布和订阅模式,一个或多个订阅者可以订阅一个发布者上的一个或多个发布。订阅者最初会从发布者那里收到复制的数据库对象的副本,并在同一对象上实时进行后续更改。
在 PostgreSQL 行级安全策略的使用一文中,我简要介绍了如何使用行级安全策略,最近因为工作需要对其又有了新的认识,故在此记录一下。本文主要介绍行级安全策略中用户权限和策略表达式(USING
和 CHECK
)。