Questa pagina descrive come configurare i flag di database per Cloud SQL ed elenca i flag che puoi impostare per la tua istanza. Utilizzi i flag di database per molte operazioni, tra cui la modifica dei parametri di SQL Server, la modifica 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 lo rimuovi. Se l'istanza è l'origine di una replica e viene riavviata, anche la replica viene riavviata per allinearsi alla configurazione attuale dell'istanza.
Configura flag di database
Le sezioni seguenti illustrano le attività comuni di gestione dei flag.
Imposta un flag di database
Console
- Nella consoleGoogle Cloud , seleziona il progetto che contiene l'istanza Cloud SQL per cui vuoi impostare un flag di database.
- Apri l'istanza e fai clic su Modifica.
- Vai alla sezione Flag.
- Per impostare un flag che non è stato impostato in precedenza sull'istanza, fai clic su Aggiungi elemento, scegli il flag dal menu a discesa e imposta il relativo valore.
- Fai clic su Salva per salvare le modifiche.
- 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 in modo specifico viene impostato sul 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.
Applica le modifiche
Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo 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 la propria directory (chiamata anche modulo radice).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf
, ad esempiomain.tf
. In questo tutorial, il file viene denominatomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel
main.tf
appena creato.(Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi effettuare questa operazione una sola volta per directory.
terraform init
(Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione
-upgrade
:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform creerà o
aggiornerà corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione di Terraform eseguendo il comando seguente e inserendo
yes
al prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!".
- Apri il tuo Google Cloud progetto 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:
- Per disattivare la protezione dall'eliminazione, nel file di configurazione Terraform imposta l'argomento
deletion_protection
sufalse
.deletion_protection = "false"
- Applica la configurazione Terraform aggiornata eseguendo il comando seguente e
inserendo
yes
al prompt:terraform apply
-
Rimuovi le risorse applicate in precedenza con la configurazione di 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 per il database sono configurati flag esistenti, 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 per il database sono configurati flag esistenti, modifica il comando precedente
per includerli. Il comando PATCH
sovrascrive i flag esistenti
con quelli specificati nella richiesta.
Cancella tutti i flag e ripristina i valori predefiniti
Console
- Nella Google Cloud console, seleziona il progetto che contiene l'istanza Cloud SQL per cui vuoi cancellare tutti i flag.
- Apri l'istanza e fai clic su Modifica.
- Apri la sezione Flag di database.
- Fai clic sulla X accanto a tutti i flag visualizzati.
- Fai clic su Salva per salvare le modifiche.
gcloud
Cancella tutti i flag e ripristina i valori predefiniti di 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:
Determinare quali flag di database sono stati impostati per un'istanza
Per vedere quali flag sono stati impostati per un'istanza Cloud SQL:
Console
- Nella Google Cloud console, seleziona il progetto che contiene l'istanza Cloud SQL per cui vuoi visualizzare i flag del database impostati.
- Seleziona l'istanza per aprire la pagina Panoramica istanza.
I flag di database impostati sono elencati nella sezione Flag di database.
gcloud
Ottieni lo stato dell'istanza:
gcloud sql instances describe INSTANCE_NAME
Nell'output, i flag di database sono elencati in settings
come
raccolta databaseFlags
. Per saperne di più sulla rappresentazione dei flag nell'output, vedi 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 richiesto? |
---|---|---|
1204 (flag di traccia) | boolean on | off |
No |
1222 (trace flag) | boolean on | off |
No |
1224 (trace flag) | boolean on | off |
No |
2528 (flag di traccia) | boolean on | off |
No |
3205 (trace flag) | boolean on | off |
No |
3226 (flag di traccia) | boolean on | off |
No |
3625 (flag di traccia) | boolean on | off |
Sì |
4199 (flag di traccia) | boolean on | off |
No |
4616 (flag di traccia) | boolean on | off |
No |
7806 (flag di traccia) | boolean on | off |
Sì |
access check cache bucket count | integer 0 ... 65536 |
No |
access check cache quota | integer 0 ... 2147483647 |
No |
maschera di affinità | integer 2147483648 ... 2147483647 |
No |
agent xps | boolean on | off |
No |
automatic soft-numa disabled | boolean on | off |
Sì |
cloud sql xe bucket name | 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 |
cost threshold for parallelism | integer 0 ... 32767 |
No |
autenticazione database indipendente | boolean on | off
|
No |
cross db ownership chaining | boolean on | off
|
No |
Soglia del cursore | integer -1 ... 2147483647 |
No |
default full-text language | integer 0 ... 2147483647 |
No |
lingua predefinita | integer 0 ... 32 |
No |
default trace enabled | boolean on | off |
No |
disallow results from triggers | boolean on | off |
No |
external scripts enabled | boolean on | off |
Sì |
Larghezza di banda di scansione ft (max) | integer 0 ... 32767 |
No |
ft crawl bandwidth (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 |
index create memory (kb) | integer 704 ... 2147483647 |
No |
serrature | integer 5000 ... 2147483647 |
Sì |
max degree of parallelism (MAXDOP) | integer 0 ... 32767 |
No |
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, vedi 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 |
ottimizzare per i workload ad hoc | boolean on | off |
No |
ph timeout (s) | integer 1 ... 3600 |
No |
query governor cost limit | integer 0 ... 2147483647 |
No |
query wait (s) | integer -1 ... 2147483647 |
No |
Intervallo di recupero (min) | integer 0 ... 32767 |
No |
accesso remoto | boolean on | off |
Sì |
remote login timeout (s) | integer 0 ... 2147483647 |
No |
remote query timeout (s) | integer 0 ... 2147483647 |
No |
trasformare le parole di disturbo | boolean on | off |
No |
anno a due cifre limite | integer 1753 ... 9999 |
No |
connessioni degli utenti | integer 0 , 10 ... 32767 |
Sì |
Opzioni utente | integer 0 ... 32767 |
No |
Flag speciali
Questa sezione contiene informazioni aggiuntive sui flag di Cloud SQL per SQL Server.
max degree of parallelism (MAXDOP)
Max degree of parallelism (MAXDOP)
è un flag di database Microsoft
disponibile per l'utilizzo in Cloud SQL per SQL Server. Questo flag consente di limitare il numero massimo di thread utilizzati durante l'esecuzione di una singola query in un piano parallelo.
Se viene lasciato il valore predefinito 0
, l'istanza del database utilizza
tutti i processori disponibili. Tuttavia, questo potrebbe non essere sempre efficiente o addirittura
pratico se gestisci istanze con centinaia di database.
Ti consigliamo di seguire i suggerimenti della documentazione Microsoft quando imposti il valore del flag, che può variare in base al numero di nodi NUMA e al numero di processori logici disponibili.
Puoi controllare la configurazione del nodo NUMA utilizzando la visualizzazione di gestione dinamica (DMV) da sys.dm_os_sys_info. Per controllare la configurazione del nodo NUMA, utilizza uno snippet di codice simile al seguente:
SELECT socket_count,cores_per_socket,numa_node_count
FROM sys.dm_os_sys_info
Sebbene tu possa utilizzare MAXDOP per limitare il numero massimo di processori che vuoi consentire per l'esecuzione parallela del piano, puoi anche utilizzare la funzionalità Soglia di costo per il parallelismo per indicare il costo minimo che vuoi impostare per un singolo processore prima di espandere le operazioni parallele a un altro processore. Queste funzionalità ti consentono di controllare meglio l'efficienza e il costo dell'esecuzione parallela dei piani.
I valori consigliati per queste funzionalità variano a seconda dei casi e saranno influenzati dalle esigenze di carico di lavoro del server e dell'applicazione.
Per assistenza nella determinazione dei valori ottimali di MAXDOP e della soglia di costo per il parallelismo per i tuoi server, consulta le seguenti risorse:
- Configurazione del server: grado massimo di parallelismo
- Best practice: impostazioni del database da modificare
La modifica del valore predefinito consente di risolvere i seguenti potenziali problemi:
- Se il flag
max degree of parallelism (MAXDOP)
è impostato su0
, le istanze o le applicazioni client che richiedono download di SharePoint non vanno a buon fine. Il download di SharePoint esegue un controllo preliminare che richiede un valore numerico per il flag e non accetta un valore inferiore a 1. - Se lasci il flag MAXDOP sul valore predefinito
0
, indichi in modo efficace che non esiste alcun limite e che tutti i processori disponibili possono essere utilizzati per le operazioni parallele. Sebbene questo valore possa essere adeguato per i server che eseguono regolarmente query di piccole dimensioni, potrebbe rappresentare un problema di costi se devi anche eseguire periodicamente query molto grandi.
Utilizzando il flag max degree of parallelism (MAXDOP)
, puoi controllare
il numero di thread a tre livelli:
- A livello di istanza, utilizzando i flag di database
- Ambito del database, utilizzando TSQL
- A livello di query, utilizzando i suggerimenti per le query
Tieni presente che se le dimensioni dell'istanza vengono modificate, il valore del flag rimane invariato.
max server memory (mb)
Il flag max server memory (mb)
limita la quantità di memoria che Cloud SQL può allocare per i suoi pool interni.
Ti consigliamo di non configurare un valore per questo flag e di lasciare che Cloud SQL
gestisca il valore per te. Se devi gestire manualmente questo valore, come raccomandazione generale, imposta il valore max server memory (mb)
su circa l'80% della memoria disponibile per evitare che SQL Server consumi tutta la memoria.
Al contrario, per le istanze con grandi quantità di memoria, l'80% della memoria disponibile potrebbe essere un valore troppo basso e potrebbe portare a un utilizzo della memoria sprecato.
Se non imposti un valore per questo flag, Cloud SQL gestisce automaticamente il valore 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 nuove dimensioni dell'istanza. Questa operazione di ridimensionamento rimuove anche qualsiasi valore impostato manualmente per questo flag. Ciò consente al tuo database di utilizzare le risorse in modo più efficace, contribuendo a prevenire l'allocazione eccessiva, riducendo la probabilità di un arresto anomalo dovuto a problemi di memoria insufficiente e contribuendo a evitare il peggioramento delle prestazioni per la tua istanza.
Per ulteriori informazioni, vedi Memoria massima del server e Ottimizzare l'utilizzo elevato della memoria.
Risoluzione dei problemi
Problema | Risoluzione dei problemi |
---|---|
Vuoi modificare il fuso orario per un'istanza Cloud SQL. |
Per scoprire come aggiornare il fuso orario di un'istanza, consulta Impostazioni dell'istanza. In Cloud SQL per SQL Server, puoi utilizzare la funzione |
Passaggi successivi
- Scopri di più sulle opzioni di configurazione di SQL Server.