2025年9月25日: PostgreSQL 18 发布!

Database Lab Engine 3.0:UI、持久化克隆、PostgreSQL 14 等

发布于 2021-12-22,作者 Postgres AI
相关开源项目

DLE 3.0 有哪些新特性?

Postgres.ai 团队很高兴宣布发布 Database Lab Engine (DLE) 3.0 版本,这是有史以来发布的、最先进的开源软件,它为快速增长的项目赋能开发、测试和故障排除环境。使用 Database Lab Engine 3.0 可以通过在软件开发中实施 “左移测试” 方法,为公司带来竞争优势。

Database Lab Engine 是一项开源技术,支持 PostgreSQL 的精简克隆。当您需要扩展开发流程时,精简克隆非常有价值。DLE 可以在单台机器上管理数十个独立的数据库克隆,因此每个工程师或自动化流程都能以每秒的速度使用自己的数据库,而无需额外成本。

DLE 3.0 的主要改动包括:

  • UI 已集成到核心,允许使用单个 DLE 实例进行操作,
  • 持久化克隆:克隆现在可以在 DLE(或 VM)重启后依然存在,
  • 针对“逻辑”数据供应模式:能够使用来自不同池/数据集的快照来重置克隆的状态,
  • 改进了日志记录和配置的简便性,
  • 针对在单台机器上运行多个 DLE 的情况进行了改进,
  • 支持 PostgreSQL 14。

从 3.0.0 版本开始,DLE 会收集非个人身份可识别的遥测数据。此功能默认启用,但可以关闭。请阅读 DLE 文档了解更多信息。启用遥测数据有助于我们做出开源产品开发的未来决策,可以被视为您对 DLE 开发的贡献。

接下来,我们将讨论 DLE 3.0 中实现的最受关注的更改——所有这些更改都基于真实的实际用户体验以及来自不断增长的用户和贡献者社区的宝贵反馈。

值得注意的是:

DLE UI:在浏览器中秒级克隆大型数据库

作为开源软件,DLE 始终配备了 APICLI。至于 UI,最初只以 SaaS 的形式提供——即 运行在 Postgres.ai 上的 Database Lab Platform

根据 DLE 用户的众多请求,UI 已集成到 DLE 3.0 的核心发行版中。这一变化使开源 DLE 对用户更具吸引力,提高了易用性,并简化了在快速发展的公司中的采用。

您可以在 演示 DLE UI 的短视频 中观看。

一些用户告诉我们,有了 UI,向同事解释 DLE 如何帮助解决各种使用场景变得更加容易。如果您喜欢 Database Lab,请尝试利用这一变化——使用 UI,向他人演示在几秒钟内克隆大型数据库的想法,并讨论它如何影响您的软件开发、测试流程以及事件故障排除和 SQL 优化。

持久化克隆:在维护期间继续处理克隆的 Postgres 数据库

DLE 3.0 中添加的另一项功能也是 DLE 用户经常询问的功能。在 3.0 之前,任何 DLE 重启都会导致所有创建的克隆丢失——因此 DLE 升级、VM 重启,甚至简单的 DLE 重配置都需要维护窗口,从而中断工作。

该问题的一个部分解决方案是在 DLE 2.0 中引入的无需重启即可重新配置 DLE 的能力。然而,这在 DLE 升级或 VM 重启的情况下并没有帮助。现在有了 DLE 3.0,这个问题已得到全面解决。

  • 如果您正在运行 DLE 2.5 或更早版本,请计划再安排一个维护窗口——这将是最后一次进行升级维护。之后的所有升级都将保持克隆的存活。
  • 如果您遇到 VM 故障——在云环境中并不少见——一旦 VM 恢复,克隆将重新创建,并保持数据库状态。

当然,在 VM 重启的情况下,DB 连接会丢失,需要重新创建。然而,如果您只需要重启 DLE,所有克隆容器将继续运行,用户现在可以在 DLE 重启期间继续使用它们,而无需中断工作。

“逻辑”模式的进阶重置

在 DLE 2.5 中,我们实现了重置到任何可用快照的功能——这是一种让您的克隆快速穿越时间的方式。在 2.5 中,这仅支持“物理”供应模式(从物理备份恢复数据目录 PGDATA,或通过 pg_basebackup 从源获取)。换句话说,只有当您自己管理 Postgres 并可以复制 PGDATA 或建立到您的数据库的物理复制连接时,它才能工作。而 RDS 和其他托管 Postgres 服务用户无法使用。

对于 DLE 在“逻辑”数据供应模式下运行(基于 dump/restore——这是大多数托管 Postgres 云服务(如 Amazon RDS)的唯一选择),DLE 2.5 提供了操作多个 PGDATA 副本的能力,这使得无需停机即可实现完全刷新。但是,如果 DLE 用户在“旧”PGDATA 版本上运行克隆,他们需要重新创建它们才能解锁下一个完全刷新——由于端口分配可能不可预测,这有点不方便。

在 DLE 3.0 中,现在可以将克隆的状态重置为任何数据库版本(快照),即使该版本由运行在不同池/数据集上的另一个 PGDATA 副本提供。这意味着用户可以长时间将克隆保持在同一端口运行,拥有稳定的数据库凭据(包括端口),并且在需要时,一旦完全刷新完成,可以在几秒钟内切换到最新的数据库版本。这使得使用“逻辑”模式的体验几乎与“物理”模式相媲美。

在单台机器上运行多个 DLE

最初,DLE 被设计为在专用机器(物理或虚拟)上运行。然而,许多用户发现这不方便——在某些情况下,开发和测试环境会受到预算优化的影响,因此在单台机器上运行多个 DLE 可能非常有意义,特别是当组织拥有许多较小的数据库时(这对于处理微服务架构的组织来说很常见)。

DLE 3.0 包含多项改进,可简化在单台机器上运行多个 DLE。特别是,新的配置选项selectedPool 允许使用单个 ZFS 池,并以每个 DLE 拥有自己数据集的方式运行多个 DLE。这大大简化了空闲磁盘空间管理:不再需要分散分配空间并处理许多“空闲磁盘空间”数字,DLE 管理员现在只需要控制一个数字,并可以更少地调整磁盘大小。

我们计划在另一篇文章中讨论在单台机器上运行多个 DLE 的相关问题。

进一步阅读:

征求反馈和贡献

非常感谢您的反馈和贡献