Cómo recuperar una transmisión

Puedes recuperar una transmisión con errores permanentes sin tener que crear una nueva. Para ello, especifica la posición desde la que Datastream intentará reanudar la lectura de los cambios desde el origen.

Descripción general de la recuperación de transmisión

Una transmisión en ejecución puede encontrar algunos errores irrecuperables y cambiar su estado a FAILED_PERMANENTLY. Estos errores impiden que la transmisión continúe ejecutándose y pueden causar la pérdida de datos.

Puedes recuperar una transmisión con errores de forma permanente si la configuras para que ignore el error y siga leyendo los eventos en curso en lugar de volver a crear la transmisión y reabastecer los datos históricos. Para recuperar una transmisión con errores de forma permanente, restablece la replicación para comenzar a leer desde una posición de replicación diferente. Cada tipo de fuente compatible tiene su propia definición de qué es una posición de replicación:

  • Para las fuentes de Oracle, una posición de replicación es un archivo de registro de rehacer en la base de datos y el número de cambio del sistema (SCN) en este archivo.
  • Para las fuentes de MySQL, una posición de replicación es el archivo de registro binario de la base de datos (binlog) y la posición en este archivo.
  • Para las fuentes de PostgreSQL (incluida AlloyDB para PostgreSQL, una posición de replicación es el número de secuencia de registro (LSN) en la ranura de replicación. Durante la recuperación, la transmisión comienza a leer desde el primer LSN de la ranura de replicación.

Para recuperar una transmisión de una fuente de Oracle o MySQL, tienes las siguientes opciones:

  • Reintentar desde la posición actual (recomendado): Selecciona esta opción para intentar transmitir desde la posición actual, en la que la transmisión falló por última vez. Primero debes corregir el archivo de registro o recuperarlo de la copia de seguridad. Esta es la opción recomendada.

  • Omitir la posición actual y transmitir desde la siguiente posición disponible: Si faltan uno o más archivos de registro, selecciona esta opción para omitir estos archivos y reanudar la transmisión desde la primera posición en el siguiente archivo disponible. Los cambios de los archivos de registro faltantes se pierden, pero puedes recuperarlos mediante un reabastecimiento.

  • Omitir la posición actual y transmitir desde la posición más reciente: Si faltan uno o más archivos de registro, selecciona esta opción para omitir estos archivos y reanudar la transmisión desde la posición más reciente en el archivo de registro más actualizado. Los cambios de los archivos de registro faltantes se pierden, pero puedes recuperarlos mediante un reabastecimiento.

  • Reanudar desde tu posición y archivo de transmisión preferidos: Selecciona esta opción para reanudar la transmisión desde un archivo de registro y una posición de registro específicos. Algunos cambios pueden perderse si la posición del registro especificada no se superpone con la posición del registro perdido ni la sigue inmediatamente. Para recuperar estos cambios, realiza un reabastecimiento.

Para recuperar una transmisión de una fuente de PostgreSQL, debes proporcionar el nombre de la ranura de replicación. El servidor usa esta ranura de replicación para enviar eventos a Datastream. El nombre de la ranura de replicación puede ser el mismo que el de la ranura que se usó para la transmisión con errores o puede ser diferente:

Se perderán los eventos de cambio de la fuente que se produjeron entre la pérdida de posición del registro y el primer LSN de la ranura de replicación nueva. Puedes recuperar estos cambios realizando un reabastecimiento.

Recupera una transmisión para una fuente de MySQL o de Oracle

Para recuperar una transmisión con errores de forma permanente, sigue estos pasos:

  1. Ve a la página Novedades en Google Cloud.

    Ir a la página Novedades

  2. Selecciona la casilla de verificación a la izquierda de la transmisión que deseas recuperar.

  3. Haz clic en Recuperar.

  4. Se abrirá el panel Elige una estrategia de recuperación. Selecciona una opción. Si seleccionas Reanudar desde tu posición y archivo de transmisión preferidos, ingresa lo siguiente:

    • Para una fuente MySQL: el nombre del archivo de registro en el campo File name y la posición del registro en el campo Position Si no especificas la posición, la transmisión se reanuda desde la primera posición en el archivo de registro indicado.
    • Para una fuente de Oracle: El número de cambio del sistema (SCN) en el campo Número de cambio del sistema (SCN). Este campo es obligatorio.
  5. Haz clic en Aplicar.

  6. Cuando se recupera la transmisión, aparece una marca de tiempo en la columna Recuperado de la página Transmisiones.

Recupera una transmisión de una fuente de PostgreSQL

Para recuperar una transmisión con errores de forma permanente, sigue estos pasos:

  1. Ve a la página Novedades en Google Cloud.

    Ir a la página Novedades

  2. Selecciona la casilla de verificación a la izquierda de la transmisión que deseas recuperar.

  3. Haz clic en Recuperar.

  4. Se abrirá el panel Define una ranura de replicación nueva.

  5. En el campo Nombre de la ranura de replicación, proporciona el nombre de la ranura de replicación nueva desde la que se intentará recuperar la transmisión. Si vuelves a crear la ranura de replicación con el mismo nombre o si deseas volver a usar la ranura que especificaste cuando configuraste la fuente, puedes dejar este campo vacío.

  6. Haz clic en Aplicar.

  7. Cuando se recupera la transmisión, aparece una marca de tiempo en la columna Recuperado de la página Transmisiones.

También puedes recuperar transmisiones con errores de forma permanente desde la página Detalles de la transmisión. Para ello, haz clic en Recuperar transmisión cuando veas la información detallada sobre la transmisión.

Usar la recuperación de transmisión para una fuente de MySQL en una situación de conmutación por error manual

Puedes realizar una conmutación por error manual y usar la recuperación de transmisión para evitar tener que volver a crear tus transmisiones desde cero durante el mantenimiento o la falla de la instancia principal. En general, Datastream no admite conmutaciones por error a réplicas porque interrumpen la continuidad binlog, pero puedes seguir estos pasos para recuperar la transmisión y asegurarte de que se capturen los datos de cambios:

  1. Detén todas las operaciones de escritura en la instancia principal.
  2. Asegúrate de que la métrica de actualización de datos esté configurada en 0. Esto significa que Datastream capturó todos los cambios y no hay eventos nuevos para leer de la fuente. Para obtener más información, consulta Supervisa una transmisión.
  3. Conmuta por error a la instancia de base de datos nueva.
  4. Si es necesario, actualiza el perfil de conexión de la transmisión a la nueva instancia de base de datos (por ejemplo, es posible que debas cambiar el nombre de host o la dirección IP de la base de datos). Para obtener más información, consulta Modifica los perfiles de conexión.
  5. Recupera la transmisión desde una posición específica en la instancia de conmutación por error para garantizar la continuidad de la CDC.