kubectl
.
Información general
Puedes habilitar la alta disponibilidad en tu clúster de base de datos indicando al operador de AlloyDB Omni Kubernetes que cree réplicas de espera de tu instancia de base de datos principal. El operador de AlloyDB Omni configura tu clúster de base de datos para que actualice continuamente los datos de esta réplica, de forma que coincidan con todos los cambios que se produzcan en los datos de tu instancia principal.
Habilitar alta disponibilidad
Antes de habilitar la alta disponibilidad en tu clúster de base de datos, asegúrate de que tu clúster de Kubernetes tenga lo siguiente:
- Almacenamiento para dos copias completas de tus datos
- Recursos de computación de dos instancias de bases de datos que se ejecutan en paralelo
Para habilitar la alta disponibilidad, sigue estos pasos:
Modifique el archivo de manifiesto del clúster de base de datos para incluir una sección
availability
en la secciónspec
. En esta sección se define el número de elementos de reserva que quieres añadir configurando el parámetronumberOfStandbys
.spec: availability: numberOfStandbys: NUMBER_OF_STANDBYS
Sustituye
NUMBER_OF_STANDBYS
por el número de copias de seguridad que quieras añadir. El valor máximo es5
. Si vas a configurar la alta disponibilidad y no sabes cuántos elementos de reserva necesitas, empieza configurando el valor en1
o2
.Vuelve a aplicar el archivo de manifiesto.
Inhabilitar alta disponibilidad
Para inhabilitar la alta disponibilidad, sigue estos pasos:
Asigna el valor
0
anumberOfStandbys
en el archivo de manifiesto del clúster:spec: availability: numberOfStandbys: 0
Vuelve a aplicar el archivo de manifiesto.
Verificar la alta disponibilidad en un clúster de bases de datos
Para ver el estado de alta disponibilidad actual de un clúster de bases de datos, consulta la HAReady
condición del estado de ese clúster. Si este valor tiene un status
definido como True
,
la alta disponibilidad se ha configurado y funciona en el clúster de bases de datos.
Para comprobar este valor en la línea de comandos, ejecuta el siguiente comando:
kubectl get dbcluster.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -o jsonpath={.status.conditions[?(@.type == \'HAReady\')]} -n NAMESPACE
Haz los cambios siguientes:
DB_CLUSTER_NAME
: el nombre del clúster de la base de datos.NAMESPACE
: el espacio de nombres del clúster de la base de datos.
Conmutar por error a una instancia de espera
Si tu instancia principal no está disponible durante un periodo configurable, el operador de AlloyDB Omni conmutará automáticamente por error de la instancia de base de datos principal a la instancia de espera. El tiempo predeterminado para activar la conmutación por error automática es de 90 segundos.
Las conmutaciones por error son una buena opción si quieres recuperarte rápidamente de un error inesperado y minimizar el tiempo de inactividad, aunque eso suponga perder una pequeña cantidad de datos, en caso de que la base de datos principal no esté disponible antes de que se actualice por completo la copia de seguridad.
El operador de AlloyDB Omni admite la conmutación por error automática y manual. La conmutación por error automática está habilitada de forma predeterminada.
La conmutación por error da lugar a la siguiente secuencia de eventos:
El operador de AlloyDB Omni pone sin conexión la instancia de base de datos principal.
El operador AlloyDB Omni convierte la réplica de espera en la nueva instancia de base de datos principal.
El operador de AlloyDB Omni elimina la instancia de base de datos principal anterior.
El operador AlloyDB Omni crea una réplica de espera.
Inhabilitar la conmutación por error automática
Las conmutaciones por error automáticas están habilitadas de forma predeterminada en los clústeres de bases de datos.
Para inhabilitar una conmutación por error, sigue estos pasos:
Asigna el valor
false
aenableAutoFailover
en el archivo de manifiesto del clúster:spec: availability: enableAutoFailover: false
Ajustar la configuración del activador de conmutación por error automática
Puedes usar los ajustes para modificar las conmutaciones por error automáticas de cada clúster de bases de datos.
El operador de AlloyDB Omni emite comprobaciones de estado periódicas cada 30 segundos. Si una instancia ha alcanzado el umbral de activación de la conmutación por error automática, el operador de AlloyDB Omni activa una conmutación por error automática.
El valor predeterminado del umbral de activación de la conmutación por error automática es 3
. El valor de umbral es el número de fallos consecutivos de la comprobación del estado antes de que se active una conmutación por error. Para cambiar el valor del umbral,
asigna a autoFailoverTriggerThreshold
un valor entero en el manifiesto del clúster:
```yaml
spec:
availability:
autoFailoverTriggerThreshold: TRIGGER_THRESHOLD
```
Haz los cambios siguientes:
TRIGGER_THRESHOLD
: un valor entero que indica el número de fallos consecutivos de la comprobación de estado antes de que se active la conmutación por error. El valor predeterminado es3
.
Activar una conmutación por error manual
Para activar una conmutación por error manual, crea y aplica un manifiesto para un nuevo recurso de conmutación por error:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: Failover
metadata:
name: FAILOVER_NAME
namespace: NAMESPACE
spec:
dbclusterRef: DB_CLUSTER_NAME
Haz los cambios siguientes:
FAILOVER_NAME
: el nombre de este recurso. Por ejemplo,failover-1
.NAMESPACE
: el espacio de nombres de este recurso de conmutación por error, que debe coincidir con el espacio de nombres del clúster de bases de datos al que se aplica.DB_CLUSTER_NAME
: el nombre del clúster de base de datos al que se va a hacer failover.
Para monitorizar la conmutación por error, ejecuta el siguiente comando:
kubectl get failover FAILOVER_NAME -o jsonpath={.status.state} -n NAMESPACE
Haz los cambios siguientes:
FAILOVER_NAME
: el nombre que asignaste al recurso de conmutación por error cuando lo creaste.NAMESPACE
: el espacio de nombres del clúster de la base de datos.
El comando devuelve Success
cuando la nueva instancia de base de datos principal está lista para usarse. Para monitorizar el estado de la nueva instancia de espera, consulta la siguiente sección.
Conmutación por error a una instancia de reserva
La conmutación se realiza cuando quieres probar la configuración de recuperación tras desastres o cualquier otra actividad planificada que requiera cambiar los roles de la base de datos principal y la réplica de espera.
Una vez completado el cambio, se invierten los roles de la instancia de base de datos principal y de la réplica de espera, así como la dirección de la replicación. Debes optar por los cambios si quieres tener un mayor control sobre el proceso de prueba de tu configuración de recuperación tras fallos sin perder datos.
El operador AlloyDB Omni admite el cambio manual.
El cambio da lugar a la siguiente secuencia de eventos:
El operador de AlloyDB Omni pone sin conexión la instancia de base de datos principal.
El operador AlloyDB Omni convierte la réplica de espera en la nueva instancia de base de datos principal.
El operador de AlloyDB Omni cambia la instancia de la base de datos principal anterior a una réplica de espera.
Hacer un cambio
Antes de realizar un cambio, asegúrate de que se cumplan los siguientes requisitos:
- Verifica que tanto la instancia de base de datos principal como la réplica de espera estén en buen estado. Para obtener más información, consulta Gestionar y monitorizar AlloyDB Omni.
- Verifica que el estado de alta disponibilidad actual sea
HAReady
. Para obtener más información, consulta Verificar la alta disponibilidad en un clúster de bases de datos.
Para realizar un cambio, crea y aplica un manifiesto para un nuevo recurso de cambio:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: Switchover
metadata:
name: SWITCHOVER_NAME
spec:
dbclusterRef: DB_CLUSTER_NAME
newPrimary: STANDBY_REPLICA_NAME
Haz los cambios siguientes:
SWITCHOVER_NAME
: un nombre para este recurso de cambio, por ejemplo,switchover-1
.DB_CLUSTER_NAME
: el nombre de la instancia de base de datos principal a la que se aplica la operación de cambio.STANDBY_REPLICA_NAME
: el nombre de la instancia de base de datos que quieres convertir en la nueva principal.Para identificar el nombre de la réplica de espera, ejecuta el siguiente comando:
posix-terminal kubectl get instances.alloydbomni.internal.dbadmin.goog
Usar una réplica de espera como instancia de solo lectura
Para usar una réplica en espera como instancia de solo lectura, sigue estos pasos:
Modifica el manifiesto del clúster de bases de datos para definir el parámetro
enableStandbyAsReadReplica
comotrue
.spec: availability: enableStandbyAsReadReplica: true
Vuelve a aplicar el archivo de manifiesto.
Verifica que el endpoint de solo lectura se haya indicado en el campo
status
del objetoDBCluster
:kubectl describe dbcluster -n NAMESPACE DB_CLUSTER_NAME
En el siguiente ejemplo de respuesta se muestra el endpoint de la instancia de solo lectura:
Status: [...] Primary: [...] Endpoints: Name: Read-Write Value: 10.128.0.81:5432 Name: Read-Only Value: 10.128.0.82:5432