En esta página se describe cómo gestionar las réplicas de lectura. Entre estas operaciones se incluyen la habilitación e inhabilitación de la réplica, la promoción de una réplica, la configuración de la réplica paralela y la comprobación del estado de la réplica.
Para obtener más información sobre cómo funciona la replicación, consulta Replicación en Cloud SQL.
Esta página se aplica a las réplicas de una instancia de Cloud SQL. Para configurar una instancia de Cloud SQL de forma que actúe como editor de una réplica externa, consulta Configurar réplicas externas.
Inhabilitar replicación
De forma predeterminada, las réplicas se inician con la replicación habilitada. Sin embargo, puedes inhabilitar la replicación en determinadas situaciones; por ejemplo, para depurar o analizar el estado de una instancia. Cuando lo tengas todo listo, vuelve a habilitar la replicación de forma explícita. Si inhabilitas o vuelves a habilitar la replicación, no se reiniciará la instancia de réplica.
Si inhabilitas la replicación, la instancia de réplica no se detendrá, sino que se convertirá en una instancia de solo lectura que ya no replicará datos de su instancia principal. Se te seguirá cobrando por la instancia. En la réplica inhabilitada, puedes volver a habilitar la replicación, eliminar la réplica o convertirla en una instancia independiente.
Si inhabilitas la replicación durante un periodo prolongado, es posible que aumenten los requisitos de almacenamiento en disco. Por ejemplo, tu instancia puede acumular registros de transacciones para permitirte reanudar la replicación cuando la vuelvas a habilitar. Para evitar que aumenten los requisitos de almacenamiento en disco, en lugar de inhabilitar la réplica durante un periodo prolongado, te recomendamos que promociones la réplica o crees un clon de la instancia principal.
Para inhabilitar la replicación, efectúa los pasos siguientes:
Consola
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Haz clic en el nombre de una instancia de réplica para seleccionarla.
- Haz clic en Inhabilitar replicación en la barra de botones.
- Haz clic en Aceptar.
gcloud
gcloud sql instances patch REPLICA_NAME \ --no-enable-database-replication
REST v1
Para ejecutar este comando cURL en un símbolo del sistema, debes obtener un token de acceso con el comando gcloud auth print-access-token. También puede usar el Explorador de APIs en la página Instances:patch para enviar la solicitud de la API REST.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- replica-name: nombre de la instancia de réplica
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name
Cuerpo JSON de la solicitud:
{ "settings": { "databaseReplicationEnabled": "False" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Para ejecutar este comando cURL en un símbolo del sistema, debes obtener un token de acceso con el comando gcloud auth print-access-token. También puede usar el Explorador de APIs en la página Instances:patch para enviar la solicitud de la API REST.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- replica-name: nombre de la instancia de réplica
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name
Cuerpo JSON de la solicitud:
{ "settings": { "databaseReplicationEnabled": "False" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
Habilitar replicación
Si una réplica no se ha replicado durante mucho tiempo, tardará más en ponerse al día con la instancia principal. En ese caso, elimina la réplica y crea otra.
Para habilitar la replicación, efectúa los pasos siguientes:
Consola
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Haz clic en el nombre de una instancia de réplica para seleccionarla.
- Haz clic en Habilitar replicación.
- Haz clic en Aceptar.
gcloud
gcloud sql instances patch REPLICA_NAME \ --enable-database-replication
REST v1
Para ejecutar este comando cURL en un símbolo del sistema, debes obtener un token de acceso con el comando gcloud auth print-access-token. También puede usar el Explorador de APIs en la página Instances:patch para enviar la solicitud de la API REST.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- replica-name: nombre de la instancia de réplica
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name
Cuerpo JSON de la solicitud:
{ "settings": { "databaseReplicationEnabled": "True" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Para ejecutar este comando cURL en un símbolo del sistema, debes obtener un token de acceso con el comando gcloud auth print-access-token. También puede usar el Explorador de APIs en la página Instances:patch para enviar la solicitud de la API REST.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- replica-name: nombre de la instancia de réplica
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name
Cuerpo JSON de la solicitud:
{ "settings": { "databaseReplicationEnabled": "True" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
Promocionar una réplica
Si promueves una réplica de lectura, se detendrá la replicación y la instancia se convertirá en una instancia principal de Cloud SQL independiente con permisos de lectura y escritura.
Cuando se ascienden, las réplicas de lectura se configuran automáticamente con copias de seguridad, pero no se configuran automáticamente como instancias de alta disponibilidad. Puedes habilitar la alta disponibilidad después de promocionar la réplica, igual que harías con cualquier instancia que no sea una réplica. La configuración de una réplica de lectura para alta disponibilidad se realiza de la misma forma que en una instancia principal. Consulta más información sobre cómo configurar la instancia para alta disponibilidad.
Antes de promover una réplica de lectura, si la principal sigue estando disponible y atendiendo a los clientes, debes hacer lo siguiente:
- Detener todas las escrituras en la instancia principal.
- Comprueba el estado de la réplica. Una de las opciones para hacerlo es el panel de control de grupos de disponibilidad Always On de SQL Server Management Studio (SSMS).
- Verifica que la réplica se esté replicando y, a continuación, comprueba el retraso de la replicación, por ejemplo, tal como se indica en la métrica
seconds_behind_master
.
De lo contrario, es posible que a la instancia recién ascendida le falten algunas transacciones que se hayan confirmado en la instancia principal.
Para promover una réplica a una instancia independiente, sigue estos pasos:
Consola
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Haz clic en el nombre de una instancia de réplica para seleccionarla.
- Haz clic en Promocionar réplica.
- Haz clic en Aceptar.
gcloud
gcloud sql instances promote-replica REPLICA_NAME
REST v1
Para ejecutar este comando cURL en un símbolo del sistema, debes obtener un token de acceso con el comando gcloud auth print-access-token. También puede usar el Explorador de APIs en la página Instances:promoteReplica para enviar la solicitud de la API REST.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- replica-name: nombre de la instancia de réplica
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name/promoteReplica
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Para ejecutar este comando cURL en un símbolo del sistema, debes obtener un token de acceso con el comando gcloud auth print-access-token. También puede usar el Explorador de APIs en la página Instances:promoteReplica para enviar la solicitud de la API REST.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- replica-name: nombre de la instancia de réplica
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name/promoteReplica
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
Confirma que la instancia promocionada esté configurada correctamente. En concreto, plantéate configurar la instancia para alta disponibilidad si es necesario.
Comprobar el estado de la replicación
Actualmente, debe usar consultas T-SQL o SSMS para monitorizar el estado de la replicación. Para obtener más información, consulta las siguientes secciones:- Herramientas para monitorizar grupos de disponibilidad Always On
- Usar el panel de control de grupos de disponibilidad Always On
Solucionar problemas
Problema | Solución de problemas |
---|---|
La réplica de lectura no ha empezado a replicarse al crearse. | Probablemente haya un error más específico en los archivos de registro. Inspecciona los registros en Cloud Logging para encontrar el error real. |
No se puede crear una réplica de lectura: error invalidFlagValue. | Una de las marcas de la solicitud no es válida. Puede ser una marca que hayas proporcionado explícitamente o una que se haya definido con un valor predeterminado.
En primer lugar, comprueba que el valor de la marca Si la marca |
No se ha podido crear la réplica de lectura debido a un error desconocido. | Probablemente haya un error más específico en los archivos de registro.
Inspecciona los registros en Cloud Logging para encontrar el error real.
Si el error es |
El disco está lleno. | El disco de la instancia principal puede llenarse durante la creación de la réplica. Edita la instancia principal para actualizarla a un tamaño de disco mayor. |
La instancia de réplica está usando demasiada memoria. | La réplica usa memoria temporal para almacenar en caché las operaciones de lectura solicitadas con frecuencia, lo que puede hacer que use más memoria que la instancia principal.
Reinicia la instancia de réplica para recuperar el espacio de memoria temporal. |
Replicación detenida. | Se ha alcanzado el límite máximo de almacenamiento y el aumento automático del almacenamiento no está habilitado.
Edita la instancia para habilitar |
La latencia de replicación es constantemente alta. | La carga de escritura es demasiado alta para que la réplica pueda gestionarla. El retraso de la réplica se produce cuando el subproceso SQL de una réplica no puede seguir el ritmo del subproceso de E/S. Algunos tipos de consultas o cargas de trabajo pueden provocar una latencia de replicación alta temporal o permanente en un esquema determinado. Estas son algunas de las causas habituales del retraso de la réplica:
Estas son algunas posibles soluciones:
|
La creación de réplicas falla por tiempo de espera agotado. | Las transacciones sin confirmar de larga duración en la instancia principal pueden provocar que falle la creación de réplicas de lectura.
Vuelve a crear la réplica después de detener todas las consultas en ejecución. |
Siguientes pasos
- Obtén información sobre cómo crear una réplica de lectura.
- Obtén más información sobre los requisitos y las prácticas recomendadas para la replicación.