Modifica della configurazione di distribuzione

IBM Cloud® Databases for MySQL ti consente di modificare alcune impostazioni di configurazione MySQL in modo da poter ottimizzare i database MySQL in base al tuo caso d'uso. Per apportare modifiche permanenti alla configurazione del database, utilizza l' Cloud Databases CLI - plugin o per scrivere le modifiche al file di configurazione per la tua distribuzione.

La configurazione è definita in un schema. Per apportare una modifica, inviare un oggetto JSON con le impostazioni e i relativi nuovi valori all'API o alla CLI. Ad esempio, nella CLI o nell'API, imposta max_connections su 150 utilizzando un comando come:

{"configuration":{"max_connections":150}}

Per ulteriori informazioni, consultare Gestione di MySQL Connections.

Come calcolare la variabile 'max_connections di MySQL

max_connections è un parametro di configurazione in MySQL che determina il numero massimo di connessioni simultanee che è possibile stabilire con il server di database.

MySQL max_connections formula di base

La formula di base per calcolare max_connections è:

Available RAM = Global Buffers + (Thread Buffers x `max_connections`)

Per richiamare un elenco di buffer e i loro valori, utilizzare un comando come:

SHOW VARIABLES LIKE '%buffer%';

Utilizzo del plug-in CLI Cloud Databases

Verificate la configurazione predefinita dell'installazione utilizzando un comando come:

ibmcloud cdb deployment-configuration-schema <deployment name or CRN>

Questo comando restituisce solo la configurazione predefinita. Le modifiche alla configurazione predefinita non vengono mostrate.

Per modificare la configurazione tramite il comando Cloud Databases CLI - plugin, utilizza il comando deployment-configuration:

ibmcloud cdb deployment-configuration <deployment name or CRN> [@JSON_FILE | JSON_STRING]

Il comando legge le modifiche che si desidera apportare dall'oggetto JSON o da un file. Per ulteriori informazioni, vedi la pagina di riferimento della CLI.

Utilizzo dell'API Cloud Databases

Ci sono due endpoint di configurazione di distribuzione, uno per visualizzare lo schema di configurazione e uno per modificare la configurazione. Per visualizzare lo schema di configurazione, inviare una richiesta GET a /deployments/{id}/configuration/schema.

Per modificare la configurazione, inviare le impostazioni che si desidera modificare come un oggetto JSON nel corpo della richiesta di una richiesta PATCH a /deployments/{id}/configuration.

Per ulteriori informazioni, vedi Riferimento API.

Impostazioni del fuso orario di Databases for MySQL

Il fuso orario per le distribuzioni Databases for MySQL è sempre Coordinated Universal Time. Configura il tuo fuso orario con l'API Cloud Databases o la CLI modifica il tuo fuso orario in un fuso orario denominato (consigliato) o in un offset di un fuso orario.

È necessario configurare nuovamente il fuso orario sulle istanze ripristinate e sulle repliche di lettura. Sebbene le tabelle di fuso orario vengano ripristinate (nel caso di un ripristino) e replicate (nel caso di una replica di lettura), il valore @@global.time_zone non lo è. Per impostare questo valore, utilizzare le stesse chiamate API di prima, ma con i nuovi CRN.

Configurazione delle tue impostazioni del fuso orario Databases for MySQL

Durante il provisioning, una distribuzione Cloud Databases viene configurata in Coordinated Universal Time. La riconfigurazione del tuo fuso orario è una modifica persistente, che deve essere eseguita per ogni tua distribuzione Cloud Databases.

La configurazione del tuo fuso orario imposta il fuso orario globale all'interno della tua istanza MySQL. Nell'istanza in cui si verifica un failover, l'impostazione del fuso orario viene propagata come parte della replica, poiché l'impostazione del fuso orario viene scritta nel file di configurazione MySQL. L'eccezione è se si ripristina un'istanza in un determinato momento prima di configurare il fuso orario preferito.

Se si configura il fuso orario su uno che dispone dell'ora legale, le regolazioni fanno parte della configurazione. Non è necessaria alcuna azione da parte dell'utente. Utilizzare un fuso orario specifico è meglio che utilizzare un'ora di offset.

Cloud Databases convalida il time_zone valore del parametro. Se si configura la distribuzione con un valore non valido, la configurazione non riesce. Il nome valido time_zone values è disponibile qui.

Modifica del fuso orario nell'API Cloud Databases

Offset di esempio:

curl -v -XPATCH -H "Authorization: Bearer $token" -H "Content-Type: application/json" https://api.<region>.databases.cloud.ibm.com/v5/ibm/deployments/<crn>/configuration -d '{"configuration": {"time_zone": "<EXAMPLE OFFSET"}}'

Esempio di fuso orario denominato:

curl -v -XPATCH -H "Authorization: Bearer $token" -H "Content-Type: application/json" https://api.<region>.databases.cloud.ibm.com/v5/ibm/deployments/<crn>/configuration -d '{"configuration": {"time_zone": "<EXAMPLE TIME ZONE"}}'

Modifica del fuso orario nella CLI Cloud Databases

Esempio di fuso orario denominato

ibmcloud cdb deployment-configuration <crn> '{"time_zone": "US/Pacific"}'

Impostazioni di configurazione disponibili di Databases for MySQL

