En esta página se describe cómo usar la replicación entre regiones de AlloyDB para PostgreSQL creando clústeres secundarios y trabajando con ellos.
Para obtener una descripción general conceptual de la replicación entre regiones, consulta Información sobre la replicación entre regiones.
Antes de empezar
- El Google Cloud proyecto que estés usando debe tener habilitado el acceso a AlloyDB.
- Debes tener uno de estos roles de gestión de identidades y accesos en el Google Cloud proyecto que estés usando:
roles/alloydb.admin
(el rol de gestión de identidades y accesos predefinido de AlloyDB)roles/owner
(el rol básico de propietario de gestión de identidades y accesos)roles/editor
(el rol básico de gestión de identidades y accesos Editor)
Si no tienes ninguno de estos roles, ponte en contacto con el administrador de tu organización para solicitar acceso.
Crear un clúster secundario
Cuando creas un clúster secundario, AlloyDB copia y aplica parte de la configuración del clúster principal, incluida la recuperación a un momento dado (PITR) y la configuración de las copias de seguridad, al clúster secundario. AlloyDB no añade ninguna instancia de grupo de lectura al clúster secundario después de crearlo, independientemente del número de instancias de grupo de lectura que haya en el clúster principal.
Si actualizas la configuración del clúster principal después de crear el clúster secundario, los cambios no estarán disponibles en el clúster secundario. Sin embargo, puedes actualizar manualmente el clúster secundario para que tenga la configuración más reciente disponible en el clúster principal.
Puedes crear hasta cinco clústeres secundarios para un clúster principal. Todos los clústeres secundarios se replican desde una única instancia principal. Si asciendes un clúster secundario, este se convierte en un clúster principal independiente.
En el siguiente diagrama se muestra cómo promover el clúster secundario llamado cluster-2
en us-east4
:
Imagen 1. Ejemplo de promoción de un clúster secundario.
Para crear un clúster secundario y una instancia secundaria de AlloyDB, sigue estos pasos:
Consola
En la Google Cloud consola, ve a la página Clusters.
Haga clic en un clúster de la columna Nombre del recurso.
En la página Resumen, haz clic en Crear clúster secundario.
Configura el clúster secundario:
- En el campo ID de clúster, introduce un ID de recurso para tu clúster secundario.
- Selecciona una región para el clúster secundario que sea diferente de la del clúster principal.
- Selecciona el cifrado predeterminado gestionado por Google o una clave gestionada por el cliente (CMEK) como método de cifrado para cifrar el clúster secundario.
Si quieres cifrar este clúster con una clave CMEK, sigue estos pasos:
- Haz clic en Opciones avanzadas de cifrado.
- Selecciona Clave de cifrado gestionada por el cliente (CMEK).
Selecciona una clave gestionada por el cliente en el menú que aparece.
La consola Google Cloud limita esta lista a las claves del mismo proyecto y región que el nuevo clúster.Google Cloud
Para usar una llave que no esté en esta lista, sigue estos pasos:
- Haz clic en ¿No ves tu llave? Introduce el nombre del recurso de la clave.
- Introduce el nombre del recurso en el campo Nombre del recurso de la clave.
- Haz clic en Guardar.
- Haz clic en Continuar.
Para usar una clave CMEK con AlloyDB, debes realizar algunos pasos de configuración adicionales. Para obtener más información, consulta Usar CMEK.
Si la instancia principal asociada está cifrada con una clave CMEK, también debes cifrar su clúster secundario con una clave CMEK.
Configura la instancia secundaria:
- En el campo ID de instancia, introduce el ID de recurso de tu instancia secundaria. El ID del recurso debe ser único en un clúster.
Haz clic en Crear clúster.
gcloud
Para usar la CLI de gcloud, puedes instalar e inicializar Google Cloud CLI o usar Cloud Shell.
Usa el comando gcloud alloydb clusters create-secondary
:
gcloud alloydb clusters create-secondary SECONDARY_CLUSTER_ID \ --region=REGION_ID \ --primary-cluster=projects/PROJECT_ID/locations/LOCATION_ID/clusters/ PRIMARY_CLUSTER_ID
gcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \ --cluster=SECONDARY_CLUSTER_ID \ --region=REGION_ID
Haz los cambios siguientes:
SECONDARY_CLUSTER_ID
: el ID del clúster secundario que quieres crear.SECONDARY_INSTANCE_ID
: ID de la instancia secundaria que quieres crear.REGION_ID
: el ID de la región del clúster secundario (por ejemplo,us-central1
).PROJECT_ID
: el ID del proyecto del clúster secundario.LOCATION_ID
: la ubicación de tu clúster principal (por ejemplo,us-central1
).PRIMARY_CLUSTER_ID
: el ID del clúster principal al que está asociado el clúster secundario.SECONDARY_CLUSTER_ID
: ID del clúster secundario al que está asociada la instancia secundaria.ALLOWED_PSC_PROJECTS
(Opcional): Lista separada por comas de IDs de proyecto o números de proyecto a los que quieras permitir el acceso a la instancia. Por ejemplo,my-project-1
,12345
,my-project-n
. Si tu clúster usa Private Service Connect como método de conexión a la instancia, debes definir una lista de proyectos o números permitidos.--no-enable-automated-backup
Opcional: Inhabilita la creación de copias de seguridad automatizadas en el clúster secundario.
Para crear una instancia secundaria con Private Service Connect habilitado, añade la marca allowed-psc-projects
para definir una lista separada por comas de IDs de proyecto o números de proyecto a los que quieras permitir el acceso a la instancia (por ejemplo, my-project-1
, 12345
y my-project-n
).
gcloud alloydb clusters create-secondary SECONDARY_CLUSTER_ID \ --region=REGION_ID \ --primary-cluster=projects/PROJECT_ID/locations/LOCATION_ID/clusters/ PRIMARY_CLUSTER_ID \
gcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \ --cluster=SECONDARY_CLUSTER_ID \ --region=REGION_ID \ --allowed-psc-projects=ALLOWED_PSC_PROJECTS
Haz los cambios siguientes:
ALLOWED_PSC_PROJECTS
(Opcional): Lista separada por comas de los IDs o números de proyecto a los que quieres permitir el acceso a la instancia. Por ejemplo,my-project-1
,12345
ymy-project-n
. Si tu clúster usa Private Service Connect como método de conexión a la instancia, debes definir una lista de proyectos o números permitidos.
Para crear una instancia secundaria de un clúster con IP pública, añade el parámetro --assign-inbound-public-ip=ASSIGN_IPV4
.
gcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \
--cluster=SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--assign-inbound-public-ip=ASSIGN_IPV4
Si quieres, puedes pasar la lista de bloques CIDR separados por comas, como 64.233.160.0/16
, al parámetro --authorized-external-networks
para definir redes externas autorizadas en tu instancia.
Ver un clúster secundario
Para ver información detallada sobre un clúster secundario de AlloyDB, sigue estos pasos:
En la Google Cloud consola, ve a la página Clusters.
Haga clic en un clúster secundario de la columna Nombre de recurso.
En la página Resumen, consulta todos los detalles sobre tu clúster secundario.
Actualizar una instancia secundaria
Puedes actualizar una instancia secundaria para añadir, modificar o eliminar marcas de base de datos. También puedes cambiar el tipo de máquina de tu instancia secundaria.
Configurar marcas de bases de datos en una instancia secundaria
Para añadir, modificar o eliminar marcas de base de datos, sigue estos pasos:
Consola
En la Google Cloud consola, ve a la página Clusters.
En la columna Nombre del recurso, haga clic en el clúster secundario que quiera modificar.
En la página Overview (Resumen), vaya a Instances in your cluster (Instancias de su clúster), seleccione la instancia secundaria y, a continuación, haga clic en Edit secondary (Editar secundaria).
Para añadir, modificar o eliminar una marca de base de datos de tu instancia, sigue estos pasos:
Añadir una marca
- Para añadir una marca de base de datos a tu instancia, haz clic en Añadir marca.
- Seleccione una marca de la lista Nueva marca de base de datos.
- Indica un valor para la marca.
- Haz clic en Listo.
Modificar una marca
- Para modificar una marca de base de datos presente en tu instancia, amplía la marca de base de datos y modifica el valor de la marca en la sección Editar marca de base de datos.
- Haz clic en Listo.
Eliminar una marca
- Para eliminar una marca de base de datos de tu instancia, selecciona una marca y haz clic en el icono de eliminar.
- Haz clic en Listo.
Haz clic en Actualizar secundaria.
gcloud
Usa el comando gcloud alloydb instances update
para cambiar las marcas de la base de datos de una instancia secundaria.
gcloud alloydb instances update SECONDARY_INSTANCE_ID \
--database-flags FLAGS_LIST \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID
Haz los cambios siguientes:
SECONDARY_INSTANCE_ID
: ID de la instancia secundaria.FLAGS_LIST
: lista separada por comas de una o varias especificaciones de marcas de base de datos. Cada especificación consta del nombre de la marca, el signo igual (=
) y el valor que se le asigna. En el caso de las marcas de base de datos que no aceptan valores, indica el nombre de la marca seguido de un signo igual (=
).REGION_ID
: la región en la que se encuentra la instancia secundaria (por ejemplo,us-central1
).CLUSTER_ID
: el ID del clúster en el que se coloca la instancia secundaria.PROJECT_ID
: el ID del proyecto en el que se encuentra el clúster secundario.
Escalar el tipo de máquina de la instancia secundaria
Para cambiar el tipo de máquina de tu instancia secundaria, sigue estos pasos:
Consola
En la Google Cloud consola, ve a la página Clusters.
En la columna Nombre del recurso, haga clic en el clúster secundario que quiera modificar.
En la página Resumen, ve a la sección Instancias de tu clúster y haz clic en Editar secundario.
Ten en cuenta que esta acción no está disponible si la página informa de que el clúster tiene el estado Mantenimiento. La acción vuelve a estar disponible cuando el Estado cambia a Listo.
Selecciona un tipo de máquina.
Haz clic en Actualizar secundaria.
gcloud
Usa el comando gcloud alloydb instances
update
para cambiar el tipo de máquina de la instancia secundaria.
gcloud alloydb instances update SECONDARY_INSTANCE_ID \
--cpu-count=CPU_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID
Haz los cambios siguientes:
SECONDARY_INSTANCE_ID
: ID de la instancia secundaria que estás actualizando.CPU_COUNT
: el número de vCPUs que quieres que tenga la instancia. A continuación se muestran los valores válidos.2
(2 vCPUs, 16 GB de RAM)4
(4 vCPUs, 32 GB de RAM)8
(8 vCPUs, 64 GB de RAM)16
(16 vCPUs, 128 GB de RAM)32
(32 vCPUs, 256 GB de RAM)64
(64 vCPUs, 512 GB de RAM)
REGION_ID: la región en la que se coloca la instancia.
CLUSTER_ID: el ID del clúster en el que se coloca la instancia.
PROJECT_ID: el ID del proyecto en el que se encuentra el clúster.
Si el comando devuelve un mensaje de error que incluye la frase
invalid cluster state MAINTENANCE
, significa que el clúster está en proceso de mantenimiento rutinario. De esta forma, se inhabilitará temporalmente la reconfiguración de la instancia. Vuelve a ejecutar el comando
cuando el clúster vuelva al estado READY
.
Para comprobar el estado del clúster, consulta Ver detalles del clúster.
Añadir instancias de grupo de lectura a un clúster secundario
Para añadir una instancia de grupo de lectura a un clúster secundario, sigue estos pasos:
En la Google Cloud consola, ve a la página Clusters.
En la columna Nombre del recurso, haga clic en un clúster secundario al que quiera añadir una instancia de grupo de lectura.
En la página Resumen, ve a la sección Instancias de tu clúster y haz clic en Añadir grupo de lectura.
Configura la instancia del grupo de lectura:
- En el campo Read pool instance ID (ID de instancia de grupo de lectura), introduce un ID para la instancia de grupo de lectura.
- En el campo Número de nodos, introduce el número de nodos. El número de nodos de una instancia del grupo de lectura determina la capacidad de computación general de la instancia. Puedes tener un máximo de 20 nodos en todas las instancias del grupo de lectura de un clúster.
- Selecciona un tipo de máquina.
Opcional: Define marcas personalizadas para tu instancia. En cada marca, haz lo siguiente:
- Haz clic en Añadir marca.
- Seleccione una marca de la lista Nueva marca de base de datos.
- Indica un valor para la marca.
- Haz clic en Listo.
Haz clic en Añadir grupo de lectura.
Promocionar un clúster secundario
Antes de promover un clúster secundario, sigue estos pasos para verificar que el clúster secundario haya aplicado todas las transacciones recibidas del clúster principal:
- Detener todas las escrituras en el clúster principal.
Para comprobar el estado de la réplica del clúster secundario, sigue estos pasos:
En la Google Cloud consola, ve a la página Clusters.
En la lista de clústeres, haga clic en el nombre del clúster secundario que quiera promocionar.
En la página de detalles del clúster, haz clic en Monitorización.
En la lista Monitorización, selecciona la instancia secundaria. Aparece en la lista como Secundaria: INSTANCE_NAME.
En la lista de métricas, busque el gráfico Retraso de la réplica de la instancia principal.
Comprueba que el gráfico muestra un retraso mínimo.
Lo ideal es que el valor de latencia sea
0
. Si la latencia es superior a0
, puedes seguir promocionando el clúster secundario, pero corres el riesgo de perder algunas transacciones recientes que ya se hayan confirmado en el clúster principal.En la lista de métricas, busque el gráfico Estado de la réplica.
Confirma que todos los nodos representados en el gráfico tienen el valor
streaming
.
Para ascender un clúster secundario a clúster principal, sigue estos pasos:
Consola
En la Google Cloud consola, ve a la página Clusters.
En la columna Nombre del recurso, haga clic en el clúster secundario que quiera promocionar como clúster principal.
En la página Resumen, haz clic en Promocionar clúster.
En el cuadro de diálogo que aparece, introduce el ID del clúster secundario para confirmar que quieres promocionar el clúster.
Haz clic en Promocionar.
Una vez que se haya promovido el clúster, el campo Tipo: clúster secundario (alta disponibilidad) de la página Resumen se actualizará a Tipo: alta disponibilidad con grupos de lectura.
gcloud
Usa el comando gcloud alloydb clusters promote
:
gcloud alloydb clusters promote SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
Haz los cambios siguientes:
SECONDARY_CLUSTER_ID
: el ID del clúster secundario que quieres promocionar.REGION_ID
: ID de la región del clúster secundario. Por ejemplo,us-central1
.PROJECT_ID
: el ID del proyecto del clúster secundario.
Hacer un cambio
Antes de realizar un cambio, comprueba que todas las regiones a las que pertenecen las instancias principal y secundaria estén online y que las instancias estén en buen estado. Para obtener más información, consulta Monitorizar una instancia con el panel de control Estadísticas del sistema de AlloyDB.
Si realizas un cambio cuando tienes varios clústeres secundarios, se producen los siguientes cambios:
- El clúster secundario que recibe el comando de cambio se convierte en un clúster principal.
- El clúster principal anterior se convierte en un clúster secundario que replica datos del nuevo clúster principal.
- Todos los demás clústeres secundarios cambian a la replicación desde el nuevo clúster primario.
En el siguiente diagrama se ilustra un cambio de cluster-1
en us-central1
a cluster-2
en us-east4
:
Imagen 2. Ejemplo de cómo realizar un cambio a uno de los dos clústeres secundarios.
Para realizar un cambio, siga estos pasos:
Consola
En la Google Cloud consola, ve a la página Clusters.
En la columna Nombre del recurso, haga clic en el clúster secundario que quiera convertir en clúster principal.
En la página Resumen, haz clic en Cambio.
En el cuadro de diálogo que aparece, introduce el ID del clúster secundario para confirmar que quieres cambiar el clúster.
Haz clic en Cambio.
Una vez que se haya producido la conmutación por error del clúster, el campo Tipo: clúster secundario de la página Resumen se actualizará a
Tipo de clúster: clúster principal y Tipo de clúster: clúster secundario.
gcloud
Usa el comando gcloud alloydb clusters switchover
:
gcloud alloydb clusters switchover SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
Haz los cambios siguientes:
SECONDARY_CLUSTER_ID
: el ID del clúster secundario que quieres promocionar.REGION_ID
: el ID de la región del clúster secundario (por ejemplo,us-central1
).PROJECT_ID
: el ID del proyecto del clúster secundario.