TimescaleDB 是一个 PostgreSQL 扩展。请确保您升级到 TimescaleDB 和 PostgreSQL 的兼容版本。

在 Timescale 上免费试用

Timescale 是一项完全托管的服务,具有自动备份和恢复、通过复制实现高可用性、无缝扩展和调整大小以及更多功能。您可以免费试用 Timescale 三十天。

免费试用
PostgreSQL 17PostgreSQL 16PostgreSQL 15PostgreSQL 14PostgreSQL 13PostgreSQL 12PostgreSQL 11PostgreSQL 10
TimescaleDB 2.17 及更高版本
TimescaleDB 2.16 及更高版本
TimescaleDB 2.15 及更高版本
TimescaleDB 2.14 及更高版本
TimescaleDB 2.13 及更高版本
TimescaleDB 2.12 及更高版本
TimescaleDB 2.10 及更高版本
TimescaleDB 2.5 至 2.9
TimescaleDB 2.4
TimescaleDB 2.1 至 2.3
TimescaleDB 2.0
TimescaleDB 1.7
  • 在您的迁移机器上安装 PostgreSQL 客户端工具。这包括 psqlpg_dump
  • 阅读您要升级到的 TimescaleDB 版本的发行说明
  • 执行数据库备份。虽然 Timescale 升级是就地执行的,但升级是一个侵入性操作。始终确保您手头有备份,并在发生灾难时备份是可读的。

最佳实践是始终使用最新版本的 TimescaleDB。订阅我们在 GitHub 上的发布或使用 Timescale Cloud,始终轻松获取最新更新。

根据您当前运行的 TimescaleDB 和 PostgreSQL 版本以及您要更新到的版本,检查以下支持矩阵,然后选择您的升级路径。

例如,要从 PostgreSQL 13 上的 TimescaleDB 2.13 升级到 TimescaleDB 2.17.2,您需要

  1. 将 TimescaleDB 升级到 2.16
  2. 将 PostgreSQL 升级到 14 或更高版本
  3. 将 TimescaleDB 升级到 2.17.2。

在升级 TimescaleDB 之前,您可能需要升级到最新的 PostgreSQL 版本。此外,如果您使用Timescale Toolkit,请确保 timescaledb_toolkit 扩展 >=
v1.6.0,然后再升级 TimescaleDB 扩展。

版本号PostgreSQL 17PostgreSQL 16PostgreSQL 15PostgreSQL 14PostgreSQL 13PostgreSQL 12PostgreSQL 11PostgreSQL 10
TimescaleDB
2.17.x
TimescaleDB
2.16.x
TimescaleDB
2.15.x
TimescaleDB
2.14.x
TimescaleDB
2.13.x
TimescaleDB
2.12.x
TimescaleDB
2.10.x
TimescaleDB
2.5 - 2.9
TimescaleDB
2.4
TimescaleDB
2.1 - 2.3
TimescaleDB
2.0
TimescaleDB
1.7

我们建议不要将 TimescaleDB 与 PostgreSQL 17.1、16.5、15.9、14.14、13.17、12.21 一起使用。
这些小版本引入了一个破坏性的二进制接口更改,一旦被识别出来,就会在随后的 PostgreSQL 小版本 17.2、16.6、15.10、14.15、13.18 和 12.22 中被还原。当您从源代码构建时,最佳实践是使用 PostgreSQL 17.2、16.6 等更高版本进行构建。Timescale Cloud 以及 Linux、Windows、MacOS、Docker 和 Kubernetes 平台软件包的用户不受影响。

您可以使用 pg_upgrade 就地升级 PostgreSQL。pg_upgrade 允许您保留当前 PostgreSQL 安装的数据文件,同时将新的 PostgreSQL 二进制运行时绑定到它们。

  1. 查找 PostgreSQL 二进制文件的位置

    OLD_BIN_DIR 环境变量设置为包含 postgres 二进制文件的文件夹。例如,which postgres 返回类似于 /usr/lib/postgresql/16/bin/postgres 的内容。

    export OLD_BIN_DIR=/usr/lib/postgresql/16/bin
  2. 设置您的连接字符串

    此变量保存要升级的数据库的连接信息

    export SOURCE="postgres://<user>:<password>@<source host>:<source port>/<db_name>"
  3. 检索 PostgreSQL 数据文件夹的位置

    OLD_DATA_DIR 环境变量设置为以下命令返回的值

    psql -d "$SOURCE" -c "SHOW data_directory ;"

    PostgreSQL 返回类似于以下内容

    ----------------------------
    /home/postgres/pgdata/data
    (1 row)
  4. 选择 PostgreSQL 二进制文件和数据文件夹的新位置

    例如

    export NEW_BIN_DIR=/usr/lib/postgresql/17/bin
    export NEW_DATA_DIR=/home/postgres/pgdata/data-17
  5. 使用 psql 执行升级

    pg_upgrade -b $OLD_BIN_DIR -B $NEW_BIN_DIR -d $OLD_DATA_DIR -D $NEW_DATA_DIR

如果您要将数据移动到新的 PostgreSQL 物理实例,则可以使用 pg_dumppg_restore 从旧数据库中转储数据,然后将其恢复到新的、升级后的数据库中。有关更多信息,请参阅备份和恢复部分

关键词

在此页面上发现问题?报告问题 或在 GitHub 中编辑此页面