通过一次性转储和恢复整个数据库来迁移较小的数据库。此方法最适用于小于 100 GB 的数据库。对于较大的数据库,请考虑分别迁移您的架构和数据。
警告
根据您的数据库大小和网络速度,迁移可能需要很长时间。在此期间,您可以继续从源数据库读取数据,但性能可能会较慢。为了避免这个问题,请 fork 您的数据库并从 fork 迁移您的数据。如果您在迁移期间写入源数据库中的表,则新的写入可能不会传输到 Timescale。为了避免这个问题,请参阅实时迁移。
在开始之前,请检查您是否拥有
- 安装了 PostgreSQL
pg_dump
和pg_restore
实用程序。 - 安装了用于连接到 PostgreSQL 的客户端。这些说明使用
psql
,但任何客户端都可以。 - 在 Timescale 中创建了一个新的空数据库。有关更多信息,请参阅安装 Timescale 部分。为您的数据库预留足够的空间来容纳所有数据。
- 检查您使用的任何其他 PostgreSQL 扩展是否与 Timescale 兼容。有关更多信息,请参阅兼容扩展列表。安装您的其他 PostgreSQL 扩展。
- 检查您是否在目标数据库和源数据库上运行相同的主要 PostgreSQL 版本。有关升级源数据库上的 PostgreSQL 的信息,请参阅自托管 TimescaleDB 的升级说明。
- 检查您是否在目标数据库和源数据库上运行相同的主要 Timescale 版本。有关更多信息,请参阅升级 Timescale 部分。
注意
为了加快迁移速度,请压缩您的数据。您可以压缩当前未插入、更新或删除数据的任何块。当您完成迁移后,您可以根据需要解压缩块以进行正常操作。有关压缩和解压缩的更多信息,请参阅压缩。
使用您的源数据库连接详细信息,将源数据库中的所有数据转储到一个
dump.bak
文件中。如果系统提示您输入密码,请使用您的源数据库凭据pg_dump -U <SOURCE_DB_USERNAME> -W \-h <SOURCE_DB_HOST> -p <SOURCE_DB_PORT> -Fc -v \-f dump.bak <SOURCE_DB_NAME>使用您的 Timescale 连接详细信息连接到您的 Timescale 数据库。当系统提示您输入密码时,请使用您的 Timescale 凭据
psql “postgres://tsdbadmin:<PASSWORD>@<HOST>:<PORT>/tsdb?sslmode=require”通过使用
timescaledb_pre_restore
停止后台工作进程,为数据恢复准备您的 Timescale 数据库SELECT timescaledb_pre_restore();在命令提示符下,使用您的 Timescale 连接详细信息,将转储的数据从
dump.bak
文件恢复到您的 Timescale 数据库中。为了避免权限错误,请包含--no-owner
标志pg_restore -U tsdbadmin -W \-h <CLOUD_HOST> -p <CLOUD_PORT> --no-owner \-Fc -v -d tsdb dump.bak在
psql
提示符下,通过使用timescaledb_post_restore
命令,使您的 Timescale 数据库恢复正常运行SELECT timescaledb_post_restore();通过在您的整个数据集上运行
ANALYZE
来更新您的表统计信息ANALYZE;
关键词
在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页面。