Realiza una actualización de versión secundaria de la base de datos para AlloyDB Omni en Kubernetes

Selecciona una versión de la documentación:

En esta página, se describe cómo realizar una actualización de versión secundaria de la base de datos para AlloyDB Omni en Kubernetes.

Para realizar una actualización de la versión secundaria de la base de datos, tienes dos opciones:

  • Actualización con tiempo de inactividad bajo: Para los entornos de alta disponibilidad (HA) que ejecutan la versión 15.7.1 o posterior de AlloyDB Omni, AlloyDB Omni actualiza primero tus instancias en espera. Luego, el operador de AlloyDB Omni realiza un cambio y promueve una de las instancias en espera actualizadas para que sea tu nueva instancia principal. Una vez que la conmutación por error se realiza correctamente, se actualiza tu instancia principal anterior.

    Este proceso garantiza un tiempo de inactividad mínimo durante la actualización.

  • Actualización simultánea: En todas las demás circunstancias, el operador de AlloyDB Omni actualiza todas las instancias de forma simultánea. Esto significa que experimentarás un tiempo de inactividad durante la actualización.

Limitaciones

En el caso de las actualizaciones con poco tiempo de inactividad, una instancia en espera no está disponible en ningún momento. Para garantizar que tu clúster de base de datos no alcance un objetivo de punto de recuperación (RPO) de cero y no corra el riesgo de perder datos, debe tener una instancia principal y, al menos, dos instancias en espera.

Antes de comenzar

  • Si tu clúster es de alta disponibilidad y la versión de AlloyDB Omni es anterior a la 15.7.1, sigue los pasos que se indican en Actualiza los clústeres de bases de datos antes de seguir este proceso de actualización de la versión secundaria.
  • Identifica un período de poco tráfico en el que puedas realizar la actualización de la versión secundaria.
  • Para evitar la pérdida de datos, crea una copia de seguridad de tus datos.

Habilita el proceso de actualización de la versión secundaria de la base de datos con un tiempo de inactividad breve

Para habilitar el proceso de actualización de la versión secundaria de la base de datos con un tiempo de inactividad bajo, agrega la siguiente anotación a tu clúster de base de datos.

kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME
dbcluster.dbadmin.goog/enableLDTM=true

Reemplaza la siguiente variable:

  • DB_CLUSTER_NAME: Es el nombre de tu clúster de base de datos. Es el mismo nombre del clúster de base de datos que proporcionaste cuando lo creaste. Para obtener más información, consulta Cómo instalar AlloyDB Omni en Kubernetes.

Actualiza tu versión de AlloyDB Omni

Para actualizar tu versión 15.12.0, actualiza los campos databaseVersion y controlPlaneAgentsVersion en el archivo de manifiesto del clúster y, luego, vuelve a aplicar el archivo.

A continuación, se muestra el comienzo de un archivo de manifiesto que especifica la versión 15.12.0 para databaseVersion y la versión 1.5.0 para controlPlaneAgentsVersion:

apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
    name: DB_CLUSTER_NAME
spec:
    databaseVersion: "15.12.0"
    controlPlaneAgentsVersion: "1.5.0"
...

Reemplaza la siguiente variable:

  • DB_CLUSTER_NAME: Es el nombre de tu clúster de base de datos. Es el mismo nombre del clúster de base de datos que proporcionaste cuando lo creaste. Para obtener más información, consulta Cómo instalar AlloyDB Omni en Kubernetes.

Supervisa el proceso de actualización

Después de actualizar el archivo de manifiesto, el operador de AlloyDB Omni inicia el proceso de actualización. Para supervisar el proceso de actualización, verifica la condición DBCUpgradeInProgress.

kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -o yaml | yq '.status.conditions[] | select(.type == "DBCUpgradeInProgress")'

Reemplaza la siguiente variable:

  • DB_CLUSTER_NAME: Es el nombre de tu clúster de base de datos. Es el mismo nombre del clúster de base de datos que proporcionaste cuando lo creaste. Para obtener más información, consulta Cómo instalar AlloyDB Omni en Kubernetes.

