Saltar al contenido principal Saltar al contenido complementario

Configuración de la conmutación por error

Nota informativa
  • Los procedimientos descritos en este tema deben ser realizados por su DBA PostgreSQL.
  • Requiere Data Movement gateway 2024.11.14 o posterior

Este tema explica cómo configurar PostgreSQL y Data Movement gateway para respaldar un escenario de conmutación por error. El procedimiento que debe realizar depende de su configuración específica de conmutación por error PostgreSQL.

Si el ID del objeto de base de datos para la base de datos primaria y secundaria sigue siendo el mismo después de una conmutación por error (que suele ser el caso), sólo tendrá que actualizar el archivo hosts en la máquina Data Movement gateway con la dirección IP del servidor de la base de datos secundaria. Sin embargo, si el ID del objeto de base de datos de la base de datos secundaria no es el mismo que el de la base de datos primaria después de una conmutación por error, se requiere una configuración adicional. Normalmente no es posible saber de antemano si el ID de objeto cambiará, pero si lo sabe, realice el procedimiento Configuración de la conmutación por error cuando el ID de objeto de la base de datos primaria y secundaria es diferente que se describe a continuación. Si no sabe si el ID del objeto cambiará, le recomendamos que realice el procedimiento más sencillo descrito en Configuración de la conmutación por error cuando el ID del objeto para la base de datos primaria y secundaria es el mismo, ya que el ID del objeto normalmente seguirá siendo el mismo después de una conmutación por error.

Si ha realizado la configuración más sencilla y Data Movement gateway no se recupera durante la conmutación por error, deberá realizar el procedimiento Configuración de la conmutación por error cuando el ID de objeto de la base de datos primaria y secundaria es diferente.

Nota informativaMientras que el procedimiento Configurar la conmutación por error cuando el ID del objeto para la base de datos primaria y secundaria es el mismo se admite tanto con proyectos de replicación como con tareas de destino en proyectos de canalización de datos , el procedimiento Configurar la conmutación por error cuando el ID del objeto para la base de datos primaria y secundaria es diferente solo se admite con proyectos de replicación.

Configuración de la conmutación por error cuando el ID de objeto de la base de datos primaria y secundaria es el mismo

Cuando se produce una conmutación por error, la tarea de datos encontrará un error recuperable e intentará volver a conectarse a la dirección IP del servidor de la base de datos primaria. Sin embargo, normalmente no tendrá éxito ya que el servidor de la base de datos secundaria tendrá (casi siempre) una dirección de IP diferente.

Si el cambio de direcciones de IP no lo gestiona un servicio de conmutación por error de DNS, tendrá que especificar la nueva dirección IP en el archivo hosts de la máquina Data Movement gateway. La ruta al archivo hosts es /etc/hosts. Una vez actualizado el archivo de hosts, la tarea de datos se reanudará automáticamente.

Configuración de la conmutación por error cuando el ID de objeto de la base de datos primaria y secundaria es diferente

Nota informativaSolo compatible con proyectos de Replicate.

En el modo de funcionamiento estándar, la tarea de datos crea una ranura automáticamente al mover datos desde una fuente de datos PostgreSQL. Los nombres de las ranuras contienen el ID del objeto de la base de datos en su nombre. En raras ocasiones, el ID de objeto de las bases de datos primaria y secundaria será diferente. En tal caso, la tarea de datos fallará durante una conmutación por error, ya que no podrá encontrar la ranura que creó para la base de datos primaria en la base de datos secundaria. En este caso, se producirá el siguiente error:

[SOURCE_CAPTURE ]E: Can't resume task after replication slot was dropped. [1020101] (postgres_endpoint_capture.c:445)

Si se encuentra con un error de este tipo, haga lo siguiente:

  1. En la sección Propiedades internas de la configuración del conector, añada la propiedad interna slotName y establezca el valor del nombre de la ranura.

    El slotName especificado debe existir ya en el servidor PostgreSQL primario. Puede crear una nueva ranura o utilizar una ya existente.

    Para crear una nueva ranura y recuperar su LSN, ejecute la siguiente consulta:

    SELECT lsn FROM pg_create_logical_replication_slot ('user_provided_slot_name', 'test_decoding');

    Para obtener una lista de las ranuras disponibles y sus LSN, ejecute la siguiente consulta:

    SELECT slot_name, restart_lsn FROM pg_replication_slots WHERE slot_type = 'logical';

  2. Indique el LSN para el slotName especificado en el campo Posición de cambio de fuente del cuadro de diálogo Opciones de ejecución avanzadas y, a continuación, prepare e inicie la tarea de datos.

    Si se produce un fallo, el servidor secundario tomará el relevo casi inmediatamente y se convertirá en el servidor primario. La conmutación por error debe ser gestionada por la extensión pg_failover_slots.

  3. Cuando se produce una conmutación por error, la tarea de datos encontrará un error recuperable e intentará volver a conectarse a la dirección IP del servidor de base de datos primario. Sin embargo, normalmente no tendrá éxito ya que el servidor de la base de datos secundaria tendrá (casi siempre) una dirección IP diferente. Si el cambio de direcciones IP no lo gestiona un servicio de conmutación por error de DNS, tendrá que especificar la nueva dirección IP en el archivo hosts de la máquina Data Movement gateway. La ruta al archivo hosts es /etc/hosts. Una vez actualizado el archivo de hosts, la tarea de datos se reanudará automáticamente.

¿Esta página le ha sido útil?

No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.