pg_dump 和 pg_restore 实用工具将您的 PostgreSQL 数据库迁移至 ClickHouse Managed Postgres。
前置条件
- 可访问源 PostgreSQL 数据库。
- 在本地计算机上安装
pg_dump和pg_restore。这些工具通常会随 PostgreSQL 一同安装;如果没有,可从 PostgreSQL 官方网站 下载。
环境设置
- 两个表:
events和users。events有一百万行,users有一千行。 events上有一个索引。- 一个基于
events表的视图。 - 几个序列
创建源数据库的转储
pg_dump 将上述对象导出为转储文件。命令很简单:
- 将
<user>、<password>、<host>、<port>和<database>替换为你的源数据库凭据。大多数 Postgres 提供商都会提供一个可直接使用的连接字符串。 --format directory指定将转储保存为目录格式,这适用于pg_restore。-f rds-dump指定转储文件的输出目录。请注意,该目录会自动创建,因此在此之前不应已存在。- 你也可以添加
--jobs参数,并在后面指定要运行的并行作业数,以并行执行转储过程。更多详情,请参阅 pg_dump 文档。
将转储恢复到 ClickHouse Managed Postgres
pg_restore 将其恢复到 ClickHouse Managed Postgres 实例中。
创建 ClickHouse Managed Postgres 实例
恢复转储
pg_restore 命令将转储恢复到 ClickHouse Managed Postgres 实例:
--verbose会在恢复过程中输出详细信息。- 你也可以在这里使用
--jobs参数并行执行恢复过程。更多详情,请参阅 pg_restore 文档。
验证迁移
注意事项
- 确保源数据库和目标数据库的 PostgreSQL 版本兼容。 使用比源服务器版本更旧的 pg_dump 可能会导致功能缺失或恢复问题。理想情况下,应使用与源数据库相同或更高主版本的 pg_dump。
- 大型数据库的转储和恢复可能需要相当长的时间。 请提前做好规划以尽量减少停机时间,并在支持的情况下考虑使用并行转储/恢复 (—jobs) 。
- 请注意,pg_dump / pg_restore 不会复制所有与数据库相关的对象或运行时状态。 这些包括角色及角色成员关系、replication slot、服务器级配置 (例如 postgresql.conf、pg_hba.conf) 、表空间,以及运行时统计信息。