

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# File di registro del database
<a name="USER_LogAccess.Concepts.MySQL"></a>

Puoi monitorare i log di direttamente tramite la console Amazon RDS, l'API Amazon RDS o. AWS CLI AWS SDKs Puoi anche eseguire l'accesso ai log MySQL indirizzando i log a una tabella del database nel database principale e facendo una ricerca in tale tabella. Puoi utilizzare la utility mysqlbinlog per scaricare un log binario. 

Per ulteriori informazioni sulla visualizzazione, il download e la visione di log di database basati su file, consulta [Monitoraggio dei file di log di Amazon RDS](USER_LogAccess.md).

**Topics**
+ [Panoramica dei registri di database RDS per MySQL](USER_LogAccess.MySQL.LogFileSize.md)
+ [Pubblicazione dei log MySQL in Amazon CloudWatch Logs](USER_LogAccess.MySQLDB.PublishtoCloudWatchLogs.md)
+ [Invio dell'output del log di alle tabelle](Appendix.MySQL.CommonDBATasks.Logs.md)
+ [Configurazione di MySQL RDS per la registrazione binaria MySQL per database Single-AZ](USER_LogAccess.MySQL.BinaryFormat.md)
+ [Configurazione della registrazione di log binari MySQL per cluster di database Multi-AZ](USER_Binlog.MultiAZ.md)
+ [Accesso ai log binari MySQL](USER_LogAccess.MySQL.Binarylog.md)

# Panoramica dei registri di database RDS per MySQL
<a name="USER_LogAccess.MySQL.LogFileSize"></a>

Puoi monitorare i seguenti tipi di file di registro RDS per MySQL:
+ Log di errori
+ Log delle query lente
+ Log generale
+ Log di audit
+ Log delle istanze
+ Log degli errori di autenticazione del database IAM

Il registro degli errori RDS per MySQL viene generato per impostazione predefinita. È possibile generare la query lenta e i log generali impostando i parametri nel gruppo di parametri di database.

**Topics**
+ [Registri degli errori RDS per MySQL](#USER_LogAccess.MySQL.Errorlog)
+ [Registri generali e delle query lente di RDS per MySQL](#USER_LogAccess.MySQL.Generallog)
+ [Registro di controllo di MySQL](#USER_LogAccess.MySQL.Auditlog)
+ [Rotazione e conservazione dei registri per RDS per MySQL](#USER_LogAccess.MySQL.LogFileSize.retention)
+ [Limiti di dimensioni nei registri di ripristino](#USER_LogAccess.MySQL.LogFileSize.RedoLogs)

## Registri degli errori RDS per MySQL
<a name="USER_LogAccess.MySQL.Errorlog"></a>

RDS per MySQL scrive errori nel file `mysql-error.log`. Ogni file di log ha l'ora di creazione (in UTC) accodata al nome. I file di log hanno anche un timestamp che ti aiuta a determinare quando le voci del log sono state scritte.

RDS per MySQL scrive nel registro degli errori solo durante l'avvio, l'arresto e quando si verificano errori. Un'istanza database può andare avanti ore senza che ci siano nuove voci scritte nel file di log degli errori. Se non vedi voci recenti, significa che il server non ha riscontrato errori che generano una voce di registro.

In base alla progettazione, i registri degli errori vengono filtrati in modo da visualizzare solo eventi imprevisti come errori. Tuttavia, i registri degli errori contengono anche altre informazioni sul database, ad esempio l'avanzamento della query, che non vengono visualizzate. Pertanto, anche senza errori effettivi, la dimensione dei registri degli errori potrebbe aumentare a causa delle attività del database in corso. Anche se potresti vedere una certa dimensione in byte o kilobyte per i log degli errori in Console di gestione AWS, potrebbero avere 0 byte quando li scarichi.

RDS per MySQL scrive `mysql-error.log` su disco ogni 5 minuti. Aggiunge il contenuto del registro a `mysql-error-running.log`.

RDS per MySQL ruota il file `mysql-error-running.log` ogni ora. Conserva i registri generati nelle ultime due settimane.

**Nota**  
Il periodo di conservazione dei log è diverso tra Amazon RDS e Aurora.

## Registri generali e delle query lente di RDS per MySQL
<a name="USER_LogAccess.MySQL.Generallog"></a>

Il registro delle query lente e il registro generale di RDS per MySQL possono essere scritti in un file o una tabella di database impostando i parametri nel gruppo parametri del database. Per informazioni sulla creazione e la modifica di un gruppo di parametri database, consulta [Gruppi di parametri per Amazon RDS](USER_WorkingWithParamGroups.md). È necessario impostare questi parametri prima di poter visualizzare il log delle query lente o il registro generale nella console Amazon RDS o utilizzando l'API Amazon RDS, la CLI di Amazon RDS o. AWS SDKs

Puoi controllare la registrazione di RDS per MySQL utilizzando i parametri in questo elenco:
+ `slow_query_log`: per creare il log delle query lente, imposta su 1. Il valore predefinito è 0.
+ `general_log`: per creare il log generale, imposta su 1. Il valore predefinito è 0.
+ `long_query_time`: per evitare che le query a esecuzione rapida vengano registrate nel registro delle query lente, specifica in secondi un valore per il runtime di query più breve da registrare. Il valore predefinito è 10 secondi, il minimo è 0 secondi. Se log\$1output = FILE, puoi specificare un valore in virgola mobile con risoluzione al microsecondo. Se log\$1output = TABLE, devi specificare un valore intero con risoluzione al secondo. Vengono registrate solo le query con runtime che supera il valore `long_query_time`. Ad esempio, impostando `long_query_time` su 0,1 si impedisce a tutte le query con tempo di esecuzione inferiore a 100 millisecondi di essere registrate.
+ `log_queries_not_using_indexes`: per registrare tutte le query che non usano un indice sul log delle query lente, imposta su 1. Le query che non utilizzano un indice vengono registrate anche se il runtime è inferiore al valore del parametro `long_query_time`. Il valore predefinito è 0.
+ `log_output option`: puoi specificare una delle seguenti opzioni per il parametro `log_output`. 
  + **TABLE** (predefinito) `mysql.general_log` Scrive le query generali nella tabella – e le query lente nella tabella `mysql.slow_log`.
  + **FILE** – Scrive sia i log generali sia i log delle query lente nel file system.
  + **NONE** – Disabilita il logging.

Affinché i dati delle query lente vengano visualizzati in Amazon CloudWatch Logs, devono essere soddisfatte le seguenti condizioni:
+ CloudWatch I log devono essere configurati per includere log di query lente.
+ `slow_query_log` deve essere abilitato.
+ `log_output` deve essere impostato su `FILE`.
+ La query deve richiedere più tempo di quanto configurato per `long_query_time`.

Per ulteriori informazioni sui log delle query lente e i log generali, consulta i seguenti argomenti nella documentazione di MySQL:
+ [Log delle query lente](https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html)
+ [Log delle query generali](https://dev.mysql.com/doc/refman/8.0/en/query-log.html)

## Registro di controllo di MySQL
<a name="USER_LogAccess.MySQL.Auditlog"></a>

Per accedere al log di audit, l'istanza database deve usare un gruppo di opzioni personalizzato con l'opzione `MARIADB_AUDIT_PLUGIN`. Per ulteriori informazioni, consulta [Supporto per MySQL del plug-in per audit MariaDB](Appendix.MySQL.Options.AuditPlugin.md).

## Rotazione e conservazione dei registri per RDS per MySQL
<a name="USER_LogAccess.MySQL.LogFileSize.retention"></a>

Quando la registrazione è abilitata, Amazon RDS ruota i log delle tabelle o elimina i file di log a intervalli regolari. Questa è una misura preventiva per ridurre l'eventualità che un file di log molto grande comprometta l'uso del database o la performance. RDS per MySQL gestisce la rotazione e l'eliminazione come segue:
+ Le dimensioni dei log delle query lente, degli errori e generale di MySQL sono limitate a un massimo del 2 per cento dello spazio di storage assegnato per un'istanza database. Per mantenere questa soglia, i log vengono ruotati automaticamente ogni ora. MySQL rimuove i file di registro più vecchi di due settimane. Se le dimensioni del file di log combinato superano tale soglia dopo la rimozione dei file di log più vecchi, i file di log più grandi vengono eliminati fino a che le dimensioni del file di log non rimangono inferiori alla soglia.
+ Quando la registrazione `FILE` è abilitata, i file di registro vengono esaminati ogni ora e quelli più vecchi di due settimane vengono eliminati. In alcuni casi, la dimensione del file di log combinato restante dopo l'eliminazione supera la soglia del 2 per cento di spazio assegnato a un'istanza database. In questi casi, i file di log più vecchi vengono eliminati fino a che le dimensioni del file di log non rimangono inferiori alla soglia.
+ Quando la registrazione `TABLE` è abilitata, in alcuni casi, le tabelle di log vengono ruotate ogni 24 ore. Questa rotazione avviene se lo spazio usato dai registri delle tabelle è più del 20% dello spazio di archiviazione assegnato oppure se la dimensione di tutti i registri combinati è maggiore di 10 GB. Se la quantità di spazio utilizzato per un'istanza database è maggiore del 90 per cento dello spazio di storage assegnato per l'istanza database, allora le soglie di rotazione del log vengono ridotte. Le tabelle dei registri vengono ruotate se lo spazio utilizzato dai registri delle tabelle supera il 10% dello spazio di archiviazione assegnato oppure se la dimensione di tutti i log combinati è maggiore di 5 GB. È possibile abbonarsi alla categoria di eventi `low storage` per ricevere una notifica quando le tabelle di log vengono ruotate per liberare spazio. Per ulteriori informazioni, consulta [Utilizzo della notifica degli eventi di Amazon RDS](USER_Events.md).

  Quando le tabelle dei registri vengono ruotate, la tabella dei registri corrente viene copiata prima in una tabella dei registri di backup. Quindi le voci della tabella dei registri corrente vengono rimosse. Se esiste già una tabella di log di backup, questa viene eliminata prima che la tabella di log corrente sia copiata nel backup. Puoi eseguire una query sulla tabella di log di backup, se necessario. La tabella di log di backup per la tabella `mysql.general_log` è denominata `mysql.general_log_backup`. La tabella di log di backup per la tabella `mysql.slow_log` è denominata `mysql.slow_log_backup`.

  Puoi ruotare la tabella `mysql.general_log` chiamando la procedura `mysql.rds_rotate_general_log`. Puoi ruotare la tabella `mysql.slow_log` chiamando la procedura `mysql.rds_rotate_slow_log`.

  I log della tabella vengono ruotati durante l'aggiornamento della versione del database.

Per utilizzare i log dalla console Amazon RDS, dall'API Amazon RDS, dalla CLI di Amazon RDS oppure AWS SDKs imposta il parametro su FILE. `log_output` Come il log degli errori MySQL, questi file di log vengono ruotati ogni ora. I file di registro generati durante le due settime precedenti vengono conservati. Il periodo di conservazione è diverso tra Amazon RDS e Aurora.

## Limiti di dimensioni nei registri di ripristino
<a name="USER_LogAccess.MySQL.LogFileSize.RedoLogs"></a>

Per RDS per MySQL versione 8.0.32 e precedenti, il valore predefinito di questo parametro è 256 MB. Questo valore viene ottenuto moltiplicando il valore predefinito del parametro `innodb_log_file_size` (128 MB) per il valore predefinito del parametro `innodb_log_files_in_group` (2). Per ulteriori informazioni, consultare [Best practice per la configurazione dei parametri per Amazon RDS per MySQL, parte 1: Parametri relativi alle prestazioni](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/). 

Per RDS per MySQL 8.0.33 e versioni secondarie successive, Amazon RDS utilizza il parametro `innodb_redo_log_capacity` al posto del parametro `innodb_log_file_size`. Il valore predefinito di Amazon RDS per il parametro `innodb_redo_log_capacity` è 2 GB. Per ulteriori informazioni, consulta [Changes in MySQL 8.0.30](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-30.html) (Modifiche in MySQL 8.0.30) nella documentazione di MySQL.

A partire da MySQL 8.4, Amazon RDS abilita il parametro `innodb_dedicated_server` per impostazione predefinita. Con il parametro `innodb_dedicated_server`, il motore del database calcola i parametri `innodb_buffer_pool_size` e `innodb_redo_log_capacity`. Per ulteriori informazioni, consulta [Configurazione delle dimensioni del pool di buffer e della capacità dei log di redo in MySQL 8.4](Appendix.MySQL.CommonDBATasks.Config.Size.8.4.md).

# Pubblicazione dei log MySQL in Amazon CloudWatch Logs
<a name="USER_LogAccess.MySQLDB.PublishtoCloudWatchLogs"></a>

Puoi configurare l'istanza database MySQL per la pubblicazione dei dati di log in un gruppo di log in Amazon CloudWatch Logs. Con CloudWatch Logs puoi eseguire analisi in tempo reale dei dati di log e usare CloudWatch per creare allarmi e visualizzare parametri. Puoi utilizzare CloudWatch Logs per archiviare i record dei log in uno storage estremamente durevole. 

Amazon RDS pubblica ogni log di database MySQL come flusso di database separato nel gruppo di log. Ad esempio, se configuri la funzione di esportazione affinché includa il log delle query lente, i dati relativi alle query lente vengono archiviati in un flusso delle log delle query lente nel gruppo di log `/aws/rds/instance/my_instance/slowquery`. 

Il log degli errori è abilitato per impostazione predefinita. La tabella seguente fornisce un riepilogo dei requisiti per gli altri log MySQL.


| Log | Requisito | 
| --- | --- | 
|  Log di controllo  |  L'istanza database deve usare un gruppo di opzioni personalizzato con l'opzione `MARIADB_AUDIT_PLUGIN`.  | 
|  Log generale  |  L'istanza database deve usare un gruppo di parametri personalizzato con l'impostazione `general_log = 1` per abilitare il log generale.  | 
|  Log delle query lente  |  L'istanza database deve usare un gruppo di parametri personalizzato con l'impostazione `slow_query_log = 1` per abilitare il log delle query lente.  | 
|  Log degli errori di autenticazione del database IAM  |  È necessario abilitare il tipo di log `iam-db-auth-error` per un’istanza database creando o modificando un’istanza database.  | 
|  Output log  |  L'istanza database deve usare un gruppo di parametri personalizzato con l'impostazione `log_output = FILE` per scrivere log nel file system e pubblicarli in CloudWatch Logs.  | 

## Console
<a name="USER_LogAccess.MySQL.PublishtoCloudWatchLogs.CON"></a>

**Per pubblicare i log MySQL su CloudWatch Logs tramite console**

1. Apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel riquadro di navigazione, scegliere **Databases (Database)** e selezionare l'istanza database da modificare.

1. Scegliere **Modify (Modifica)**.

1. Nella sezione **Log exports (Esportazioni log)** scegliere i log che si vuole iniziare a pubblicare in CloudWatch Logs.

1. Scegliere **Continue (Continua)** e quindi **Modify DB Instance (Modifica istanza database)** nella pagina di riepilogo.

## AWS CLI
<a name="USER_LogAccess.MySQL.PublishtoCloudWatchLogs.CLI"></a>

 Puoi pubblicare i log MySQL con la AWS CLI. Puoi chiamare il comando [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) con i parametri seguenti: 
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**Nota**  
Viene sempre applicata all'istanza database una modifica all'opzione `--cloudwatch-logs-export-configuration` immediatamente. Pertanto, le opzioni `--apply-immediately` e `--no-apply-immediately` non hanno alcun effetto.

Puoi pubblicare i log MySQL anche chiamando i seguenti comandi della AWS CLI: 
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

Esegui uno di questi comandi dell'AWS CLI con le opzioni seguenti: 
+ `--db-instance-identifier`
+ `--enable-cloudwatch-logs-exports`
+ `--db-instance-class`
+ `--engine`

Altre opzioni potrebbero essere richieste a seconda del comando AWS CLI eseguito.

**Example**  
L'esempio seguente modifica un'istanza database MySQL esistente per pubblicare i file di log in CloudWatch Logs. Il valore `--cloudwatch-logs-export-configuration` è un oggetto JSON. La chiave per questo oggetto è `EnableLogTypes` e il suo valore è una matrice di stringhe con qualsiasi combinazione di `audit`, `error`, `general` e `slowquery`.  
Per Linux, macOS o Unix:  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'
```
Per Windows:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'
```

**Example**  
L'esempio seguente crea un'istanza database MySQL e pubblica i file di log in CloudWatch Logs. Il valore `--enable-cloudwatch-logs-exports` è una matrice di stringhe JSON. Le stringhe possono essere una qualsiasi combinazione di `audit`, `error`, `general` e `slowquery`.  
Per Linux, macOS o Unix:  

```
1. aws rds create-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' \
4.     --db-instance-class db.m4.large \
5.     --engine MySQL
```
Per Windows:  

```
1. aws rds create-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' ^
4.     --db-instance-class db.m4.large ^
5.     --engine MySQL
```

## API RDS
<a name="USER_LogAccess.MySQL.PublishtoCloudWatchLogs.API"></a>

Puoi pubblicare i log MySQL con RDS API. Puoi chiamare l'operazione [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) con i parametri seguenti: 
+ `DBInstanceIdentifier`
+ `CloudwatchLogsExportConfiguration`

**Nota**  
Viene sempre applicata all'istanza database una modifica al parametro `CloudwatchLogsExportConfiguration` immediatamente. Pertanto, il parametro `ApplyImmediately` non ha alcun effetto.

Puoi pubblicare i log MySQL anche chiamando le seguenti operazioni API RDS: 
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html)

Esegui una di queste azioni API RDS con i seguenti parametri: 
+ `DBInstanceIdentifier`
+ `EnableCloudwatchLogsExports`
+ `Engine`
+ `DBInstanceClass`

Altri parametri potrebbero essere richiesti a seconda del comando della AWS CLI che viene eseguito.

# Invio dell'output del log di alle tabelle
<a name="Appendix.MySQL.CommonDBATasks.Logs"></a>

Puoi indirizzare il log generale e il log delle query lente alle tabelle sull'istanza database creando un gruppo di parametri del database e impostando il parametro server `log_output` su `TABLE`. Le query generali vengono quindi registrate sulla tabella `mysql.general_log`, mentre le query lente vengono registrate sulla tabella `mysql.slow_log`. Puoi eseguire query sulle tabelle per avere accesso alle informazioni di log. L'abilitazione di questa registrazione aumenta il numero di dati scritti sul database, il che potrebbe compromettere le performance.

Sia il log generale che quello delle query lente sono disattivati per impostazione predefinita. Per abilitare la registrazione sulle tabelle devi impostare anche i parametri server `general_log` e `slow_query_log` su `1`.

Le tabelle di log continuano a crescere fino a che le rispettive attività di registrazione non vengono disattivate eseguendo la reimpostazione del parametro appropriato su `0`. Spesso nel corso del tempo si accumulano grandi quantità di dati che possono usare una percentuale considerevole dello spazio di archiviazione assegnato. Amazon RDS non consente di troncare le tabelle dei registri, ma è possibile spostarne il contenuto. La rotazione delle tabelle ne salva il contenuto in una tabella di backup e crea una nuova tabella di log vuota. Puoi ruotare manualmente le tabelle di log con le seguenti procedure a riga di comando, nelle quali il prompt dei comandi è indicato da `PROMPT>`: 

```
PROMPT> CALL mysql.rds_rotate_slow_log;
PROMPT> CALL mysql.rds_rotate_general_log;
```

Per rimuovere completamente i dati vecchi e recuperare lo spazio del disco, chiama la procedura adeguata due volte in successione. 

# Configurazione di MySQL RDS per la registrazione binaria MySQL per database Single-AZ
<a name="USER_LogAccess.MySQL.BinaryFormat"></a>

Il *log binario* è un insieme di file di log che contengono informazioni sulle modifiche apportate ai dati di un'istanza server MySQL. Il log binario contiene informazioni come le seguenti:
+ Eventi che descrivono le modifiche al database come la creazione di tabelle o la modifica di righe
+ Informazioni sulla durata di ogni istruzione che ha aggiornato i dati
+ Eventi per istruzioni che avrebbero potuto aggiornare i dati ma non l'hanno fatto

Il log binario registra le istruzioni inviate durante la replica. È inoltre necessario per alcune operazioni di ripristino. Per ulteriori informazioni, consulta la pagina relativa al [log binario](https://dev.mysql.com/doc/refman/8.0/en/binary-log.html) nella documentazione di MySQL.

La caratteristica di backup automatici determina se il log binario è attivato o disattivato per MySQL. Sono disponibili le seguenti opzioni:

Attivazione del log binario  
Impostare il tempo di conservazione del backup su un valore positivo diverso da zero.

Disattivazione del log binario  
Impostare il tempo di conservazione del backup su zero.

Per ulteriori informazioni, consulta [Abilitazione dei backup automatici](USER_WorkingWithAutomatedBackups.Enabling.md).

MySQL su Amazon RDS supporta i formati di logging binario *basati su righe*, *basati su istruzioni* e *misti*. Si consiglia il formato misto a meno che non sia necessario un formato binlog specifico. Per dettagli sui diversi formati di log binari MySQL, consulta [Binary logging formats](https://dev.mysql.com/doc/refman/8.0/en/binary-log-formats.html) nella documentazione MySQL.

Se pianifichi di utilizzare la replica, il formato di logging binario è importante in quanto determina il record delle modifiche dei dati che viene registrato nella sorgente e inviato ai target della replica. Per ulteriori informazioni sui vantaggi e sugli svantaggi dei vari formati di logging binario per la replica, consulta la pagina relativa a [vantaggi e svantaggi della replica basata su istruzioni e basata su riga](https://dev.mysql.com/doc/refman/8.0/en/replication-sbr-rbr.html) nella documentazione di MySQL.

**Importante**  
Con MySQL 8.0.34, MySQL ha reso obsoleto il parametro `binlog_format`. Nelle versioni successive di MySQL, MySQL prevede di rimuovere il parametro e supportare solo la replica basata su righe. Di conseguenza, consigliamo di utilizzare la registrazione dei log basata su righe per le nuove configurazioni di replica MySQL. Per ulteriori informazioni, consulta [binlog\$1format](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_format) nella documentazione MySQL.  
Le versioni 8.0 e 8.4 di MySQL accettano il parametro `binlog_format`. Quando si utilizza questo parametro, MySQL emette un avviso che indica che è obsoleto. In una futura versione principale, MySQL rimuoverà il parametro `binlog_format`.  
La replica basata sulle istruzioni può causare incoerenze tra l'istanza database di origine e una replica di lettura. Per ulteriori informazioni, consulta la pagina relativa alla [ determinazione delle istruzioni sicure e non sicure nel logging binario](https://dev.mysql.com/doc/refman/8.0/en/replication-rbr-safe-unsafe.html) nella documentazione MySQL.  
 È possibile monitorare l'utilizzo degli IOPS con la `WriteIOPS` `` CloudWatch metrica.

**Per impostare il formato di registrazione binaria MySQL**

1. Aprire la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel riquadro di navigazione scegliere **Parameter groups (Gruppi di parametri)**.

1. Scegliere il gruppo di parametri del di database associato all’istanza di database da modificare.

   Non è consentito modificare un gruppo di parametri predefinito. Se l'istanza database è usata da un gruppo di parametri predefinito, creare un nuovo gruppo di parametri e associarlo all'istanza database.

   Per ulteriori informazioni sui gruppi di parametri, consulta [Gruppi di parametri per Amazon RDS](USER_WorkingWithParamGroups.md).

1. In **Actions (Operazioni)**, scegliere **Edit (Modifica)**.

1. Imposta il parametro `binlog_format` sul formato di registrazione binaria scelto (`ROW`, `STATEMENT` o `MIXED`).

   Puoi disattivare la registrazione binaria impostando il periodo di conservazione dei backup di un'istanza database su zero, ma ciò disabilita i backup automatici giornalieri. La disabilitazione dei backup automatizzati disattiva o disabilita la variabile di sessione `log_bin`. Questo comportamento disabilita la registrazione dei log binari sull’istanza database RDS per MySQL, che a sua volta reimposta la variabile di sessione `binlog_format` sul valore predefinito `ROW` nel database. Si consiglia di non disabilitare i backup. Per ulteriori informazioni sull'impostazione **Periodo di conservazione dei backup**, consulta [Impostazioni per istanze database](USER_ModifyInstance.Settings.md).

1. Scegliere **Salva modifiche** per salvare gli aggiornamenti applicati al gruppo di parametri database.

Poiché il parametro `binlog_format` è dinamico in RDS per MySQL, non è necessario riavviare l’istanza database per applicare le modifiche. Nota che in Aurora MySQL, questo parametro è statico. Per ulteriori informazioni, consulta [Configurazione del log binario di Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.MySQL.BinaryFormat.html).

**Importante**  
La modifica di un gruppo di parametri database influisce su tutte le istanze database che utilizzano tale gruppo di parametri. Se si desidera specificare diversi formati di registrazione binaria per diverse istanze DB MySQL in AWS una regione, le istanze DB devono utilizzare diversi gruppi di parametri DB. Questi gruppi di parametri identificano diversi formati di logging. Assegnare il gruppo di parametri database appropriato a ciascuna istanza database.

# Configurazione della registrazione di log binari MySQL per cluster di database Multi-AZ
<a name="USER_Binlog.MultiAZ"></a>

La registrazione binaria nei cluster DB Amazon RDS for MySQL Multi-AZ registra tutte le modifiche al database per supportare la replica, il ripristino e il controllo. point-in-time Nei cluster di database Multi-AZ, i log binari sincronizzano i nodi secondari con il nodo primario, garantendo la coerenza dei dati tra le zone di disponibilità e semplificando l’esecuzione dei failover. 

Per ottimizzare la registrazione di log binari, Amazon RDS supporta la compressione delle transazioni di log binari, che riduce i requisiti di archiviazione per i log binari e migliora l’efficienza della replica.

**Topics**
+ [Compressione delle transazioni di log binari per cluster di database Multi-AZ](#USER_Binlog.MultiAZ.compression)
+ [Configurazione della compressione delle transazioni di log binari per cluster di database Multi-AZ](#USER_Binlog.MultiAZ.configuring)

## Compressione delle transazioni di log binari per cluster di database Multi-AZ
<a name="USER_Binlog.MultiAZ.compression"></a>

La compressione delle transazioni di log binari utilizza l’algoritmo zstd per ridurre le dimensioni dei dati delle transazioni memorizzati nei log binari. Se abilitato, il motore di database MySQL comprime i payload delle transazioni in un singolo evento, riducendo al minimo il sovraccarico di archiviazione. I/O Questa funzionalità migliora le prestazioni del database, riduce le dimensioni dei log binari e ottimizza l’uso delle risorse per la gestione e la replica dei log nei cluster di database Multi-AZ.

Amazon RDS fornisce la compressione delle transazioni di log binari per cluster di database Multi-AZ RDS per MySQL:
+ `binlog_transaction_compression`: quando abilitata (`1`), il motore di database comprime i payload delle transazioni e li scrive nel log binario come singolo evento. Ciò riduce l'utilizzo e il sovraccarico dello storage. I/O Il parametro è disabilitato per impostazione predefinita.
+ `binlog_transaction_compression_level_zstd`: configura il livello di compressione zstd per le transazioni di log binari. I valori più alti aumentano il rapporto di compressione, riducendo ulteriormente i requisiti di archiviazione ma aumentando l’utilizzo di CPU e memoria per la compressione. Il valore predefinito è 3, con un intervallo compreso tra 1 e 22.

Questi parametri consentono di eseguire il fine-tuning della compressione dei log binari in base alle caratteristiche del carico di lavoro e alla disponibilità delle risorse. Per ulteriori informazioni, consulta [Binary Log Transaction Compression](https://dev.mysql.com/doc/refman/8.4/en/binary-log-transaction-compression.html) nella documentazione MySQL.

La compressione delle transazioni di log binari presenta i seguenti vantaggi principali:
+ La compressione riduce le dimensioni dei log binari, in particolare per carichi di lavoro con transazioni di grandi dimensioni o volumi di scrittura elevati.
+ I log binari più piccoli riducono la rete e il I/O sovraccarico, migliorando le prestazioni di replica.
+ Il parametro `binlog_transaction_compression_level_zstd` consente di controllare il compromesso tra rapporto di compressione e consumo di risorse.

## Configurazione della compressione delle transazioni di log binari per cluster di database Multi-AZ
<a name="USER_Binlog.MultiAZ.configuring"></a>

Per configurare la compressione delle transazioni di log binari per un cluster di database Multi-AZ RDS per MySQL, si modificano le impostazioni dei parametri del cluster pertinenti in base ai requisiti del carico di lavoro.

### Console
<a name="USER_Binlog.MultiAZ.configuring-console"></a>

**Per abilitare la compressione delle transazioni di log binari**

1. Modifica il gruppo di parametri del cluster di database per impostare il parametro `binlog_transaction_compression` su `1`.

1. (Facoltativo) Modifica il valore del parametro `binlog_transaction_compression_level_zstd` in base ai requisiti del carico di lavoro e alla disponibilità delle risorse.

Per ulteriori informazioni, consulta [Modifica dei parametri in un gruppo di parametri del cluster DB ](USER_WorkingWithParamGroups.ModifyingCluster.md).

### AWS CLI
<a name="USER_Binlog.MultiAZ.configuring-cli"></a>

[Per configurare la compressione delle transazioni di registro binario utilizzando il AWS CLI, utilizzare il modify-db-cluster-parameter comando -group.](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html)

**Example**  
Per Linux, macOS o Unix:  

```
aws rds modify-db-cluster-parameter-group \
  --db-cluster-parameter-group-name your-cluster-parameter-group \
  --parameters "ParameterName=binlog_transaction_compression,ParameterValue=1,ApplyMethod=pending-reboot"
```
Per Windows:  

```
aws rds modify-db-cluster-parameter-group ^
  --db-cluster-parameter-group-name your-cluster-parameter-group ^
  --parameters "ParameterName=binlog_transaction_compression,ParameterValue=1,ApplyMethod=pending-reboot"
```

### API RDS
<a name="USER_Binlog.MultiAZ.configuring-api"></a>

Per configurare la compressione delle transazioni di log binari tramite l’API Amazon RDS, utilizza l’operazione [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html).

# Accesso ai log binari MySQL
<a name="USER_LogAccess.MySQL.Binarylog"></a>

Puoi utilizzare la utility mysqlbinlog per il download o lo streaming di log binari dalle istanze database RDS for MySQL. Il log binario viene scaricato sul computer locale dove è possibile eseguire operazioni come la riproduzione del log tramite utility mysql. Per ulteriori informazioni sull'uso dell'utilità mysqlbinlog, consulta [Utilizzo di mysqlbinlog per il backup di file di log binari](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-backup.html) nella documentazione di MySQL.

Per eseguire la utility mysqlbinlog su un'istanza Amazon RDS usa le seguenti opzioni:
+ `--read-from-remote-server`: obbligatorio
+ `--host`: il nome DNS dall'endpoint dell'istanza.
+ `--port`: la porta utilizzata dall'istanza.
+ `--user`: un utente MySQL al quale è stata concessa l'autorizzazione `REPLICATION SLAVE`.
+ `--password`: la password dell'utente MySQL oppure ometti un valore di password affinché l'utilità richieda una password.
+ `--raw`: scarica il file in formato binario.
+ `--result-file`: il file locale per riceve l'output raw.
+ `--stop-never`: trasmette in streaming i file di log binari.
+ `--verbose`: quando utilizzi il formato binlog `ROW`, includi questa opzione per visualizzare gli eventi di riga come istruzioni pseudo-SQL. Per ulteriori informazioni sull'opzione `--verbose`, consulta [Visualizzazione degli eventi di riga di mysqlbinlog](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-row-events.html) nella documentazione di MySQL.
+ Specifica il nome di uno o più file di log binari. Per ottenere l'elenco dei log disponibili, utilizza il comando SQL `SHOW BINARY LOGS`.

Per ulteriori informazioni sulle opzioni di mysqlbinlog, consulta [Utilità mysqlbinlog per l'elaborazione di file di log binari](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog.html) nella documentazione di MySQL.

Gli esempi seguenti mostrano come utilizzare l'utilità mysqlbinlog.

Per Linux, macOS o Unix:

```
mysqlbinlog \
    --read-from-remote-server \
    --host=MySQLInstance1.cg034hpkmmjt.region.rds.amazonaws.com \
    --port=3306  \
    --user ReplUser \
    --password \
    --raw \
    --verbose \
    --result-file=/tmp/ \
    binlog.00098
```

Per Windows:

```
mysqlbinlog ^
    --read-from-remote-server ^
    --host=MySQLInstance1.cg034hpkmmjt.region.rds.amazonaws.com ^
    --port=3306  ^
    --user ReplUser ^
    --password ^
    --raw ^
    --verbose ^
    --result-file=/tmp/ ^
    binlog.00098
```

I log binari devono rimanere disponibili sull’istanza database affinché l’utilità mysqlbinlog possa accedervi. Per garantirne la disponibilità, utilizzare la stored procedure [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration) e specificare un periodo abbastanza lungo che consenta di scaricare i log. Se questa configurazione non è impostata, Amazon RDS elimina i log binari il prima possibile, causando lacune nei log binari recuperati dall’utilità mysqlbinlog. 

L'esempio seguente imposta il periodo di conservazione su 1 giorno.

```
call mysql.rds_set_configuration('binlog retention hours', 24);
```

Per visualizzare l'impostazione attuale, utilizza la procedura archiviata [mysql.rds\$1show\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_show_configuration).

```
call mysql.rds_show_configuration;
```