Configurazione dei flag di database

Questa pagina descrive come configurare i flag di database per Cloud SQL e elenca i flag che puoi impostare per l'istanza. Utilizzi i flag di database per molte operazioni, tra cui la modifica dei parametri di SQL Server, delle opzioni e la configurazione e l'ottimizzazione di un'istanza.

Quando imposti, rimuovi o modifichi un flag per un'istanza di database, il database potrebbe essere riavviato. Il valore del flag viene mantenuto per l'istanza finché non lorimuovi. Se l'istanza è l'origine di una replica e viene riavviata, viene riavviata anche la replica in modo da allinearsi alla configurazione corrente dell'istanza.

Configurazione dei flag di database

Impostare un flag di database

Console

  1. Nella console Google Cloud, seleziona il progetto che contiene l'istanza Cloud SQL per cui vuoi impostare un flag del database.
  2. Apri l'istanza e fai clic su Modifica.
  3. Scorri verso il basso fino alla sezione Flag.
  4. Per impostare un flag che non è stato impostato prima nell'istanza, fai clic su Aggiungi elemento, scegli il flag dal menu a discesa e impostane il valore.
  5. Fai clic su Salva per salvare le modifiche.
  6. Conferma le modifiche in Flag nella pagina Panoramica.

gcloud

Modifica l'istanza:

gcloud sql instances patch INSTANCE_NAME --database-flags=FLAG1=VALUE1,FLAG2=VALUE2

Questo comando sovrascriverà tutti i flag del database impostati in precedenza. Per conservarli e aggiungerne di nuovi, includi i valori di tutti i flag che vuoi impostare nell'istanza. Qualsiasi flag non incluso specificamente viene impostato sul relativo valore predefinito. Per i flag che non accettano un valore, specifica il nome del flag seguito da un segno di uguale ("=").

Ad esempio, per impostare i flag 1204, remote access e remote query timeout (s), puoi utilizzare il seguente comando:

gcloud sql instances patch INSTANCE_NAME \
  --database-flags="1204"=on,"remote access"=on,"remote query timeout (s)"=300

Terraform

Per aggiungere flag di database, utilizza una risorsa Terraform.

resource "google_sql_database_instance" "instance" {
  name             = "sqlserver-instance-flags"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    database_flags {
      name  = "1204"
      value = "on"
    }
    database_flags {
      name  = "remote access"
      value = "on"
    }
    database_flags {
      name  = "remote query timeout (s)"
      value = "300"
    }
    tier = "db-custom-2-7680"
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Applica le modifiche

Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle seguenti sezioni.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.

    Devi eseguire questo comando una sola volta per progetto e puoi farlo in qualsiasi directory.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.

Prepara la directory

Ogni file di configurazione di Terraform deve avere una propria directory (chiamata anche modulo principale).

  1. In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione .tf, ad esempio main.tf. In questo tutorial, il file è denominato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.

    Copia il codice campione nel main.tf appena creato.

    Se vuoi, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
    terraform init

    Se vuoi, per utilizzare la versione più recente del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Rivedi la configurazione e verifica che le risorse che Terraform sta per creare o aggiornare corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione di Terraform eseguendo il seguente comando e inserendo yes al prompt:
    terraform apply

    Attendi che Terraform mostri il messaggio "Applicazione completata".

  3. Apri il tuo progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.

Elimina le modifiche

Per eliminare le modifiche:

  1. Per disattivare la protezione dell'eliminazione, imposta l'argomento deletion_protection su false nel file di configurazione Terraform.
    deletion_protection =  "false"
  2. Applica la configurazione Terraform aggiornata eseguendo il seguente comando e inserendo yes al prompt:
    terraform apply
  1. Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il seguente comando e inserendo yes al prompt:

    terraform destroy

REST v1

Per impostare un flag per un database esistente:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Corpo JSON della richiesta:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "flag_name",
        "value": "flag_value"
      }
    ]
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Se esistono flag configurati per il database, modifica il comando precedente per includerli. Il comando PATCH sovrascrive i flag esistenti con quelli specificati nella richiesta.

REST v1beta4

Per impostare un flag per un database esistente:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Corpo JSON della richiesta:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "flag_name",
        "value": "flag_value"
      }
    ]
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Se esistono flag configurati per il database, modifica il comando precedente per includerli. Il comando PATCH sovrascrive i flag esistenti con quelli specificati nella richiesta.

Reimposta tutti gli indicatori sui valori predefiniti

Console

  1. Nella console Google Cloud, seleziona il progetto che contiene l'istanza Cloud SQL per cui vuoi cancellare tutti gli indicatori.
  2. Apri l'istanza e fai clic su Modifica.
  3. Apri la sezione Flag di database.
  4. Fai clic sulla X accanto a tutti gli indicatori visualizzati.
  5. Fai clic su Salva per salvare le modifiche.

gcloud

Imposta tutti i flag sui valori predefiniti in un'istanza:

gcloud sql instances patch INSTANCE_NAME \
--clear-database-flags

Ti viene chiesto di confermare che l'istanza verrà riavviata.

REST v1

Per cancellare tutti i flag per un'istanza esistente:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Corpo JSON della richiesta:

