pgsql2pgsql es una herramienta integrada en el paquete de código abierto rds_dbsync. Úsela para migrar o sincronizar datos entre instancias de PostgreSQL, PPAS, Greenplum Database y AnalyticDB for PostgreSQL.
Operaciones compatibles
pgsql2pgsql admite dos modos:
|
Modo |
Descripción |
Versiones de origen compatibles |
|
Migración completa de datos |
Migra todos los datos de las tablas entre cualquier combinación de PostgreSQL, PPAS, Greenplum Database y AnalyticDB for PostgreSQL |
Cualquier versión |
|
Migración completa e incremental de datos |
Migra los datos de forma continua, incluidos los cambios capturados después de la carga inicial |
PostgreSQL o PPAS 9.4 o posterior (el destino también debe ser PostgreSQL o PPAS) |
Requisitos previos
Para la migración completa de datos
Antes de configurar pgsql2pgsql, asegúrese de contar con lo siguiente:
Credenciales de propietario para la base de datos PostgreSQL de origen
Permiso de escritura en la tabla de destino dentro de la base de datos de destino
Para la migración completa e incremental de datos
Además de los requisitos previos para la migración completa, asegúrese de tener:
Permiso para crear ranuras de replicación en la base de datos de origen
Replicación lógica habilitada en la instancia PostgreSQL de origen (versión 9.4 o posterior)
Para habilitar la replicación lógica, establezca los siguientes parámetros en postgresql.conf en la instancia de origen:
wal_level = logical
max_wal_senders = 6
max_replication_slots = 6
Configuración de conexiones
pgsql2pgsql lee los detalles de conexión de postgresql.conf. Configure las tres secciones de conexión como se indica a continuación:
Base de datos de origen:
[src.pgsql]
connect_string = "host=192.168.1.1 dbname=test port=3432 user=test password=pgsql"
Establezca user como el propietario de la base de datos PostgreSQL de origen.
Base de datos temporal local:
[local.pgsql]
connect_string = "host=192.168.1.2 dbname=test port=3432 user=test2 password=pgsql"
Base de datos de destino:
[desc.pgsql]
connect_string = "host=192.168.1.3 dbname=test port=3432 user=test3 password=pgsql"
El usuario de la conexión de destino debe tener permiso de escritura en la tabla de destino.
Ejecución de una migración completa
Después de configurar postgresql.conf, ejecute el siguiente comando para iniciar una migración completa:
./pgsql2pgsql
Este comando migra todos los datos de las tablas de usuario de la base de datos de origen a la base de datos de destino.
Supervisión del estado de la migración
Conéctese a la base de datos temporal local y consulte la tabla db_sync_status para comprobar el progreso de la migración:
SELECT * FROM db_sync_status;
La tabla almacena la siguiente información:
Hora de inicio y fin de la migración completa de datos
Hora de inicio de la migración incremental de datos
Estado de la sincronización incremental de datos