开发者社区 问答 正文

如何从 PostgreSQL 导入数据

工具 pgsql2pgsql 支持不落地的把 HybridDB for PostgreSQL/Greenplum Database/PostgreSQL/PPAS 中的表迁移到 HybridDB for PostgreSQL/Greenplum Database/PostgreSQL/PPAS。

pgsql2pgsql 支持的功能


pgsql2pgsql 支持如下功能:


  • PostgreSQL/PPAS/Greenplum Database/HybridDB for PostgreSQL 全量数据迁移到 PostgreSQL/PPAS/Greenplum Database/HybridDB for PostgreSQL。

  • PostgreSQL/PPAS(版本大于9.4)全量 + 增量迁移到 PostgreSQL/PPAS。


参数配置


修改配置文件 my.cfg、配置源和目的库连接信息。

  • 源库 pgsql 连接信息如下所示:
    [backcolor=transparent]注意:源库 pgsql 的连接信息中,用户最好是对应 DB 的 owner。[src.pgsql]
  • connect_string = "host=192.168.1.1 dbname=test port=5888  user=test password=pgsql"


  • 本地临时 Database pgsql 连接信息如下所示:[local.pgsql]
  • connect_string = "host=192.168.1.1 dbname=test port=5888  user=test2 password=pgsql"


  • 目的库 pgsql 连接信息如下所示:
    [backcolor=transparent]注意:目的库 pgsql 的连接信息,用户需要对目标表有写权限。[desc.pgsql]
  • connect_string = "host=192.168.1.1 dbname=test port=5888  user=test3 password=pgsql"


[backcolor=transparent]注意:

  • 如果要做增量数据同步,连接源库需要有创建 replication slot 的权限。

  • 由于 PostgreSQL 9.4 及以上版本支持逻辑流复制,所以支持作为数据源的增量迁移。打开下列内核参数才能让内核支持逻辑流复制功能。
    wal_level = logical
    max_wal_senders = 6
    max_replication_slots = 6


pgsql2pgsql 用法



全库迁移


进行全库迁移,请执行如下命令:
  1. [backcolor=transparent]./[backcolor=transparent]pgsql2pgsql

迁移程序会默认把对应 pgsql 库中所有用户的表数据将迁移到 pgsql。

状态信息查询


连接本地临时 Database,可以查看到单次迁移过程中的状态信息。这些信息被放在表 db_sync_status 中,包括全量迁移的开始和结束时间、增量迁移的开始时间和增量同步的数据情况。

下载与说明

  • 下载 mysql2pgsql 二进制安装包,请单击 这里
  • 查看 mysql2pgsql 源码编译说明,请单击 这里

展开
收起
云栖大讲堂 2017-11-01 10:57:43 2179 分享 版权
阿里云 AI 助理回答

您提到的 pgsql2pgsql 工具似乎是一个用于在不同PostgreSQL兼容数据库之间迁移数据的工具,包括阿里云的HybridDB for PostgreSQL、Greenplum Database、以及传统的PostgreSQL和PPAS(Postgres Plus Advanced Server)。这个工具支持全量数据迁移以及特定版本下的增量数据同步,能够在不落地的情况下高效地完成数据库表的迁移工作。下面是对您提供信息的一个总结和补充:

功能亮点

  • 全量数据迁移:支持在PostgreSQL/PPAS/Greenplum Database/HybridDB for PostgreSQL之间进行全量数据迁移。
  • 增量数据迁移:对于PostgreSQL/PPAS(9.4及以上版本),支持从源库到目标库的增量数据同步,利用逻辑流复制技术实现。

参数配置

  • 配置文件:通过修改my.cfg配置文件来设置源库、本地临时库和目的库的连接信息。
    • 源库连接需使用具有相应数据库owner权限的用户。
    • 目的库连接用户需要对目标表有写入权限。
    • 增量迁移要求源库用户具备创建replication slot的权限,并且需要调整PostgreSQL内核参数以启用逻辑流复制功能。

使用步骤

  1. 配置连接信息:按照上述说明编辑配置文件,确保所有必要的连接参数正确无误。
  2. 全库迁移命令:执行./{binary}(假设已将路径替换为实际的二进制文件路径)来启动全库迁移过程。
  3. 状态查询:通过连接本地临时Database并查询db_sync_status表,可以监控迁移的状态和进度。

注意事项

  • 确保源数据库和目标数据库之间的版本兼容性,避免因版本差异导致的迁移问题。
  • 在进行增量迁移前,确认已经正确设置了wal_level、max_wal_senders、max_replication_slots等内核参数。
  • 考虑到数据安全和完整性,建议在迁移前进行充分的备份。

下载与文档

  • 提供了下载二进制安装包的链接,以及查看源码编译说明的途径,便于用户根据实际情况选择合适的获取方式。

请注意,直接提供的下载链接和源码编译说明链接在这里未具体给出,实际操作时应参照阿里云官方文档或相关开源项目页面获取最新和最准确的信息。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答