Saltar a contenido

Referencia de Funciones

Gestión de Conectores

synchdb_add_conninfo

Propósito: Crea una nueva configuración de conector

Parámetros:

Parámetro Descripción Requerido Ejemplo Notas
name Identificador único para este conector 'mysqlconn' Debe ser único entre todos los conectores
hostname IP/nombre de host de la base de datos heterogénea '127.0.0.1' Soporta IPv4, IPv6 y nombres de host
port Número de puerto para la conexión 3306 Por defecto: MySQL(3306), SQLServer(1433)
username Nombre de usuario para autenticación 'mysqluser' Requiere permisos apropiados
password Contraseña de autenticación 'mysqlpwd' Almacenada de forma segura
source database Nombre de la base de datos origen 'inventory' Debe existir en el sistema origen
destination database Base de datos PostgreSQL destino 'postgres' Debe existir en PostgreSQL
table Patrón de especificación de tabla '[db].[table]' Vacío = replicar todas las tablas
connector Tipo de conector (mysql/sqlserver) 'mysql' Ver conectores soportados arriba
rule file Reglas de traducción de tipos de datos 'myrule.json' Debe estar en el directorio $PGDATA

Ejemplos de Uso:

-- Ejemplo MySQL
SELECT synchdb_add_conninfo(
    'mysqlconn',    -- Nombre del conector
    '127.0.0.1',    -- Host
    3306,           -- Puerto
    'mysqluser',    -- Usuario
    'mysqlpwd',     -- Contraseña
    'inventory',    -- BD origen
    'postgres',     -- BD destino
    '',             -- Tablas (vacío para todas)
    'mysql',        -- Tipo de conector
    'myrule.json'   -- Archivo de reglas
);

-- Ejemplo SQL Server
SELECT synchdb_add_conninfo(
    'sqlserverconn',
    '127.0.0.1',
    1433,
    'sa',
    'MyPassword123',
    'testDB',
    'postgres',
    'dbo.orders',   -- Tabla específica
    'sqlserver',
    'mssql_rules.json'
);

Funciones Básicas de Control

synchdb_start_engine_bgw

Propósito: Inicia un conector

SELECT synchdb_start_engine_bgw('mysqlconn');

synchdb_pause_engine

Propósito: Detiene temporalmente un conector en ejecución

SELECT synchdb_pause_engine_bgw('mysqlconn');

synchdb_resume_engine

Propósito: Reanuda un conector pausado

SELECT synchdb_resume_engine('mysqlconn');

synchdb_stop_engine_bgw

Propósito: Termina un conector

SELECT synchdb_stop_engine('mysqlconn');

Gestión de Estado

synchdb_state_view

Propósito: Monitorea los estados y el estado de los conectores

SELECT * FROM synchdb_state_view();

Campos de Retorno:

Campo Descripción Tipo
id Identificador de slot del conector Integer
connector Tipo de conector (mysql o sqlserver) Text
conninfo_name Nombre del conector asociado Text
pid ID del proceso trabajador Integer
state Estado actual del conector Text
err Último mensaje de error Text
last_dbz_offset Último offset de Debezium registrado JSON

Estados Posibles:

  • 🔴 stopped - Inactivo
  • 🟡 initializing - Iniciando
  • 🟠 paused - Pausado temporalmente
  • 🟢 syncing - Sondeando activamente
  • 🔵 parsing - Procesando eventos
  • 🟣 converting - Transformando datos
  • executing - Aplicando cambios
  • 🟤 updating offset - Actualizando punto de control
  • 🟨 restarting - Reiniciando
  • unknown - Estado indeterminado

synchdb_set_offset

Propósito: Configura una posición de inicio personalizada

Ejemplo para MySQL:

SELECT synchdb_set_offset(
    'mysqlconn', 
    '{"ts_sec":1725644339,"file":"mysql-bin.000004","pos":138466,"row":1,"server_id":223344,"event":2}'
);

Ejemplo para SQL Server:

SELECT synchdb_set_offset(
    'sqlserverconn',
    '{"event_serial_no":1,"commit_lsn":"00000100:00000c00:0003","change_lsn":"00000100:00000c00:0002"}'
);

Gestión de Instantáneas

synchdb_restart_connector

Propósito: Reinicializa un conector con un modo de instantánea específico

Modos de Instantánea:

Modo Descripción Caso de Uso
always Realiza una instantánea completa en cada inicio Verificación completa de datos
initial Solo instantánea inicial Operaciones normales
initial_only Una única instantánea, luego se detiene Migración de datos
no_data Solo estructura, sin datos Sincronización de esquema
never Omite instantánea, solo transmite Actualizaciones en tiempo real
recovery Reconstruye desde el origen Recuperación de desastres
when_needed Instantánea condicional Recuperación automática

Ejemplo:

-- Reiniciar con modo de instantánea específico
SELECT synchdb_restart_connector('mysqlconn', 'initial');


📝 Notas Adicionales:

  • Siempre validar la configuración del conector antes de iniciar
  • Monitorear los recursos del sistema durante operaciones de instantánea
  • Respaldar la base de datos PostgreSQL de destino antes de operaciones importantes
  • Probar la conectividad desde el servidor PostgreSQL a la base de datos origen
  • Asegurar que la base de datos origen tenga los permisos requeridos configurados
  • Se recomienda monitoreo regular de los registros de errores