Mientras el proceso está en curso, el estado es true. Cuando se completa el proceso, el estado de la condición cambia a false.

Soluciona problemas

Si recibes algún mensaje de error durante el proceso de actualización, consulta las siguientes secciones:

Fallas previas a la actualización

Si recibes un error previo a la actualización en tu clúster de base de datos, verifica el mensaje y soluciona el problema según corresponda.

Si quieres omitir el mensaje de error previo a la actualización, puedes habilitar la anotación force-upgrade.

kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME upgrade.alloydbomni.dbadmin.google/force-upgrade=true

Reemplaza la siguiente variable:

  • DB_CLUSTER_NAME: Es el nombre de tu clúster de base de datos. Es el mismo nombre del clúster de base de datos que proporcionaste cuando lo creaste. Para obtener más información, consulta Cómo instalar AlloyDB Omni en Kubernetes.

Una vez que se complete el proceso de actualización, establece la anotación force-upgrade en false.

Errores de actualización

Durante el proceso de actualización automática, hay varios puntos en los que podría fallar en entornos de HA. Para obtener más información sobre cada situación de falla y las acciones posteriores que realiza el operador de AlloyDB Omni, consulta la siguiente tabla.

Mensaje de error Descripción Acciones requeridas del usuario
standby instance upgrade succeeded but the replication lag of the standby(s) is too high to be promoted to synchronous standby(s)

El proceso de actualización se completó correctamente, pero la instancia en espera no se puso al día con la instancia principal para establecer la replicación síncrona.

Una gran cantidad de tráfico se dirige a la instancia principal. A medida que disminuye el tráfico, la instancia en espera se pone al día de forma gradual. Después de esto, la condición HAReady se convierte en true.

Elige una opción en Fix primary and standby instances with different minor versions .

all standbys upgrade succeeded but the switchover instance failed to promote an upgraded standby.

Tus instancias en espera se actualizaron correctamente, pero falló el proceso de conmutación por error.

  1. Verifica el estado del recurso personalizado de conmutación para determinar qué causó la falla.
  2. Elige una opción en Fix primary and standby instances with different minor versions .
standby instance upgrade failed but rollback succeeded.

Tu instancia en espera no se actualizó correctamente, pero el operador de AlloyDB Omni la restableció a su versión anterior correctamente.

  1. Verifica los mensajes de error de actualización.
  2. Elige una opción en Fix primary and standby instances with different minor versions .
standby instance upgrade failed and rollback failed.

Tu instancia en espera no se actualizó correctamente y el operador de AlloyDB Omni no puede restablecer la instancia a su versión anterior.

Comunícate con el equipo de asistencia de Google para solucionar el problema.

Cómo corregir instancias principales y en espera con diferentes versiones secundarias

Para resolver este problema, elige una de las siguientes opciones:

  • Si se solucionó el problema que causó la falla en la actualización, vuelve a intentarla.

    Para volver a intentar la actualización, quita la anotación start-time de la actualización de tu instancia. Después de quitar la anotación, el operador de AlloyDB Omni genera una nueva hora de inicio y reinicia el proceso de actualización.

    kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME upgrade.alloydbomni.dbadmin.google/start-time-
    

    Reemplaza la siguiente variable:

    • DB_CLUSTER_NAME: Es el nombre de tu clúster de base de datos. Es el mismo nombre del clúster de base de datos que proporcionaste cuando lo creaste. Para obtener más información, consulta Cómo instalar AlloyDB Omni en Kubernetes.
  • Si persiste el problema que provocó la falla en la actualización, cambia tu instancia a la versión anterior del operador de AlloyDB Omni.

    Para cambiar a una versión anterior de tu instancia, sigue el proceso de actualización y cambia los campos databaseVersion y controlPlaneAgentsVersion del archivo de manifiesto a la versión que usabas antes.