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 PostgreSQL, ajustar las opciones y configurar y optimizar una instancia.
En algunos casos, para habilitar completamente la función que quieres usar, es posible que tengas que definir otra marca.
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 log_connections
y log_min_error_statement
, puedes usar el siguiente comando:
gcloud sql instances patch INSTANCE_NAME \ --database-flags=log_connections=on,log_min_error_statement=error
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 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:
Ver los valores actuales de las marcas de bases de datos
Para ver todos los valores actuales de la configuración de PostgreSQL, inicia sesión en tu instancia con el clientepsql
e introduce la siguiente instrucción:
SELECT name, setting FROM pg_settings;
Ten en cuenta que solo puedes cambiar el valor de las marcas admitidas como se detalla a continuación.
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
No se admiten las marcas que no se mencionan a continuación.
En el caso de una marca determinada, Cloud SQL puede admitir un valor o un intervalo diferente del parámetro o la opción de PostgreSQL correspondiente.
A | C | D | E | F | G | H | I | J | L | M | O | P | R | S | T | V | W
Marca Cloud SQL | Tipo Valores aceptables y notas |
¿Es necesario reiniciar ? |
---|---|---|
anon.algorithm | String
El valor predeterminado es sha256. |
No |
anon.maskschema | String
El valor predeterminado es mask. |
No |
anon.restrict_to_trusted_schemas | boolean
on | off
El valor predeterminado es desactivado. |
No |
anon.salt | String
No hay ningún valor predeterminado. |
No |
anon.sourceschema | String
El valor predeterminado es público. |
No |
auto_explain.log_analyze | boolean
on | off
El valor predeterminado es desactivado. |
No |
auto_explain.log_buffers | boolean
on | off
El valor predeterminado es desactivado. |
No |
auto_explain.log_min_duration | Integer
-1 ... 2147483647
El valor predeterminado es -1. |
No |
auto_explain.log_format | String
text|xml|json|yaml El valor predeterminado es text. |
No |
auto_explain.log_level | String
debug5|debug4|debug3|debug2|debug1|debug| info|notice|warning|log
El valor predeterminado es log. Compatible con PostgreSQL 12 y versiones posteriores. |
No |
auto_explain.log_nested_statements | boolean
on | off
El valor predeterminado es desactivado. |
No |
auto_explain.log_settings | boolean
on | off
El valor predeterminado es desactivado. Compatible con PostgreSQL 12 y versiones posteriores. |
No |
auto_explain.log_timing | boolean
on | off
El valor predeterminado es activado. |
No |
auto_explain.log_triggers | boolean
on | off
El valor predeterminado es desactivado. |
No |
auto_explain.log_wal | boolean
on | off
El valor predeterminado es desactivado. Compatible con PostgreSQL 13 y versiones posteriores. |
No |
auto_explain.log_verbose | boolean
on | off
El valor predeterminado es desactivado. |
No |
auto_explain.sample_rate | Float
0 ... 1
El valor predeterminado es 1. |
No |
autovacuum | boolean on | off
El valor predeterminado es activado. Para obtener información sobre el uso que pueda afectar al SLA, consulta las directrices operativas de las instancias de Cloud SQL para PostgreSQL. |
No |
autovacuum_analyze_scale_factor | float 0 ... 100
El valor predeterminado es 0,1. |
No |
autovacuum_analyze_threshold | integer 0 ... 2147483647
El valor predeterminado es 50. |
No |
autovacuum_freeze_max_age | integer 100000 ... 2000000000
El valor predeterminado es 200000000. Para obtener información sobre el uso que pueda afectar al SLA, consulta las directrices operativas de las instancias de Cloud SQL para PostgreSQL. |
Sí |
autovacuum_max_workers | integer 1 ... varies (see note)
El valor predeterminado es 3. |
Sí |
autovacuum_multixact_freeze_max_age | integer 10000 ... 2000000000
El valor predeterminado es 400000000. Para obtener información sobre el uso que pueda afectar al SLA, consulta las directrices operativas de las instancias de Cloud SQL para PostgreSQL. |
Sí |
autovacuum_naptime | integer 1 ... 2147483 s
El valor predeterminado es 60 s. |
No |
autovacuum_vacuum_cost_delay | integer 0 ... 100 ms o -1 para usar el valor vacuum_cost_delay En PostgreSQL 9.6, 10 y 11, el valor predeterminado es 2 ms. |
No |