小版本升级是指从 TimescaleDB <major version>.x
更新到 TimescaleDB <major version>.y
。主版本升级是指从 TimescaleDB X.<minor version>
更新到 Y.<minor version>
。
您可以在同一 PostgreSQL 实例中的不同数据库上运行不同版本的 TimescaleDB。此过程使用 PostgreSQL 的 ALTER EXTENSION
函数在不同数据库上独立升级 TimescaleDB。
在 Timescale 上免费试用
Timescale 是一项完全托管的服务,具有自动备份和恢复、具有复制功能的高可用性、无缝扩展和调整大小以及更多功能。您可以免费试用 Timescale 三十天。
此页面向您展示如何执行小版本升级,有关主版本升级,请参阅将 TimescaleDB 升级到主版本。
- 在您的迁移机器上安装 PostgreSQL 客户端工具。这包括
psql
和pg_dump
。 - 阅读发行说明,了解您要升级到的 TimescaleDB 版本。
- 执行数据库备份。虽然 Timescale 升级是就地执行的,但升级是一项侵入性操作。始终确保您手头有备份,并确保在发生灾难时备份可读。
要查看自托管数据库实例中运行的 PostgreSQL 和 TimescaleDB 版本
设置您的连接字符串
此变量保存要升级的数据库的连接信息
export SOURCE="postgres://<user>:<password>@<source host>:<source port>/<db_name>"检索您正在运行的 PostgreSQL 版本
psql -X -d $SOURCE -c "SELECT version();"PostgreSQL 返回类似以下内容:
-----------------------------------------------------------------------------------------------------------------------------------------PostgreSQL 17.2 (Ubuntu 17.2-1.pgdg22.04+1) on aarch64-unknown-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit(1 row)检索您正在运行的 TimescaleDB 版本
psql -X -d $SOURCE -c "\dx timescaledb;"PostgreSQL 返回类似以下内容:
Name | Version | Schema | Description-------------+---------+------------+---------------------------------------------------------------------timescaledb | 2.17.2 | public | Enables scalable inserts and complex queries for time-series data(1 row)
最佳实践是始终使用最新版本的 TimescaleDB。订阅我们在 GitHub 上的发布或使用 Timescale Cloud,始终获取最新更新,没有任何麻烦。
对照您当前运行的 TimescaleDB 和 PostgreSQL 版本以及您要更新到的版本检查以下支持矩阵,然后选择您的升级路径。
例如,要从 PostgreSQL 13 上的 TimescaleDB 2.13 升级到 TimescaleDB 2.17.2,您需要
- 将 TimescaleDB 升级到 2.16
- 将 PostgreSQL 升级到 14 或更高版本
- 将 TimescaleDB 升级到 2.17.2。
您可能需要先升级到最新的 PostgreSQL 版本,然后再升级 TimescaleDB。此外,如果您使用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 的平台包的用户不受影响。
您不能同时升级 TimescaleDB 和 PostgreSQL。您需要按照以下步骤分别升级每个产品
升级 TimescaleDB
psql -X -d $SOURCE -c "ALTER EXTENSION timescaledb UPDATE TO '<version number>';"如果您的迁移路径需要,请升级 PostgreSQL
按照升级 PostgreSQL中的步骤进行操作。在 PostgreSQL 升级之前和之后,您的 PostgreSQL 部署中安装的 TimescaleDB 版本必须相同。
如果您的迁移路径需要,请再次升级 TimescaleDB
psql -X -d $SOURCE -c "ALTER EXTENSION timescaledb UPDATE TO '<version number>';"检查您是否已升级到正确版本的 TimescaleDB
psql -X -d $SOURCE -c "\dx timescaledb;"PostgreSQL 返回类似以下内容:
Name | Version | Schema | Description-------------+---------+--------+---------------------------------------------------------------------------------------timescaledb | 2.17.2 | public | Enables scalable inserts and complex queries for time-series data (Community Edition)
您正在运行全新版本的 TimescaleDB。
关键词
在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页面。