Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2025-05-22 GMT+08:00

Qué es ALT

Las sesiones de base de datos pueden interrumpirse cuando una réplica de lectura se promueve a primaria, se actualiza una versión secundaria o se cambian las especificaciones. Las aplicaciones deben comprobar los estados de las sesiones y reaccionar ante los cambios determinando si se ha interrumpido una conexión o transacción de base de datos, cómo compensar las transacciones y cómo reconstruir los contextos de sesión.

Para solucionar estos problemas, TaurusDB proporciona ALT, que evita las interrupciones de la conexión a la base de datos y de las transacciones durante la conmutación del sistema de la base de datos. No es necesario compensar las transacciones ni reconstruir los contextos de sesión, lo que garantiza la continuidad de las aplicaciones.

Arquitectura

Figura 1 Arquitectura

ALT se puede habilitar para las conexiones de la aplicación. Cuando se conecta a una instancia proxy y, a continuación, promueve una réplica de lectura a principal, cambia las especificaciones o actualiza la versión secundaria, el sistema puede replicar las sesiones de backend. Una vez que se alcanza un límite de transacción seguro, las sesiones de backend se clonarán completamente en el nodo de destino y las cargas de trabajo ni siquiera se darán cuenta.

Un límite de transacción seguro se refiere al estado en el que se ha confirmado una transacción en la sesión actual pero no se ha iniciado la siguiente transacción. Se puede alcanzar un límite de transacción seguro en cualquiera de las siguientes situaciones:

  • Se ejecuta cada sentencia en un bloque de transacción con confirmación automática activada.
    start transaction;
    DML;
    commit;
  • La operación de confirmación se completa con la confirmación automática deshabilitada.
  • Se ejecuta una única sentencia DML o DDL.
  • El bloqueo se libera cuando se utiliza un bloqueo de tabla, un bloqueo de copia de respaldo o un bloqueo definido por el usuario.

Precauciones

Tabla 1 Precauciones

Categoría

Precaución

Restricciones de versión

  • La versión del núcleo de la instancia de TaurusDB debe ser 2.0.54.240600 o posterior.
  • La versión del kernel de la instancia proxy debe ser 2.24.06.000 o posterior.

Restricciones de uso

  • Para usar ALT, envíe una solicitud seleccionando Service Tickets > Create Service Ticket en el extremo superior derecho de la consola de gestión.
  • La instancia de TaurusDB tiene al menos una réplica de lectura. Se ha creado una instancia proxy y la instancia de TaurusDB debe estar conectada con la dirección proxy.
  • Las instancias de proxy en modo de solo lectura no admiten ALT.
  • Las instancias de proxy en modo primario / en espera no admiten ALT.
  • Las instancias de TaurusDB principal o de nodo único no admiten ALT.
  • Cuando habilite ALT por primera vez, se reiniciará la instancia de TaurusDB. Si habilita o deshabilita ALT, se reiniciará una instancia proxy. Una vez que ALT esté deshabilitada para todas las instancias proxy, la instancia de TaurusDB también se reiniciará.
  • rds_tac_drain_timeout controla el intervalo de tiempo de espera de drenado de transacciones para ALT. Este parámetro tiene por defecto 5s y varía de 1s a 60s.
    • Aumente este intervalo para cargas de trabajo pesadas, numerosas declaraciones preparadas o transacciones que requieran mucho tiempo.
    • No se recomienda disminuir este intervalo. Si hay conexiones que no drenan transacciones dentro del intervalo de tiempo de espera de drenado de transacciones configurado, ALT no tiene efecto para estas conexiones.
  • Durante una conmutación de ALT, se establecerán conexiones en espera en el nuevo host durante un breve período, igual en número a las del nodo primario original. Asegúrese de que el número máximo de conexiones de la instancia de TaurusDB sea al menos el doble del número actual de conexiones. Para cambiar el número máximo de conexiones, debe evaluar las especificaciones de la instancia y el uso de memoria. Para obtener más información, véase ¿Cuál es el número máximo de conexiones a una instancia de TaurusDB?
  • ALT admite instrucciones preparadas. Durante una conmutación, se reconstruyen los contextos de las sentencias preparadas. Si hay una gran cantidad de sentencias preparadas, la tasa de éxito de la conmutación puede verse afectada.
  • Se recomienda realizar una conmutación ALT durante horas de menor actividad. Si el nodo primario y las réplicas de lectura están sobrecargados, la tasa de éxito de la conmutación puede verse afectada.
  • Para obtener detalles sobre la sintaxis y las restricciones de función de las instancias proxy, vea Precauciones para instancias proxy.

Funciones no admitidas

  • Al activar ALT, la instancia pierde el soporte para algunos valores de variables del sistema.
    • innodb_ft_user_stopword_table: Solo se puede establecer en NULL.
    • transaction_write_set_extraction: Solo se puede establecer en OFF.
    • profiling: No se puede configurar como 1 ni ON.
  • ALT no admite el cifrado transparente de datos (TDE).
  • ALT no está disponible cuando cualquiera de las siguientes capacidades de proxy está habilitada:
    • Grupo de conexiones a nivel de sesión
    • Cualquier columna que contenga más de 16 MB de datos
    • Cualquier conjunto de resultados de consulta que contenga más de 16 MB de datos
    • Caché de sentencia preparada
  • ALT no admite tablas temporales creadas por los usuarios.
  • No se admite ALT en los siguientes escenarios en los que no se puede alcanzar un límite de transacción seguro:
    • Los bloques de transacción de InnoDB no se comprometen de manera oportuna.
    • Hay bloqueos de tabla, bloqueos de usuario, bloqueos de copia de respaldo y bloqueos binlog inéditos.
    • Las transacciones XA no se comprometen ni se revierten.
  • Es probable que ALT falle si se produce con frecuencia una conmutación, una actualización de versión secundaria o un cambio de especificación en un corto período de tiempo.
  • Si ALT está habilitada, las sentencias preparadas no se pueden transferir en los siguientes escenarios:
    • El cursor se abre y no se cierra en una instrucción preparada.
    • La variable de una sentencia preparada ha guardado el tipo LONG_DATA.