{
  "settings":
  {
    "databaseFlags": []
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Per cancellare tutti i flag per un'istanza esistente:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Corpo JSON della richiesta:

{
  "settings":
  {
    "databaseFlags": []
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Determina quali flag di database sono stati impostati per un'istanza

Per vedere quali flag sono stati impostati per un'istanza Cloud SQL:

Console

  1. Nella console Google Cloud, seleziona il progetto che contiene l'istanza Cloud SQL per cui vuoi visualizzare gli indicatori del database impostati.
  2. Seleziona l'istanza per aprire la pagina Panoramica istanza.

    I flag di database impostati sono elencati nella sezione Flag di database.

gcloud

Recupera lo stato dell'istanza:

gcloud sql instances describe INSTANCE_NAME

Nell'output, i flag di database sono elencati in settings come la raccolta databaseFlags. Per ulteriori informazioni sulla rappresentazione dei flag nell'output, consulta Rappresentazione delle risorse delle istanze.

REST v1

Per elencare i flag configurati per un'istanza:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Nell'output, cerca il campo databaseFlags.

REST v1beta4

Per elencare i flag configurati per un'istanza:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Nell'output, cerca il campo databaseFlags.

Flag supportati

Cloud SQL supporta solo i flag elencati in questa sezione.

Flag Cloud SQL Tipo
Valori accettabili e note
Riavvio
necessario?
1204 (flag di traccia) boolean
on | off
No
1222 (flag di traccia) boolean
on | off
No
1224 (flag di traccia) boolean
on | off
No
2528 (flag di traccia) boolean
on | off
No
3205 (flag di traccia) boolean
on | off
No
3226 (flag di traccia) boolean
on | off
No
3625 (flag di traccia) boolean
on | off
4199 (flag di traccia) boolean
on | off
No
4616 (flag di traccia) boolean
on | off
No
7806 (flag di traccia) boolean
on | off
access check cache bucket count integer
0 ... 65536
No
quota cache del controllo di accesso integer
0 ... 2147483647
No
maschera di affinità integer
2147483648 ... 2147483647
No
agent xps boolean
on | off
No
soft-numa automatico disabilitato boolean
on | off
nome del bucket xe cloud sql string
Il nome del bucket deve iniziare con il prefisso gs://.
No
cloud sql xe output total disk size (mb) integer
10 ... 512
No
cloud sql xe file retention (mins) integer
0 ... 10080
No
cloud sql xe upload interval (mins) integer
1 ... 60
No
cloudsql enable linked servers boolean
on | off
No
soglia di costo per il parallelismo integer
0 ... 32767
No
autenticazione database indipendente boolean
on | off
No
cross db ownership chaining boolean
on | off
No
soglia cursore integer
-1 ... 2147483647
No
Lingua predefinita del testo completo integer
0 ... 2147483647
No
lingua predefinita integer
0 ... 32
No
traccia predefinita attivata boolean
on | off
No
Non consentire i risultati degli attivatori boolean
on | off
No
script esterni abilitati boolean
on | off
Larghezza di banda di scansione (max) integer
0 ... 32767
No
Larghezza di banda della scansione (min) integer
0 ... 32767
No
ft notify bandwidth (max) integer
0 ... 32767
No
ft notify bandwidth (min) integer
0 ... 32767
No
Fattore di riempimento (%) integer
0 ... 100
No
Memoria per la creazione dell'indice (KB) integer
704 ... 2147483647
No
serrature integer
5000 ... 2147483647
max server memory (mb) integer
1000 ... 2147483647
Cloud SQL potrebbe impostare un valore per questo flag sulle istanze in base ai valori consigliati da Microsoft. Per ulteriori informazioni, consulta Flag speciali.
No
max text repl size (b) integer
-1 ... 2147483647
No
max worker threads integer
128 ... 65535
No
Trigger nidificati boolean
on | off
No
Ottimizzazione per carichi di lavoro ad hoc boolean
on | off
No
ph timeout (s) integer
1 ... 3600
No
limite di costo del regolatore delle query integer
0 ... 2147483647
No
query wait (s) integer
-1 ... 2147483647
No
intervallo di recupero (min) integer
0 ... 32767
No
accesso remoto boolean
on | off
remote login timeout (s) integer
0 ... 2147483647
No
timeout query remota (s) integer
0 ... 2147483647
No
Trasforma le parole che generano rumore boolean
on | off
No
Soglia di anno a due cifre integer
1753 ... 9999
No
Connessioni utente integer
0, 10 ... 32767
Opzioni utente integer
0 ... 32767
No

Flag speciali

Questa sezione contiene informazioni aggiuntive sui flag di Cloud SQL per SQL Server.

max server memory (mb)

Questo flag limita la quantità di memoria che Cloud SQL può allocare per i suoi pool interni. Il consiglio generale è impostare il valore del flag su circa l'80% per impedire a SQL Server di consumare tutta la memoria disponibile per l'istanza Cloud SQL. Se imposti un valore superiore all'80%, potresti riscontrare instabilità, peggioramento delle prestazioni e arresti anomali del database a causa di problemi di esaurimento della memoria.

Se non imposti un valore per questo flag, Cloud SQL lo gestisce automaticamente in base alle dimensioni della RAM dell'istanza. Inoltre, se ridimensioni l'istanza, Cloud SQL regola automaticamente il valore del flag in base ai nostri consigli per le dimensioni della nuova istanza. In questo modo, il database utilizza le risorse in modo efficace, evitando sovraallocazioni, arresti anomali e cali delle prestazioni dell'istanza.

Risoluzione dei problemi

Problema Risoluzione dei problemi
Vuoi modificare il fuso orario di un'istanza Cloud SQL.

Per scoprire come aggiornare il fuso orario di un'istanza, consulta Impostazioni istanza.

In Cloud SQL per SQL Server, puoi utilizzare la funzione AT TIME ZONE per le conversioni di tempo e altro ancora. Per ulteriori informazioni su questa funzione, consulta AT TIME ZONE (Transact-SQL).

Passaggi successivi