TimescaleDB 是一个 PostgreSQL 扩展。请确保您升级到 TimescaleDB 和 PostgreSQL 的兼容版本。
在 Timescale 上免费试用
Timescale 是一项完全托管的服务,具有自动备份和恢复、通过复制实现高可用性、无缝扩展和调整大小以及更多功能。您可以免费试用 Timescale 三十天。
PostgreSQL 17 | PostgreSQL 16 | PostgreSQL 15 | PostgreSQL 14 | PostgreSQL 13 | PostgreSQL 12 | PostgreSQL 11 | PostgreSQL 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 客户端工具。这包括
psql
和pg_dump
。 - 阅读您要升级到的 TimescaleDB 版本的发行说明。
- 执行数据库备份。虽然 Timescale 升级是就地执行的,但升级是一个侵入性操作。始终确保您手头有备份,并在发生灾难时备份是可读的。
最佳实践是始终使用最新版本的 TimescaleDB。订阅我们在 GitHub 上的发布或使用 Timescale Cloud,始终轻松获取最新更新。
根据您当前运行的 TimescaleDB 和 PostgreSQL 版本以及您要更新到的版本,检查以下支持矩阵,然后选择您的升级路径。
例如,要从 PostgreSQL 13 上的 TimescaleDB 2.13 升级到 TimescaleDB 2.17.2,您需要
- 将 TimescaleDB 升级到 2.16
- 将 PostgreSQL 升级到 14 或更高版本
- 将 TimescaleDB 升级到 2.17.2。
在升级 TimescaleDB 之前,您可能需要升级到最新的 PostgreSQL 版本。此外,如果您使用Timescale Toolkit,请确保 timescaledb_toolkit
扩展 >=
v1.6.0,然后再升级 TimescaleDB 扩展。
版本号 | PostgreSQL 17 | PostgreSQL 16 | PostgreSQL 15 | PostgreSQL 14 | PostgreSQL 13 | PostgreSQL 12 | PostgreSQL 11 | PostgreSQL 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 二进制运行时绑定到它们。
查找 PostgreSQL 二进制文件的位置
将
OLD_BIN_DIR
环境变量设置为包含postgres
二进制文件的文件夹。例如,which postgres
返回类似于/usr/lib/postgresql/16/bin/postgres
的内容。export OLD_BIN_DIR=/usr/lib/postgresql/16/bin设置您的连接字符串
此变量保存要升级的数据库的连接信息
export SOURCE="postgres://<user>:<password>@<source host>:<source port>/<db_name>"检索 PostgreSQL 数据文件夹的位置
将
OLD_DATA_DIR
环境变量设置为以下命令返回的值psql -d "$SOURCE" -c "SHOW data_directory ;"PostgreSQL 返回类似于以下内容
----------------------------/home/postgres/pgdata/data(1 row)选择 PostgreSQL 二进制文件和数据文件夹的新位置
例如
export NEW_BIN_DIR=/usr/lib/postgresql/17/binexport NEW_DATA_DIR=/home/postgres/pgdata/data-17使用 psql 执行升级
pg_upgrade -b $OLD_BIN_DIR -B $NEW_BIN_DIR -d $OLD_DATA_DIR -D $NEW_DATA_DIR
如果您要将数据移动到新的 PostgreSQL 物理实例,则可以使用 pg_dump
和 pg_restore
从旧数据库中转储数据,然后将其恢复到新的、升级后的数据库中。有关更多信息,请参阅备份和恢复部分。
关键词