rds_dbsync迁移或同步PostgreSQL数据到AnalyticDB PostgreSQL

开源rds_dbsync的pgsql2pgsql是一个用于迁移PostgreSQL数据库的工具,常用于数据库备份、迁移、复制和同步等操作,可实现PostgreSQL、PPAS、Greenplum Database、AnalyticDB PostgreSQL版数据库间相互迁移。

pgsql2pgsql支持的功能

pgsql2pgsql支持如下功能:

  • PostgreSQL、PPAS、Greenplum Database、AnalyticDB PostgreSQL全量数据迁移到PostgreSQL、PPAS、Greenplum Database、AnalyticDB PostgreSQL

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

参数配置

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

  • 源库pgsql连接信息如下所示:

    重要

    源库pgsql的连接信息中,用户最好是对应DB的owner。

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

    [local.pgsql]
    connect_string = "host=192.168.1.2 dbname=test port=3432 user=test2 password=pgsql"
  • 目的库pgsql连接信息如下所示:

    重要

    目的库pgsql的连接信息,用户需要对目标表有写权限。

    [desc.pgsql]
    connect_string = "host=192.168.1.3 dbname=test port=3432 user=test3 password=pgsql"
重要
  • 如果要做增量数据同步,连接源库需要有创建replication slot的权限。

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

    wal_level = logical
    max_wal_senders = 6
    max_replication_slots = 6

pgsql2pgsql用法

全库迁移

进行全库迁移,请执行如下命令:

./pgsql2pgsql

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

状态信息查询

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

下载与说明