Todos los productos
Search
Centro de documentos

AnalyticDB:Use rds_dbsync to migrate or synchronize data from a MySQL database to an AnalyticDB for PostgreSQL database

Última actualización: Sep 04, 2026

rds_dbsync es una herramienta de código abierto para migrar o sincronizar datos de MySQL a AnalyticDB for PostgreSQL (y otras bases de datos compatibles con PostgreSQL). La función mysql2pgsql se conecta directamente a ambas bases de datos, lee los datos de MySQL y los carga en el destino mediante una sentencia COPY, sin necesidad de almacenamiento intermedio. Los datos se importan en paralelo mediante varios hilos de trabajo, cada uno encargado de un conjunto específico de tablas.

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

Inicio rápido

Para migrar todas las tablas de MySQL a AnalyticDB for PostgreSQL:

  1. Configure las conexiones de origen y destino en my.cfg (consulte Configurar conexiones).

  2. Genere el DDL para las tablas de destino:

    ./mysql2pgsql -d
  3. Ejecute el DDL generado en AnalyticDB for PostgreSQL para crear las tablas. Especifique una clave de distribución para cada tabla.

  4. Importe todos los datos:

    ./mysql2pgsql

De forma predeterminada, esto ejecuta la migración con cinco hilos simultáneos.

Configurar conexiones

Edite my.cfg para establecer los detalles de conexión de sus bases de datos de origen y destino.

Base de datos MySQL de origen: sección [src.mysql]:

[src.mysql]
host = "192.168.1.1"
port = "3306"
user = "test"
password = "test"
db = "test"
encodingdir = "share"
encoding = "utf8"

Base de datos de destino: sección [desc.pgsql] (compatible con PostgreSQL, PPAS y AnalyticDB for PostgreSQL):

[desc.pgsql]
connect_string = "host=192.168.1.2 dbname=test port=3432 user=test password=pgsql"

Ejecutar mysql2pgsql

./mysql2pgsql -l <tables_list_file> -d -n -j <thread_count> -s <schema>

Todos los parámetros son opcionales:

Parámetro

Descripción

Valor predeterminado

Ejemplo

-l <file>

Ruta a un archivo de texto que lista las tablas por sincronizar. Si se omite, se sincronizan todas las tablas de la base de datos de origen.

Todas las tablas

-l tab_list.txt

-d

Genera únicamente la sentencia DDL para crear la tabla de destino. No se sincronizan los datos.

Desactivado

-d

-n

Excluye las definiciones de partición de la sentencia DDL. Utilícelo junto con -d.

Desactivado

-d -n

-j <n>

Número de hilos simultáneos para la importación de datos.

5

-j 8

-s <schema>

Esquema de la tabla de destino. Establézcalo en public para AnalyticDB for PostgreSQL.

—

-s public

Formato del archivo de lista de tablas

Al usar -l, cree un archivo de texto plano donde cada línea especifique un nombre de tabla y una condición de filtro opcional:

table1 : select * from table_big where column1 < '2016-08-05'
table2 :
table3
table4: select column1, column2 from tableX where column1 != 10
table5: select * from table_big where column1 >= '2016-08-05'
  • Las líneas sin condición (por ejemplo, table3) migran todas las filas.

  • Las líneas con una condición SELECT migran solo las filas coincidentes.

Escenarios comunes

Migración completa de base de datos

  1. Genere la sentencia DDL:

    ./mysql2pgsql -d
  2. Ejecute el DDL en AnalyticDB for PostgreSQL para crear las tablas. Especifique una clave de distribución para cada tabla.

  3. Migre todos los datos:

    ./mysql2pgsql

    De forma predeterminada, cinco hilos simultáneos leen e importan los datos.

Migración parcial de tablas

  1. Cree un archivo llamado tab_list.txt y liste las tablas por migrar. Agregue una condición de filtro para migrar solo un subconjunto de filas:

    t1
    t2 : select * from t2 where c1 > 138888

    Esto migra todas las filas de t1 y solo las filas donde c1 > 138888 de t2.

  2. Ejecute la migración:

    ./mysql2pgsql -l tab_list.txt

Pasos siguientes