
我们早些时候发布了2021年PostgreSQL 生态的总结。 我们代表 PostgreSQL 社区和 MigOps 团队,祝所有读者 2023 年新年快乐。2022 年是 PostgreSQL 又一个伟大的一年,有新功能、现有扩展的补丁、大量新扩展和支持迁移到 PostgreSQL的贡献。在本文中,我们将看到 2022 年 PostgreSQL 世界的总结。
现在,将 PostgreSQL 视为 Oracle 和 SQL Server 用户的迁移目标非常普遍。PostgreSQL 已经从选择零许可转变为提供广泛企业功能的数据库。如果没有每个 PostgreSQL 用户的努力,这在今天是不可能的,这也是 PostgreSQL 采用率增加的原因。特别感谢所有参与补丁提交、评论、功能请求、 博客文章、在 PostgreSQL 会议上发言、在postgres 邮件列表中进行讨论以及所有PostgreSQL背后的人。另外,请参阅我们关于2022 年 MigOps 对 PostgreSQL 生态系统贡献的文章。
2022 年有趣的 PostgreSQL 更新摘要

DB-Engines 排名- PostgreSQL 是 2022 年排名前 3 的 DBMS 之一。
PostgreSQL 15 发布——让我们看看它的一些特性。
2022 年发布的次要版本。
2022 年停产的 PostgreSQL 版本。
2022 年诞生的扩展。
检测到并修补的安全漏洞
Ora2Pg 包括一些简化迁移到 PostgreSQL 的功能。
核心团队报告。
DB-Engines 排名 - PostgreSQL 是 2022 年排名前三的数据库之一
DB-Engines 年度数据库流行度排名——2017 年、2018 年和 2020 年将 PostgreSQL 列为年度 DBMS。2021年, PostgreSQL排名亚军 ,Snowflake排名第一。2022 年,Snowflake 继续排名第一,Google BigQuery 排名第二, PostgreSQL 排名第三。 这极大地说明了 PostgreSQL 在2022 年的受欢迎程度优于MySQL、Oracle 和 SQL Server等关系型数据库。
PostgreSQL 15 发布——它的一些特性
PostgreSQL 社区于 2022 年 10 月 13 日宣布发布 PostgreSQL 15。此版本包括最有前途的功能,并在繁重和分布式工作负载的性能、管理、可观察性和安全性方面进行了多项改进。
PostgreSQL 15 的特性和改进:
1、PostgreSQL 15 支持 SQL MERGE 命令。
2、使用 pg_baesbackup 压缩备份。它现在支持服务器端和客户端的gzip、LZ4 和 Zstandard 压缩。
3、服务器日志结构可通过 GUC log_destination作为 jsonlog输出结构。
4、pg_stat_statements 现在收集的统计信息中为 temp 提供 I/O 计时信息。
5、允许逻辑复制中的 PUBLICATION 通过行级和列级限制过滤其内容。CREATE PUBLICATION 命令现在支持指定 SCHEMA 的所有表及其未来的表。
6、在创建唯一约束或索引时,可以选择避免使用 NULLS NOT DISTINCT 子句将 NULL 条目视为 DISTINCT 的行为。
7、Postgres 15 现在支持负比例或大于 NUMERIC 列精度的比例。另请阅读这篇关于 NUMERIC 数据类型和尾随零的有趣文章(含链接)。
8、非超级用户现在可以被授予对 GUC 参数的 SET 和 ALTER SYSTEM 权限。
9、CHECKPOINT 可以由非超级用户通过 pg_checkpoint 角色发布。
10、对单个列进行排序时涉及巨大的性能改进。对单个列进行排序将不再涉及存储整个元组。
11、生成内存分配器而不是“aset”分配器,现在允许使用较少的内存进行排序操作。有关更多详细信息,请参阅本文。
12、支持在优化分布式工作负载的 postgres_fdw 服务器上并行提交。
13、现在可以使用新模块 pg_walinspect 来使用 SQL 函数检查 WAL 段的内容。这类似于 pg_waldump ,但pg_walinspect可通过 SQL 访问。
14、改进了窗口函数的查询性能:row_number()、rank()、dense_rank() 和 count() 以及通过并行外部表扫描引用多个外部表的查询。
15、PostgreSQL 15 进一步改进了引用分区表的查询的计划时间。
16、分区表现在支持 CLUSTER 命令。
17、SELECT DISTINCT 现在可以并行化以更快地执行,但代价是需要更多的并行工作人员。
18、添加了新的正则表达式函数 regexp_count()、regexp_instr()、regexp_like() 和 regexp_substr() 以与其他关系数据库兼容。 有关更多详细信息,请参阅本文 。
19、random() 函数的算法得到进一步改进。
2022 年发布的次要版本
受支持的 PostgreSQL 主要版本的次要版本通常在每个季度第二个月的第二个星期二发布。PostgreSQL 15 已经在 2022 年发布了 1 个小版本。其余 PostgreSQL 主要版本,如 10、11、12、13 和 14,今年都发布了 4 个小版本。
以下是 2022 年针对各个主要版本发布的次要版本。请验证您是否使用的是主版本的最新次要版本。
PostgreSQL 15 -15.1
PostgreSQL14 - 14.2、14.3、14.4、14.5、14.6
PostgreSQL 13 -13.6 , 13.7 , 13.8 , 13.9
PostgreSQL 12 -12.10 , 12.11 , 12.12 , 12.13
PostgreSQL 11 -11.15 , 11.16 , 11.17 , 11.18
PostgreSQL 10 -10.20、10.21、10.22、10.23(此版本现已停产。联系我们获取升级支持)
2022 年后停产的 PostgreSQL 版本
PostgreSQL 10 的最终次要版本 10.23 已于 2022 年 11月10 日发布。PostgreSQL 社区将不会为此主要版本10发布任何安全补丁或错误修复。这确实让使用 PostgreSQL 10 且未计划及早升级的客户感到紧迫。您可以使用来自 MigOps 的文章作为示例, 使用带硬链接的 pg_upgrade升级到受支持的主要版本。
请参阅 PostgreSQL 版本控制策略以了解主要版本被视为不受支持的日期。
2022 年诞生的扩展
PostgreSQL 扩展是增加从 Oracle、SQL Server 到 PostgreSQL 迁移的主要原因之一。世界各地的众多开发人员贡献了他们的补丁或想法,促成了 2022 年许多新扩展的诞生。以下是 2022 年发布的一些新扩展。
1、pg_ivm:pg_ivm 模块提供 PostgreSQL 中物化视图的增量视图维护 (IVM)。与通过 REFRESH MATERIALIZED VIEW 所需的重新计算相比,它可以更有效地更新实体化视图。
2、PGSpider : PGSpider Extension(pgspider_ext) 是为分布式大数据构建高性能SQL集群引擎的扩展。pgspider_ext 使 PostgreSQL 可以使用外部数据包装器(FDW)访问多个数据源,并垂直检索分布式数据源。
3、PLHaskell :该项目是 PostgreSQL 的“过程语言”扩展,允许在 SQL 代码中执行 Haskell 中的代码。
4、rapidrows :RapidRows 是一个开源、零依赖、单一二进制 API 服务器,可以配置为运行 SQL 查询、执行计划的作业并将 PostgreSQL 通知转发到 websockets。
5、pg_enquo :提供加密查询操作 (enquo) 的 PostgreSQL 扩展。
6、pg_show_rewritten_query :显示将要执行的查询,即在分析和重写步骤之后(PostgreSQL 15+)。
7、oracle_fnd :使用自定义变量模拟 FND_GLOBAL 和 FND_PROFILE 包的 API 的函数。(由 MigOps 宣布)。
8、pg_wkhtmltopdf :使用 Webkit (QtWebKit) 将 HTML 转换为 PDF 的 PostgreSQL 实现。
9、pg_rowalesce :pg_rowalesce PostgreSQL 扩展它的定义特征是 rowalesce() 函数。rowalesce() 类似于 coalesce(),但适用于行和其他复合类型。从其任意数量的参数行中,对于每个字段/列,rowalesce() 从该特定字段/列具有非空值的第一行中获取值。
10、pg_mupdf :使用 MuPDF 将 HTML 转换为 PDF 的 PostgreSQL 实现。
11、pg_mockable:pg_mockable扩展可用于从其他模式创建函数的可模拟版本。
12、pg_migrate:pg_migrate 是一个 PostgreSQL 扩展和 CLI,它允许您对表和索引进行模式更改。与 ALTER TABLE 不同,它在线工作,在迁移过程中不会对已处理的表持有长期排他锁。它构建目标表的副本并交换它们。
13、pg_injection : PostgreSQL 检测 sql 注入。
14、pg_icu_parser :使用 ICU 边界分析的 PostgreSQL 文本搜索解析器。
15、pg_diffix :pg_diffix 是用于强动态匿名化的 PostgreSQL 扩展。它确保简单 SQL 查询的答案是匿名的。有关更多信息,请访问 Open Diffix 网站。
16、notify_now :这个简单的扩展允许您使用内置的 PostgreSQL NOTIFY API 从单个查询返回多个响应。
17、lower_quantile :计算较低分位数聚合的扩展。
识别并修复安全漏洞
2022年,核心服务器、客户端库、contrib 模块、客户端 contrib 模块和二进制包共检测到 2个安全漏洞。 如PostgreSQL 社区维护的本安全文档所示,已通过次要版本推送的补丁修复了同样的问题。简而言之,每个 PostgreSQL 主要版本检测到并修复的安全漏洞数量如下。请确保验证您是否使用截至当前日期的最新稳定版本,如PostgreSQL 发行说明中所示。PostgreSQL 10 2023 年不再支持,请务必在测试后升级到最新的 PostgreSQL 大版本。
PostgreSQL 11 - 2
PostgreSQL 12 - 2
PostgreSQL 13 - 2
PostgreSQL 14 - 2
如果您不知道您的 PostgreSQL 数据库是否受到任何安全漏洞的影响,请 立即联系 MigOps 。MigOps 还提供健康审计,以确定性能瓶颈和安全漏洞,调整数据库规模的需求,并为不断增加的工作负载提供短期、中期和长期建议。
Ora2Pg 包括一些简化迁移到 PostgreSQL 的功能
Ora2Pg 是简化迁移到 PostgreSQL 的主要方式之一。Ora2Pg 是唯一支持 Oracle 到 PostgreSQL 迁移的开源工具,活跃了 22 年。在 2022 年,Ora2Pg 有 2 个主要版本,其中包含许多支持复杂代码对象迁移的功能以及 CDC。您可以参考 v23.1 和 v23.2的发行说明。您可能会在 MigOps 发表的这篇文章中看到对 Ora2Pg 的综合改进。
2022 年核心团队报告
核心团队通过详细报告提供所执行活动的透明度。该报告尚未发布 2022 年的报告,但是,您可能有兴趣阅读有关 2019 年 6 月至 2021 年 12 月期间开展的活动的报告。您可以在此处查看报告。
结论
PostgreSQL 的受欢迎程度逐年增加。在 MigOps,与 2021 年相比,从 Oracle 迁移到 PostgreSQL 的客户数量增长了 300%。我们还让客户对从 SQL Server 迁移到 PostgreSQL、从 Informix 迁移到 PostgreSQL 以及从 DB2 迁移到 PostgreSQL 表现出兴趣。我们还注意到 2022 年对迁移评估和数据库迁移支持的请求有所增加。大型组织的领导团队正在考虑通过以下方式节省成本:(1) 迁移到 PostgreSQL 并支付零许可费用,为企业提供更好的支持,以及 (2) 迁移到云以减少基础设施维护成本。MigOps 很高兴有一个团队来支持您迁移到 PostgreSQL 和云。 今天联系我们 了解我们如何简化您的数据库迁移。


点击此处阅读原文
↓↓↓