innodb_buffer_pool_size_percentage

  • Descrizione: la percentuale di memoria da utilizzare per innodb_buffer_pool_size. Il valore predefinito del 50% è un valore conservativo e funziona per i database di qualsiasi dimensione. Se il database richiede più RAM, questo valore può essere aumentato. L'impostazione di questo valore su un valore troppo alto può superare i limiti di memoria del database, il che può causare un arresto anomalo.
  • Predefinito: 50
  • Minimo: 10
  • Massimo: 100
  • Riavvia il database? - true

innodb_log_buffer_size

  • Descrizione: la dimensione in byte del buffer utilizzato da InnoDB per scrivere nei file di log sul disco.
  • Predefinito: 33554432
  • Minimo: 1048576
  • Massimo: 4294967295
  • Riavvia il database? - true

innodb_log_file_size

  • Descrizione: Dimensione in byte di ciascun file di log in un gruppo di log. Innodb_log_file_size e 'innodb_log_files_in_group sono stati sostituiti da 'innodb_redo_log_capacity. Impostando il 'innodb_log_file_size si imposta anche il 'innodb_redo_log_capacity.
  • Predefinito: 2147483648
  • Minimo: 4194304
  • Massimo: 274877906900
  • Riavvia il database? - false

innodb_lru_scan_depth

  • Descrizione: un parametro che influenza gli algoritmi e le euristiche per l'operazione flush per il pool di buffer InnoDB. Un'impostazione più piccola del valore predefinito è generalmente adatta per la maggior parte dei carichi di lavoro. Un valore molto più elevato del necessario potrebbe influire sulle prestazioni. Aumentare il valore solo se si dispone di capacità I/O di riserva in un carico di lavoro tipico.
  • Predefinito: 256
  • Minimo: 128
  • Massimo: 2048
  • Riavvia il database? - false

innodb_write_io_threads

  • Descrizione: il numero di thread I/O per operazioni di scrittura in InnoDB.
  • Predefinito: 4
  • Minimo: 1
  • Massimo: 64
  • Riavvia il database? - true

max_allowed_packet

  • Predefinito - 1073741824
  • Minimo - 1024
  • Massimo - 1073741824
  • Riavvia il database? - false

max_prepared_stmt_count

  • Descrizione - Specifica il numero totale di istruzioni preparate sul server.
  • Predefinito - 16382
  • Minimo - 0
  • Massimo - (versione ≤ 8.0.17) 1048576, (versione ≥ 8.0.18) 4194304
  • Riavvia il database? - false

max_connections

  • Predefinito - 200
  • Riavvia il database? - false

Potrebbe essere necessario scalare prima di aumentare il numero massimo di connessioni.

mysql_max_binlog_age_sec

  • Predefinito - 1800
  • Riavvia il database? - false

net_write_timeout

  • Descrizione: il numero di secondi di attesa per la scrittura di un blocco su una connessione prima di interrompere la scrittura.
  • Predefinito: 60
  • Minimo: 1
  • Massimo: 7200
  • Riavvia il database? - false

sql_mode

  • Valori consentiti:
    • ALLOW_INVALID_DATES
    • ANSI_QUOTES
    • ERROR_FOR_DIVISION_BY_ZERO
    • HIGH_NOT_PRECEDENCE
    • IGNORE_SPACE
    • NO_AUTO_CREATE_USER
    • NO_AUTO_VALUE_ON_ZERO
    • NO_BACKSLASH_ESCAPES
    • NO_DIR_IN_CREATE
    • NO_ENGINE_SUBSTITUTION
    • NO_FIELD_OPTIONS
    • NO_KEY_OPTIONS
    • NO_TABLE_OPTIONS
    • NO_UNSIGNED_SUBTRACTION
    • NO_ZERO_DATE
    • NO_ZERO_IN_DATE
    • ONLY_FULL_GROUP_BY
    • PAD_CHAR_TO_FULL_LENGTH
    • PIPES_AS_CONCAT
    • REAL_AS_FLOAT
    • STRICT_ALL_TABLES
    • STRICT_TRANS_TABLES
  • Riavvia il database? - false

time_zone

  • Descrizione: il fuso orario attualmente impostato sul server è '+ 00:00' (Coordinated Universal Time) per impostazione predefinita. Tuttavia, può anche essere impostato su un offset specifico dal Tempo Universale Coordinato nel formato [HH]:MM, con un prefisso + o -, ad esempio "+10:00", '-6:00" o "+05:30". Possono essere utilizzati anche i fusi orari denominati come 'MET 'o 'US/Pacific'.
  • Predefinito: +00:00
  • Tipo: string
  • Riavvia il database? - false

wait_timeout

  • Descrizione: il numero di secondi che il server attende per l'attività su una connessione non interattiva prima di chiuderla.
  • Predefinito: 28800
  • Minimo: 1
  • Massimo: 31536000
  • Riavvia il database? - false

innodb_read_io_threads

  • Descrizione: Il numero di thread di I/O per le operazioni di lettura in InnoDB.
  • Predefinito: 4
  • Minimo: 1
  • Massimo: 64
  • Riavvia il database? - true

net_read_timeout

  • Descrizione: Numero di secondi per attendere altri dati da una connessione prima di interrompere la lettura.
  • Predefinito: 30
  • Minimo: 1
  • Massimo: 7200
  • Riavvia il database? - false