En esta página se describe cómo configurar marcas de bases de datos en Cloud SQL y se enumeran las marcas que puedes definir en tu instancia. Las marcas de bases de datos se usan en muchas operaciones, como ajustar los parámetros de SQL Server, ajustar las opciones y configurar y optimizar una instancia.
Cuando define, quita o modifica una marca de una instancia de base de datos, es posible que la base de datos se reinicie. El valor de la marca se conserva en la instancia hasta que lo elimines. Si la instancia es el origen de una réplica y se reinicia, la réplica también se reinicia para adaptarse a la configuración actual de la instancia.
Configurar marcas de bases de datos
En las siguientes secciones se describen las tareas habituales de gestión de denuncias.
Definir una marca de base de datos
Consola
- En la Google Cloud consola, selecciona el proyecto que contiene la instancia de Cloud SQL para la que quieras definir una marca de base de datos.
- Abre la instancia y haz clic en Editar.
- Ve a la sección Banderas.
- Si quieres configurar una marca que no se haya establecido previamente en la instancia, haz clic en Añadir elemento, elige la marca en el menú desplegable y establece su valor.
- Haz clic en Guardar para guardar los cambios.
- Confirma los cambios en la sección de marcas de la página de la visión general.
gcloud
Edita la instancia:
gcloud sql instances patch INSTANCE_NAME --database-flags=FLAG1=VALUE1,FLAG2=VALUE2
Este comando sobrescribirá todas las marcas de la base de datos que se hayan definido anteriormente. Para mantenerlos y añadir otros, incluya los valores de todas las marcas que quiera definir en la instancia. Las marcas que no se incluyan específicamente se definirán con su valor predeterminado. En el caso de las marcas que no aceptan ningún valor, especifica el nombre de la marca seguido de un signo igual ("=").
Por ejemplo, para definir las marcas 1204
, remote access
y remote query timeout (s)
, puedes usar el siguiente comando:
gcloud sql instances patch INSTANCE_NAME \ --database-flags="1204"=on,"remote access"=on,"remote query timeout (s)"=300
Terraform
Para añadir marcas de base de datos, usa un recurso de Terraform.
Aplica los cambios
Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud
Preparar Cloud Shell
- Abre Cloud Shell.
-
Define el Google Cloud proyecto Google Cloud predeterminado en el que quieras aplicar tus configuraciones de Terraform.
Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.
Preparar el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión
.tf
. Por ejemplo,main.tf
. En este tutorial, nos referiremos al archivo comomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.
Copia el código de ejemplo en el archivo
main.tf
que acabas de crear.También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
terraform init
Si quieres usar la versión más reciente del proveedor de Google, incluye la opción
-upgrade
:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
terraform plan
Haga las correcciones necesarias en la configuración.
-
Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
Espera hasta que Terraform muestre el mensaje "Apply complete!".
- Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.
Eliminar los cambios
Para eliminar los cambios, sigue estos pasos:
- Para inhabilitar la protección contra la eliminación, en el archivo de configuración de Terraform, asigna el valor
false
al argumentodeletion_protection
.deletion_protection = "false"
- Aplica la configuración de Terraform actualizada ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
-
Para quitar los recursos que se hayan aplicado anteriormente con tu configuración de Terraform, ejecuta el siguiente comando e introduce
yes
en la petición:terraform destroy
REST v1
Para definir una marca en una base de datos, sigue estos pasos:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
Cuerpo JSON de la solicitud:
{ "settings": { "databaseFlags": [ { "name": "flag_name", "value": "flag_value" } ] } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
Si ya hay marcas configuradas para la base de datos, modifica el comando anterior para incluirlas. El comando PATCH
sustituye las marcas actuales por las especificadas en la petición.
REST v1beta4
Para definir una marca en una base de datos, sigue estos pasos:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Cuerpo JSON de la solicitud:
{ "settings": { "databaseFlags": [ { "name": "flag_name", "value": "flag_value" } ] } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
Si ya hay marcas configuradas para la base de datos, modifica el comando anterior para incluirlas. El comando PATCH
sustituye las marcas actuales por las especificadas en la petición.
Borrar todas las marcas y restablecer sus valores predeterminados
Consola
- En la Google Cloud consola, selecciona el proyecto que contiene la instancia de Cloud SQL de la que quieres borrar todas las marcas.
- Abre la instancia y haz clic en Editar.
- Abre la sección de marcas de base de datos.
- Haz clic en la X situada junto a todas las alertas que se muestren.
- Haz clic en Guardar para guardar los cambios.
gcloud
Restablece el valor predeterminado de todas las marcas de una instancia de este modo:
gcloud sql instances patch INSTANCE_NAME \ --clear-database-flags
Se te pedirá que aceptes que la instancia se reinicie.
REST v1
Si quieres borrar todas las marcas de una instancia, usa este método:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
Cuerpo JSON de la solicitud:
{ "settings": { "databaseFlags": [] } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Si quieres borrar todas las marcas de una instancia, usa este método:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Cuerpo JSON de la solicitud:
{ "settings": { "databaseFlags": [] } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
Determinar qué marcas de bases de datos se han definido en una instancia
Para ver qué marcas se han definido en una instancia de Cloud SQL, sigue estos pasos:
Consola
- En la Google Cloud consola, selecciona el proyecto que contiene la instancia de Cloud SQL de la que quieres ver las marcas de base de datos que se han definido.
- Selecciona la instancia para abrir la página de visión general de dicha instancia.
Las marcas de base de datos establecidas se pueden consultar en la sección sobre marcas de base de datos.
gcloud
Obtén el estado de la instancia:
gcloud sql instances describe INSTANCE_NAME
En la salida, las marcas de bases de datos se muestran en settings
como la colección databaseFlags
. Para obtener más información sobre la representación de las marcas en el resultado, consulta Representación del recurso Instances.
REST v1
Si quieres identificar los indicadores configurados en una instancia, usa este método:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
En el resultado, busca el campo databaseFlags
.
REST v1beta4
Si quieres identificar los indicadores configurados en una instancia, usa este método:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
En el resultado, busca el campo databaseFlags
.
Marcas compatibles
Cloud SQL solo admite las marcas que se indican en esta sección.
Marcas especiales
En esta sección se incluye información adicional sobre las marcas de Cloud SQL para SQL Server.
max degree of parallelism (MAXDOP)
Max degree of parallelism (MAXDOP)
es una marca de base de datos de Microsoft que se puede usar en Cloud SQL para SQL Server. Esta marca te permite limitar el número máximo de subprocesos que se usan al ejecutar una sola consulta en un plan paralelo.
Si se deja el valor predeterminado 0
, la instancia de base de datos usará todos los procesadores disponibles. Sin embargo, puede que no siempre sea eficiente o práctico si se gestionan instancias con cientos de bases de datos.
Te recomendamos que sigas las recomendaciones de la documentación de Microsoft al definir el valor de la marca, que puede variar en función del número de nodos NUMA y del número de procesadores lógicos disponibles.
Puedes comprobar la configuración del nodo NUMA mediante la vista de administración dinámica (DMV) de sys.dm_os_sys_info. Para comprobar la configuración del nodo NUMA, utiliza un fragmento de código similar al siguiente:
SELECT socket_count,cores_per_socket,numa_node_count
FROM sys.dm_os_sys_info
Aunque puede usar MAXDOP para limitar el número máximo de procesadores que quiere permitir para la ejecución de planes paralelos, también puede usar la función Umbral de coste para el paralelismo para indicar el coste mínimo que quiere definir para un solo procesador antes de ampliar las operaciones paralelas a otro procesador. Estas funciones le permiten controlar mejor la eficiencia y el coste de la ejecución de planes paralelos.
Los valores recomendados para estas funciones varían en cada caso y dependen de las necesidades de carga de trabajo de tu servidor y aplicación.
Para obtener ayuda a la hora de determinar los mejores valores de MAXDOP y de umbral de coste para el paralelismo de tus servidores, consulta los siguientes recursos:
- Configuración del servidor: grado máximo de paralelismo
- Prácticas recomendadas: ajustes de bases de datos que se deben modificar
Al cambiar el valor predeterminado, se pueden solucionar los siguientes problemas:
- Si la marca
max degree of parallelism (MAXDOP)
se define como0
, las instancias o las aplicaciones cliente que requieran descargas de SharePoint fallarán. La descarga de SharePoint ejecuta una comprobación previa que requiere un valor numérico para la marca y no acepta un valor inferior a 1. - Si se deja el valor predeterminado
0
de la marca MAXDOP, se indica que no hay ningún límite y que se pueden usar todos los procesadores disponibles para las operaciones paralelas. Aunque este valor puede ser adecuado para servidores que ejecutan consultas pequeñas de forma rutinaria, puede suponer un problema de costes si también necesitas ejecutar consultas muy grandes periódicamente.
Con la marca max degree of parallelism (MAXDOP)
, puedes controlar el número de subprocesos en tres niveles:
- A nivel de instancia, mediante marcas de base de datos
- Ámbito de la base de datos con T-SQL
- A nivel de consulta, mediante sugerencias de consulta
Ten en cuenta que, si se cambia el tamaño de la instancia, el valor de la marca no se modifica.
max server memory (mb)
La marca max server memory (mb)
limita la cantidad de memoria que Cloud SQL puede asignar a sus grupos internos.
Te recomendamos que no configures ningún valor para esta marca y que dejes que Cloud SQL gestione el valor por ti. Si debe gestionar este valor manualmente, le recomendamos que establezca el valor max server memory (mb)
en aproximadamente el 80 % de la memoria disponible para evitar que SQL Server consuma toda la memoria.
Por el contrario, en las instancias con grandes cantidades de memoria, el 80% de la memoria disponible puede ser un valor demasiado bajo y puede provocar que se desaproveche la memoria.
Si no asigna un valor a esta marca, Cloud SQL gestionará el valor automáticamente en función del tamaño de la RAM de su instancia. Además, si cambias el tamaño de tu instancia, Cloud SQL ajustará automáticamente el valor de la marca para cumplir nuestras recomendaciones para el nuevo tamaño de la instancia. Esta operación de cambio de tamaño también elimina cualquier valor definido manualmente para esta marca. De esta forma, tu base de datos puede utilizar los recursos de forma más eficaz, ya que se evita la asignación excesiva, se reduce la probabilidad de que se produzca un fallo debido a problemas de falta de memoria y se evita que el rendimiento de tu instancia se vea afectado.
Para obtener más información, consulta Memoria máxima del servidor y Optimizar el uso elevado de memoria.
Solución de problemas
Problema | Solución de problemas |
---|---|
Quieres modificar la zona horaria de una instancia de Cloud SQL. |
Para ver cómo actualizar la zona horaria de una instancia, consulta Configuración de la instancia. En Cloud SQL para SQL Server, puedes usar la función |