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à.
Replica tra Aurora e MySQL o tra Aurora e un altro cluster di database Aurora (replica dei log binari)
In quanto Amazon Aurora MySQL è compatibile con MySQL, puoi impostare la replica tra un database MySQL e un cluster di database Amazon Aurora MySQL. Questo tipo di replica utilizza la replica dei log binari MySQL ed è comunemente indicato come replica binlog. Se si utilizza la replica dei log binari con Aurora, si consiglia di eseguire sul database MySQL versione 5.5 o successiva. È possibile impostare la replica in cui il cluster Aurora MySQL del database è il master di replica o la replica. È possibile eseguire la replica con un'istanza DB Amazon RDS MySQL, un database MySQL esterno su Amazon RDS o un altro cluster DB Aurora MySQL.
Nota
Non è possibile utilizzare la replica binlog da o verso determinati tipi di cluster di database Aurora. In particolare, la replica binlog non è disponibile per i cluster Aurora Serverless v1. Se l'istruzione SHOW MASTER STATUS
e SHOW
SLAVE STATUS
(Aurora MySQL versione 2) o SHOW REPLICA STATUS
(Aurora MySQL versione 3) non restituisce alcun output, controlla che il cluster in uso supporti la replica binlog.
In Aurora MySQL versione 3 non è possibile replicare nel database di sistema mysql
utilizzando la replica del log binario. Le password e gli account non vengono replicati dalla replica binlog in Aurora MySQL versione 3. Pertanto, le istruzioni Data Control Language (DCL) come CREATE USER
, GRANT
e REVOKE
non vengono replicate.
Puoi anche eseguire una replica con un'istanza database RDS per MySQL o un cluster di database Aurora MySQL in un'altra Regione AWS. Quando esegui la replica su più server Regioni AWS, assicurati che i cluster e le istanze DB siano accessibili pubblicamente. Se i cluster di database Aurora MySQL si trovano in sottoreti private nel VPC, usa il peering VPC tra le Regioni AWS. Per ulteriori informazioni, consulta Un cluster database in un VPC a cui accede un'istanza EC2 in un VPC diverso.
Se si desidera configurare la replica tra un cluster Aurora MySQL DB e un cluster Aurora MySQL DB in un altro, è possibile creare un cluster Aurora MySQL DB come replica di lettura Regione AWS in un cluster DB diverso da quello di origine. Regione AWS Per ulteriori informazioni, consulta Repliche di cluster di database Amazon Aurora MySQL tra Regioni AWS.
Con Aurora MySQL versione 2 e 3, è possibile effettuare la replica tra Aurora MySQL e un'origine o una destinazione esterna che utilizza gli identificatori globali di transazione (GTID) per la replica. Assicurati che i parametri basati su GTID nel cluster di database Aurora MySQL presentino impostazioni compatibili con lo stato GTID del database esterno. Per informazioni su come effettuare questa operazione, consulta Utilizzo della replica basata su GTID. In Aurora MySQL versione 3.01 e successive, puoi scegliere come assegnare GTID alle transazioni replicate da una fonteche non utilizza GTID. Per informazioni sulla procedura archiviata che controlla tale impostazione, vedere mysql.rds_assign_gtids_to_anonymous_transactions (Aurora MySQL versione 3).
avvertimento
Quando esegui la replica tra Aurora MySQL e MySQL, assicurati di utilizzare solo tabelle InnoDB. Se hai tabelle MyISAM, che desideri replicare, puoi convertirle in InnoDB prima di impostare la replica con il seguente comando.
alter table <schema>.<table_name> engine=innodb, algorithm=copy;
Impostazione della replica con MySQL e un altro cluster di database Aurora
L'impostazione della replica MySQL con Aurora MySQL prevede le seguenti fasi che vengono discusse in dettaglio:
1. Abilitare l'accesso binario nella fonte di replica
2. Mantieni i log binari nel master di replica fino a quando non sono più necessari
3. Crea una copia o un dump della tua fonte di replica
4. Carica il dump nella destinazione della replica (se necessario)
5. Creazione di un utente di replica sull’origine di replica
6. Abilitare la replica nel target di replica
1. Abilitare l'accesso binario nella fonte di replica
Seguono le istruzioni su come abilitare l'accesso binario nella fonte di replica per il motore del database.
Motore del database | Istruzioni |
---|---|
Aurora MySQL |
Per abilitare l'accesso binario in un cluster di database Aurora MySQL Imposta il parametro del cluster di database Per modificare il parametro Se stai modificando il parametro Per ulteriori informazioni, consulta Parametri dell'istanza database e del cluster database di Amazon Aurora e Utilizzo di gruppi di parametri. |
RDS for MySQL |
Per abilitare l'accesso binario in un'istanza database Amazon RDS Non è possibile abilitare l'accesso binario direttamente per un'istanza database Amazon RDS, ma si può abilitarlo procedendo in uno dei seguenti modi:
|
MySQL (esterno) |
Per impostare la replica crittografata Per replicare i dati in maniera sicura con Aurora MySQL versione 2, puoi utilizzare la replica crittografata. NotaSe non hai bisogno di utilizzare la replica crittografata, puoi saltare queste fasi. Seguono i prerequisiti per l'utilizzo della replica crittografata:
Durante la replica crittografata, il cluster di database Aurora MySQL agisce come un client per il server di database MySQL. I certificati e le chiavi per il client Aurora MySQL sono in file in formato .pem.
Per abilitare l'accesso binario a un database esterno MySQL
|
2. Mantieni i log binari nel master di replica fino a quando non sono più necessari
Quando si utilizza la replica dei log binari MySQL, Amazon RDS non gestisce il processo di replica. Come risultato, devi assicurarti che i file binlog nel master di replica siano mantenuti finché le modifiche vengono applicate alla replica. Questa manutenzione aiuta a ripristinare il database di origine in caso di errore.
Utilizza le istruzioni seguenti per mantenere i registri binari per il motore di database.
Motore del database | Istruzioni |
---|---|
Aurora MySQL |
Per mantenere i log binari in un cluster di database Aurora MySQL Non hai accesso ai file binlog per un cluster di database Aurora MySQL. Come risultato, devi selezionare un intervallo di tempo per mantenere i file binlog nel master di replica abbastanza a lungo per assicurare che le modifiche vengano applicate alla replica prima che il file binlog venga eliminato da Amazon RDS. Puoi mantenere i file binlog in un cluster di database Aurora MySQL fino a 90 giorni. Se stai impostando la replica con un database MySQL o un'istanza database RDS per MySQL come replica e il database per il quale stai creando la replica è di grandi dimensioni, seleziona un intervallo di tempo ampio per mantenere i file binlog finché la copia iniziale del database nella replica sia completa e il ritardo di replica sia pari a 0. Per impostare il periodo di conservazione dei log binari, usa la procedura mysql.rds_set_configuration e specifica il parametro di configurazione L'esempio seguente imposta il periodo di conservazione dei file binlog su 6 giorni:
Dopo l'inizio della replica, è possibile verificare che le modifiche siano state applicate alla replica eseguendo il comando Se questa impostazione non è specificata, verrà utilizzato il valore predefinito per Aurora MySQL ovvero 24 (1 giorno). Se si specifica un valore per |
RDS for MySQL |
Per mantenere i log binari in un'istanza database Amazon RDS Puoi mantenere i file dei registri binari in un'istanza database di Amazon RDS impostando le ore di conservazione del binlog allo stesso modo di un cluster di database Aurora MySQL, come descritto nella riga precedente. Puoi anche mantenere i file binlog in un'istanza database Amazon RDS creando una replica di lettura per l'istanza database. La replica di lettura è temporanea e ha solamente l'obiettivo di mantenere i file binlog. Dopo che la replica di lettura è stata creata, chiama la procedura mysql.rds_stop_replication nella replica di lettura. Mentre la replica è interrotta, Amazon RDS non elimina nessuno dei file binlog nel master di replica. Dopo aver impostato la replica con la replica permanente, puoi eliminare la replica di lettura quando il ritardo di replica (campo |
MySQL (esterno) |
Per mantenere i log binari in un database esterno MySQL; Siccome i file binlog in un database MySQL non sono gestiti da Amazon RDS, vengono mantenuti finché li elimini. Dopo l'inizio della replica, è possibile verificare che le modifiche siano state applicate alla replica eseguendo il comando |
3. Crea una copia o un dump della tua fonte di replica
Si utilizza un'istantanea, un clone o un dump della fonte di replica per caricare una copia di base dei dati sulla replica. Quindi si inizia a replicare da quel punto.
Utilizza le seguenti istruzioni per creare una copia o un dump della fonte di replica per il tuo motore di database.
Motore del database | Istruzioni |
---|---|
Aurora MySQL |
Per creare una copia di un cluster Aurora MySQL DB Seleziona uno dei seguenti metodi:
Per determinare il nome e la posizione del file binlog Seleziona uno dei seguenti metodi:
Per creare un dump di un cluster Aurora MySQL DB Se la destinazione della replica è un database MySQL esterno o un'istanza DB RDS for MySQL, è necessario creare un file di dump dal cluster Aurora DB. Assicurati di eseguire il
|
RDS for MySQL |
Per creare una snapshot di un'istanza database Amazon RDS Crea una replica di lettura dell'istanza database Amazon RDS. Per ulteriori informazioni, consulta Creazione di una replica di lettura nella Guida per l'utente di Amazon Relational Database Service.
|
MySQL (esterno) |
Per creare il dump di un database MySQL esterno
|
4. Carica il dump nella destinazione della replica (se necessario)
Se prevedi di caricare dati da un dump di un database MySQL esterno ad Amazon RDS, potresti voler creare un'istanza EC2 su cui copiare i file di dump. Quindi puoi caricare i dati nel tuo cluster DB o nell'istanza DB da quell'istanza EC2. Utilizzando questo approccio, puoi comprimere i file dump prima di copiarli nell'istanza EC2 per ridurre i costi di rete associati con la copia dei dati in Amazon RDS. Puoi anche crittografare il file o i file dump per assicurare i dati mentre vengono trasferiti nella rete.
Nota
Se crei un nuovo cluster Aurora MySQL DB come destinazione della replica, non è necessario caricare un file di dump:
-
È possibile eseguire il ripristino da uno snapshot del cluster DB per creare un nuovo cluster DB. Per ulteriori informazioni, consulta Ripristino da uno snapshot cluster database.
-
È possibile clonare il cluster DB di origine per creare un nuovo cluster DB. Per ulteriori informazioni, consulta Clonazione di un volume per un cluster di database Amazon Aurora.
-
È possibile migrare i dati da uno snapshot di un'istanza DB in un nuovo cluster DB. Per ulteriori informazioni, consulta Migrazione di dati a un cluster di database Amazon Aurora MySQL.
Utilizza le seguenti istruzioni per caricare il dump della fonte di replica nella destinazione di replica per il motore di database.
Motore del database | Istruzioni |
---|---|
Aurora MySQL |
Per caricare un dump in un cluster Aurora MySQL DB
|
RDS for MySQL |
Per caricare un dump in un'istanza database Amazon RDS
|
MySQL (esterno) |
Per caricare un dump in un database MySQL esterno Non è possibile caricare uno snapshot di database o di cluster di database in un database MySQL esterno. Devi utilizzare invece l'output dal comando
|
5. Creazione di un utente di replica sull’origine di replica
Crea un ID utente sull’origine utilizzato solamente per la replica. L'esempio seguente riguarda RDS for MySQL o database di origine MySQL esterni.
mysql>
CREATE USER 'repl_user
'@'domain_name
' IDENTIFIED BY 'password
';
Per i database di origine Aurora MySQL, il parametro del cluster skip_name_resolve
DB è impostato su 1
(ON
) e non può essere modificato, quindi è necessario utilizzare un indirizzo IP per l'host anziché un nome di dominio. Per ulteriori informazioni, consulta skip_name_resolve nella
mysql>
CREATE USER 'repl_user
'@'IP_address
' IDENTIFIED BY 'password
';
L'utente richiede i privilegi REPLICATION CLIENT
e REPLICATION SLAVE
. Concedi questi privilegi all'utente.
Se non hai bisogno di utilizzare la replica crittografata, richiedi le connessioni SSL per l'utente replica. Ad esempio, è possibile utilizzare una delle seguenti istruzioni per richiedere connessioni SSL sull'account utente. repl_user
GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '
repl_user
'@'IP_address
';
GRANT USAGE ON *.* TO '
repl_user
'@'IP_address
' REQUIRE SSL;
Nota
Se REQUIRE SSL
non è incluso, la connessione di replica potrebbe ridiventare una connessione non crittografata.
6. Abilitare la replica nel target di replica
Raccomandiamo di fare una snapshot manuale del cluster di database Aurora MySQL o del target di replica dell'istanza database RDS for MySQL, prima di abilitare la replica. Se c'è un problema e devi ristabilire la replica con il cluster di database o il target di replica dell'istanza database, puoi ripristinare il cluster di database o l'istanza database da questa snapshot invece di dover importare di nuovo i dati nel target di replica.
Utilizza le istruzioni seguenti per attivare la replica del motore di database.
Motore del database | Istruzioni |
---|---|
Aurora MySQL |
Per abilitare la replica da un cluster di database Aurora MySQL
Per utilizzare la crittografia SSL, imposta il valore finale su |
RDS for MySQL |
Per abilitare la replica da un'istanza database Amazon RDS
Per utilizzare la crittografia SSL, imposta il valore finale su |
MySQL (esterno) |
Per abilitare la replica da un database esterno MySQL;
|
Se la replica ha esito negativo, può verificarsi un notevole aumento di I/O non intenzionale sulla replica, che può compromettere le prestazioni. Se la replica non riesce o non è più necessaria, è possibile eseguire la stored procedure mysql.rds_reset_external_master (Aurora MySQL versione 2) o mysql.rds_reset_external_source (Aurora MySQL versione 3) per rimuovere la configurazione della replica.
Definire una posizione per arrestare la replica su una replica di lettura
In Aurora MySQL versione 3.04 e successive, puoi avviare una replica e quindi arrestarla in una posizione di file di log binario specifica mediante la stored procedure mysql.rds_start_replication_until (Aurora MySQL versione 3).
Per avviare la replica su una replica di lettura e arrestare la replica in corrispondenza di una posizione specifica
-
Utilizzando un client MySQL, connettiti alla replica del cluster Aurora MySQL DB come utente principale.
-
Eseguire la procedura archiviata mysql.rds_start_replication_until (Aurora MySQL versione 3).
L'esempio seguente avvia la replica e replica le modifiche fino a raggiungere la posizione
120
nel file di log binariomysql-bin-changelog.000777
. In caso di disaster recovery, presumere che la posizione120
si riferisca al momento immediatamente precedente l'errore.call mysql.rds_start_replication_until( 'mysql-bin-changelog.000777', 120);
La replica si arresta automaticamente quando viene raggiunto il punto di arresto. Viene generato il seguente evento RDS: Replication has been stopped since the replica reached the stop point specified by the
rds_start_replication_until stored procedure
.
Se si utilizza la replica basata su GTID, scegliere la stored procedure mysql.rds_start_replication_until_gtid (Aurora MySQL versione 3) invece della mysql.rds_start_replication_until (Aurora MySQL versione 3). Per ulteriori informazioni sulla replica basata su GTID, consultare Utilizzo della replica basata su GTID.
7. Monitora la replica
Quando imposti la replica MySQL con un cluster di database Aurora MySQL, devi monitorare gli eventi di failover per il cluster di database Aurora MySQL quando è il target di replica. Se accade un failover, il cluster di database che è il target di replica potrebbe essere ricreato in un nuovo host con un indirizzo di rete diverso. Per informazioni su come monitorare gli eventi di failover, consulta Utilizzo della notifica degli eventi di Amazon RDS.
È anche possibile monitorare quanto è indietro la destinazione della replica rispetto all'origine eseguendo la connessione alla destinazione della replica e il comando SHOW SLAVE STATUS
(Aurora MySQL versione 2) o SHOW REPLICA STATUS
(Aurora MySQL versione 3). Nell'output del comando, il campo Seconds Behind Master
indica quanto è indietro il target di replica rispetto al master di replica.
Sincronizzazione delle password tra origine di replica e destinazione
Quando si modificano gli account utente e le password nell'origine di replica utilizzando le istruzioni SQL, tali modifiche vengono replicate automaticamente nella destinazione di replica.
Se si utilizza l'API AWS Management Console AWS CLI, the o RDS per modificare la password principale sull'origine della replica, tali modifiche non vengono replicate automaticamente nella destinazione di replica. Se si desidera sincronizzare l'utente principale e la password principale tra il sistema di origine e quello di destinazione, è necessario apportare la stessa modifica alla destinazione di replica.
Fermare la replica tra Aurora e MySQL o tra Aurora e un altro cluster di database Aurora
Per fermare la replica dei log binari con un'istanza database MySQL, un database MySQL esterno o un altro cluster di database Aurora, segui questa procedura, che viene illustrata nel dettaglio nel seguente argomento.
1. Arrestare la replica dei log binari nella destinazione di replica
2. Disabilitare l'accesso binario alla fonte di replica
1. Arrestare la replica dei log binari nella destinazione di replica
Usa le seguenti istruzioni per arrestare la replica dei log binari del motore di database.
Motore del database | Istruzioni |
---|---|
Aurora MySQL |
Per arrestare la replica dei log binari in una destinazione di replica del cluster di database Aurora MySQL Esegui la connessione al cluster di database Aurora che è la destinazione della replica e chiama la procedura mysql.rds_stop_replication. |
RDS for MySQL |
Per arrestare la replica binlog in un'istanza database Amazon RDS Esegui la connessione all'istanza database RDS che è la destinazione della replica e chiama la procedura mysql.rds_stop_replication. |
MySQL (esterno) |
Per fermare la replica dei log binari in un database MySQL esterno Connettiti al database MySQL ed esegui il comando |
2. Disabilitare l'accesso binario alla fonte di replica
Usa le seguenti istruzioni per disattivare la registrazione dei log binari nell'origine della replica per il motore del database.
Motore del database | Istruzioni |
---|---|
Aurora MySQL |
Per disabilitare l'accesso binario in un cluster di database Amazon Aurora
|
RDS for MySQL |
Per disabilitare l'accesso binario in un'istanza database Amazon RDS Non è possibile abilitare l'accesso binario direttamente per un'istanza database Amazon RDS, ma è possibile abilitarlo procedendo come di seguito:
|
MySQL (esterno) |
Per disabilitare l'accesso binario a un database esterno MySQL Esegui la connessione al database MySQL e chiama il comando
|
Utilizzo di Amazon Aurora per dimensionare le letture per il database MySQL
Puoi utilizzare Amazon Aurora con l'istanza database MySQL per usufruire delle funzionalità di dimensionamento della lettura di Amazon Aurora ed espandere il reale carico di lavoro della tua istanza database MySQL. Per utilizzare Aurora per ridimensionare le operazioni di lettura dell'istanza database MySQL, crea un cluster di database Amazon Aurora MySQL e rendilo una replica di lettura per l'istanza database MySQL. Ciò si applica a un'istanza database RDS for MySQL o a un database MySQL in esecuzione esternamente a Amazon RDS.
Per informazioni su come creare un cluster di database Amazon Aurora, consulta Creazione di un cluster database Amazon Aurora.
Quando si configura la replica tra l'istanza database MySQL e il cluster di database Amazon Aurora, assicurarsi di seguire queste linee guida:
-
Utilizzare l'indirizzo dell'endpoint del cluster di database di Amazon Aurora quando si fa riferimento al cluster di database Amazon Aurora MySQL. Se si verifica un failover, la replica di Aurora promossa a istanza principale per il cluster di database Aurora MySQL continua a utilizzare l'indirizzo dell'endpoint del cluster di database.
-
Conservare i binlog sull'istanza di scrittura finché non si ha la conferma che siano stati applicati alla replica di Aurora. Questa manutenzione assicura il ripristino dell'istanza di lettura nel caso di errori.
Importante
Quando si utilizza la replica auto-gestita, si ha la responsabilità di monitorare e risolvere eventuali problemi di replica. Per ulteriori informazioni, consulta Diagnosi e risoluzione del ritardo tra repliche di lettura.
Nota
Le autorizzazioni richieste per avviare la replica su un cluster di database Aurora MySQL sono limitate e non disponibili per l'utente master Amazon RDS. Pertanto sarà necessario utilizzare le procedure mysql.rds_set_external_master (Aurora MySQL versione 2) o mysql.rds_set_external_source (Aurora MySQL versione 3) e mysql.rds_start_replication per impostare la replica tra il cluster di database Aurora MySQL e l'istanza database MySQL.
Avvio della replica tra un'istanza di origine esterna e un cluster di database Aurora MySQL
-
Rendere di sola lettura l'istanza database MySQL di origine:
mysql>
FLUSH TABLES WITH READ LOCK;mysql>
SET GLOBAL read_only = ON; -
Eseguire il comando
SHOW MASTER STATUS
nell'istanza database MySQL di origine per determinare la posizione di binlog. Viene restituito un output simile all'esempio seguente:File Position ------------------------------------ mysql-bin-changelog.000031 107 ------------------------------------
-
Copia il database dall'istanza database MySQL esterna al cluster di database Amazon Aurora MySQL utilizzando
mysqldump
. Per database di dimensioni particolarmente elevate, è possibile utilizzare la procedura in Importazione dei dati in un'istanza database MySQL o MariaDB riducendo i tempi di inattività nella Guida per l'utente di Amazon Relational Database Service.PerLinux, o: macOS Unix
mysqldump \ --databases <database_name> \ --single-transaction \ --compress \ --order-by-primary \ -u
local_user
\ -plocal_password
| mysql \ --host aurora_cluster_endpoint_address \ --port 3306 \ -uRDS_user_name
\ -pRDS_password
Per Windows:
mysqldump ^ --databases <database_name> ^ --single-transaction ^ --compress ^ --order-by-primary ^ -u
local_user
^ -plocal_password
| mysql ^ --host aurora_cluster_endpoint_address ^ --port 3306 ^ -uRDS_user_name
^ -pRDS_password
Nota
Assicurati che non siano presenti spazi tra l'opzione
-p
e la password immessa.Utilizza le opzioni
--host
,--user (-u)
,--port
e-p
nel comandomysql
per specificare il nome host, il nome utente e la password per eseguire la connessione al cluster di database Aurora. Il nome host è il nome DNS per l'endpoint del cluster di database Amazon Aurora, ad esempio,mydbcluster.cluster-123456789012.us-east-1.rds.amazonaws.com
. Il valore dell'endpoint è disponibile nei dettagli del cluster nella console di gestione Amazon RDS. -
Rendere nuovamente scrivibile l'istanza database MySQL di origine:
mysql>
SET GLOBAL read_only = OFF;mysql>
UNLOCK TABLES;Per ulteriori informazioni sulla creazione di backup da utilizzare con la replica, vedere Backing up a source or replica by making it read only
nella documentazione di MySQL. -
Nella console di gestione Amazon RDS aggiungi l'indirizzo IP del server che ospita il database MySQL di origine al gruppo di sicurezza VPC per il cluster di database Amazon Aurora. Per ulteriori informazioni sulla modifica di un gruppo di sicurezza VPC, consulta Gruppi di sicurezza per il VPC nella Guida per l'utente di Amazon Virtual Private Cloud.
Potrebbe anche essere necessario configurare la rete locale per consentire le connessioni dall'indirizzo IP del cluster di database Amazon Aurora, affinché possa comunicare con l'istanza di MySQL di origine. Per individuare l'indirizzo IP del cluster di database Amazon Aurora, utilizzare il comando
host
.host
aurora_endpoint_address
Il nome host è il nome DNS dell'endpoint del cluster di database Amazon Aurora.
-
Utilizzando il client scelto, eseguire la connessione all'istanza di MySQL esterna e creare un utente MySQL da utilizzare per la replica. Questo account viene utilizzato unicamente per la replica e deve essere limitato al dominio personale per aumentare la sicurezza. Di seguito è riportato un esempio.
CREATE USER '
repl_user
'@'mydomain.com
' IDENTIFIED BY 'password
'; -
Per un'istanza di MySQL esterna, concedere i privilegi
REPLICATION CLIENT
eREPLICATION SLAVE
all'utente della replica. Per concedere ad esempio i privilegiREPLICATION CLIENT
eREPLICATION SLAVE
su tutti i database per l'utente "repl_user
" del proprio dominio, eseguire questo comando.GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '
repl_user
'@'mydomain.com
' IDENTIFIED BY 'password
'; -
Acquisire uno snapshot manuale del cluster di database Aurora MySQL da impostare come replica di lettura prima di impostare la replica. Se è necessario ridefinire la replica con il cluster di database come replica di lettura, è possibile ripristinare il cluster di database Aurora MySQL da tale snapshot anziché dover importare i dati dall'istanza database MySQL in un nuovo cluster di database Aurora MySQL.
-
Configurare il cluster di database Amazon Aurora come replica. Esegui la connessione al cluster di database Amazon Aurora come utente master e identifica il database MySQL di origine come master di replica utilizzando le procedure mysql.rds_set_external_master (Aurora MySQL versione 2) o mysql.rds_set_external_source (Aurora MySQL versione 3) e mysql.rds_start_replication.
Utilizzare il nome e la posizione del file log principale, recuperati nella fase 2. Di seguito è riportato un esempio.
For Aurora MySQL version 2: CALL mysql.rds_set_external_master ('mymasterserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 0); For Aurora MySQL version 3: CALL mysql.rds_set_external_source ('mymasterserver.mydomain.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 0);
-
Nel cluster di database Amazon Aurora chiama la procedura mysql.rds_start_replication per avviare la replica.
CALL mysql.rds_start_replication;
Dopo aver definito la replica tra l'istanza database MySQL di origine e il cluster di database Amazon Aurora sarà possibile aggiungere le repliche di Aurora al cluster di database Amazon Aurora. È possibile quindi connettere le repliche di Aurora per il dimensionamento della lettura dei dati. Per informazioni sulla creazione di una replica di Aurora, consulta Aggiunta di repliche di Aurora a un cluster di database.
Ottimizzazione della replica dei log binari
Di seguito, è possibile imparare a ottimizzare le prestazioni di replica dei log binari e risolvere i problemi correlati in Aurora MySQL.
Suggerimento
Questa discussione presuppone che tu abbia familiarità con il meccanismo di replica dei log binari MySQL e del suo funzionamento. Per informazioni di base, consulta Implementazione della replica
Replica di log binari multithread
Con la replica del log binario multithread, un thread SQL legge gli eventi dal log di inoltro e li mette in coda per l'applicazione dei thread SQL worker. I thread di lavoro SQL sono gestiti da un thread coordinatore. Gli eventi di log binari vengono applicati in parallelo quando possibile.
La replica di log binari multithread è supportata in Aurora MySQL versione 3 e in Aurora MySQL versione 2.12.1 e successive.
Quando un'istanza DB Aurora MySQL è configurata per utilizzare la replica binaria dei log, per impostazione predefinita l'istanza di replica utilizza la replica a thread singolo per le versioni di Aurora MySQL precedenti alla 3.04. Per abilitare la replica multithread, si aggiorna il parametro replica_parallel_workers
a un valore maggiore di zero nel gruppo di parametri personalizzati.
Per Aurora MySQL versione 3.04 e successive, la replica è multithread per impostazione predefinita, con impostazione predefinita su. replica_parallel_workers
4
È possibile modificare questo parametro nel gruppo di parametri personalizzato.
Le opzioni di configurazione seguenti consentono di ottimizzare la replica multithread. Per informazioni sull'utilizzo, consulta Opzioni e variabili di replica e registrazione binaria
La configurazione ottimale dipende da diversi fattori. Ad esempio, le prestazioni per la replica dei log binari sono influenzate dalle caratteristiche del carico di lavoro del database e dalla classe di istanza database su cui è in esecuzione la replica. Pertanto, si consiglia di testare a fondo tutte le modifiche a questi parametri di configurazione prima di applicare nuove impostazioni dei parametri a un'istanza di produzione:
-
binlog_group_commit_sync_delay
-
binlog_group_commit_sync_no_delay_count
-
binlog_transaction_dependency_history_size
-
binlog_transaction_dependency_tracking
-
replica_preserve_commit_order
-
replica_parallel_type
-
replica_parallel_workers
In Aurora MySQL versione 3.06 e successive, è possibile migliorare le prestazioni per le repliche di log binari durante la replica di transazioni per tabelle di grandi dimensioni con più di un indice secondario. Questa funzionalità introduce un pool di thread per applicare le modifiche all'indice secondario in parallelo su una replica binlog. La funzionalità è controllata dal parametro del cluster aurora_binlog_replication_sec_index_parallel_workers
DB, che controlla il numero totale di thread paralleli disponibili per applicare le modifiche all'indice secondario. Il parametro è impostato su 0
(disabilitato) per impostazione predefinita. L'attivazione di questa funzionalità non richiede il riavvio dell'istanza. Per abilitare questa funzionalità, interrompi la replica in corso, imposta il numero desiderato di thread di lavoro paralleli e quindi riavvia la replica.
È inoltre possibile utilizzare questo parametro come variabile globale, dove n
è il numero di thread di lavoro paralleli:
SET global aurora_binlog_replication_sec_index_parallel_workers=
n
;
Ottimizzazione della replica binlog (Aurora MySQL 2.10 e versioni successive)
In Aurora MySQL 2.10 e versioni successive, Aurora applica automaticamente un'ottimizzazione nota come cache I/O binlog alla replica del log binario. Inserendo nella cache gli eventi binlog più recenti, questa ottimizzazione è progettata per migliorare le prestazioni del thread di dump di binlog limitando al contempo l'impatto sulle transazioni in primo piano sull'istanza di origine binlog.
Nota
Questa memoria utilizzata per questa funzione è indipendente dall'impostazione binlog_cache
MySQL.
Questa funzione non si applica alle istanze DB Aurora che utilizzano le classi di istanza db.t2
e db.t3
.
Non è necessario regolare alcun parametro di configurazione per attivare questa ottimizzazione. In particolare, se si regola il parametro di configurazioneaurora_binlog_replication_max_yield_seconds
su un valore diverso da zero nelle versioni Aurora MySQL precedenti, impostarlo su zero per Aurora MySQL 2.10 e versioni successive.
Le variabili di stato aurora_binlog_io_cache_reads
e aurora_binlog_io_cache_read_requests
sono disponibili in Aurora MySQL versione 2.10 e successive. Queste variabili di stato aiutano a monitorare la frequenza con cui i dati vengono letti dalla cache I/O binlog.
-
aurora_binlog_io_cache_read_requests
: mostra il numero di richieste di lettura I/O binlog dalla cache. -
aurora_binlog_io_cache_reads
: mostra il numero di letture I/O binlog che recuperano informazioni dalla cache.
La seguente query SQL calcola la percentuale di richieste di lettura binlog che sfruttano le informazioni memorizzate nella cache. In questo caso, più il rapporto è vicino a 100, migliore è.
mysql> SELECT (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='aurora_binlog_io_cache_reads') / (SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='aurora_binlog_io_cache_read_requests') * 100 as binlog_io_cache_hit_ratio; +---------------------------+ | binlog_io_cache_hit_ratio | +---------------------------+ | 99.99847949080622 | +---------------------------+
La funzione di cache I/O binlog include anche nuovi parametri relativi ai thread di dump di binlog. I thread di dump sono i thread creati quando le nuove repliche di binlog sono collegate all'istanza fonte binlog.
I parametri del thread di dump vengono stampati nel log del database ogni 60 secondi con il prefisso [Dump thread
metrics]
. I parametri includono informazioni per ogni replica binlog, ad esempio Secondary_id
, Secondary_uuid
, il nome del file binlog e la posizione in cui ogni replica sta leggendo. I parametri includono anche Bytes_behind_primary
che rappresenta la distanza in byte tra l'origine della replica e la replica. Questo parametro misura il ritardo del thread I/O di replica. Tale cifra è diversa dal ritardo del thread dell'applicatore SQL della replica, rappresentato dal parametro seconds_behind_master
sulla replica binlog. È possibile determinare se le repliche di binlog stiano recuperando l'origine o rimangano indietro controllando se la distanza diminuisce o aumenta.
Ottimizzazione della replica binlog (Aurora MySQL versione 2 fino alla 2.09)
Per ottimizzare la replica dei log binari per Aurora MySQL, è possibile regolare i seguenti parametri di ottimizzazione a livello di cluster. Questi parametri consentono di specificare il giusto equilibrio tra latenza nell'istanza di origine dei log binari e ritardo di replica.
-
aurora_binlog_use_large_read_buffer
-
aurora_binlog_read_buffer_size
-
aurora_binlog_replication_max_yield_seconds
Nota
Per i cluster compatibili con MySQL 5.7, è possibile utilizzare questi parametri in Aurora MySQL versione 2 fino alla 2.09.*. In Aurora MySQL versione 2.10.0 e successive, questi parametri sono sostituiti dall'ottimizzazione della cache I/O binlog e non è necessario utilizzarli.
Argomenti
Panoramica delle ottimizzazioni del buffer di lettura di grandi dimensioni e di max-yield
È possibile che si verifichi una riduzione delle prestazioni di replica dei log binari quando il thread di dump dei log binari accede al volume del cluster Aurora mentre il cluster elabora un numero elevato di transazioni. È possibile utilizzare i parametri aurora_binlog_use_large_read_buffer
, aurora_binlog_replication_max_yield_seconds
e aurora_binlog_read_buffer_size
per ridurre al minimo questo tipo di conflitto.
Supponi di avere una situazione in cui aurora_binlog_replication_max_yield_seconds
è impostato su maggiore di 0 e il file binlog corrente del thread di dump è attivo. In questo caso, il thread di dump dei log binari attende fino a un numero specificato di secondi affinché il file binlog corrente venga riempito dalle transazioni. Questo periodo di attesa evita conflitti che possono derivare dalla replica di ciascun evento dei log binari singolarmente. Tuttavia, in questo modo aumenta il ritardo di replica per le repliche dei log binari. Tali repliche possono rimanere indietro rispetto all'origine dello stesso numero di secondi dell'impostazione aurora_binlog_replication_max_yield_seconds
.
Il file binlog corrente indica il file binlog che il thread di dump sta attualmente leggendo per eseguire la replica. Consideriamo che un file binlog è attivo quando il file binlog è in aggiornamento o aperto per essere aggiornato dalle transazioni in entrata. Dopo che Aurora MySQL ha riempito il file binlog attivo, MySQL crea e passa a un nuovo file binlog. Il vecchio file binlog diventa inattivo. Non viene più aggiornato dalle transazioni in entrata.
Nota
Prima di modificare questi parametri, misurare la latenza e la velocità effettiva delle transazioni nel tempo. È possibile che le prestazioni di replica dei log binari siano stabili e abbiano una bassa latenza anche in caso di conflitti occasionali.
aurora_binlog_use_large_read_buffer
-
Se questo parametro è impostato su 1, Aurora MySQL ottimizza la replica dei log binari in base alle impostazioni dei parametri
aurora_binlog_read_buffer_size
eaurora_binlog_replication_max_yield_seconds
. Seaurora_binlog_use_large_read_buffer
è 0, Aurora MySQL ignora i valori dei parametriaurora_binlog_read_buffer_size
eaurora_binlog_replication_max_yield_seconds
. aurora_binlog_read_buffer_size
-
I thread di dump binari con buffer di lettura più grande riducono al minimo il numero di operazioni di I/O di lettura leggendo più eventi per ogni I/O. Il parametro
aurora_binlog_read_buffer_size
imposta la dimensione del buffer di lettura. Il buffer di lettura di grandi dimensioni può ridurre i conflitti di log binari per carichi di lavoro che generano una grande quantità di dati binlog.Nota
Questo parametro ha effetto solo quando anche il cluster ha l'impostazione
aurora_binlog_use_large_read_buffer=1
.L'aumento delle dimensioni del buffer di lettura non influisce sulle prestazioni della replica dei log binari. I thread di dump dei log binari non attendono l'aggiornamento delle transazioni per riempire il buffer di lettura.
aurora_binlog_replication_max_yield_seconds
-
Se il carico di lavoro richiede una bassa latenza delle transazioni ed è possibile tollerare alcuni ritardi di replica, è possibile aumentare il parametro
aurora_binlog_replication_max_yield_seconds
. Questo parametro controlla la proprietà di rendimento massimo della replica dei log binari nel cluster.Nota
Questo parametro ha effetto solo quando anche il cluster ha l'impostazione
aurora_binlog_use_large_read_buffer=1
.
Aurora MySQL riconosce immediatamente qualsiasi modifica al valore del parametro aurora_binlog_replication_max_yield_seconds
. Non è necessario riavviare l'istanza database. Tuttavia, quando si attiva questa impostazione, il thread di dump inizia a produrre solo quando il file dei log binari corrente raggiunge la dimensione massima di 128 MB e viene ruotato in un nuovo file.
Parametri correlati
Utilizza i seguenti parametri del cluster di database per attivare l'ottimizzazione binlog.
Parametro | Default | Valori validi | Descrizione |
---|---|---|---|
aurora_binlog_use_large_read_buffer
|
1 | 0, 1 | Interruttore per attivare la funzionalità di miglioramento della replica. Quando il valore è 1, il thread di dump dei log binari utilizza aurora_binlog_read_buffer_size per la replica dei log binari, altrimenti viene utilizzata la dimensione del buffer predefinita (8 K). Non utilizzato in Aurora MySQL versione 3. |
aurora_binlog_read_buffer_size
|
5242880 | 8192-536870912 | Dimensione del buffer di lettura utilizzata dal thread di dump dei log binari quando il parametro aurora_binlog_use_large_read_buffer è impostato su 1. Non utilizzato in Aurora MySQL versione 3. |
aurora_binlog_replication_max_yield_seconds
|
0 | 0-36000 |
Per Aurora MySQL version 2.07.*, il valore massimo accettato è 45. È possibile ottimizzarlo con un valore più alto nella versione 2.09 e successive. Per la versione 2, questo parametro funziona solo quando il parametro |
Attivazione del meccanismo max-yield di replica dei log binari
È possibile attivare l'ottimizzazione max-yield di replica dei log binari come descritto di seguito. In questo modo si riduce al minimo la latenza per le transazioni sull'istanza di origine binlog. Tuttavia, è possibile che si verifichi un ritardo di replica più elevato.
Per attivare l'ottimizzazione max-yield dei log binari per un cluster Aurora MySQL
-
Creare o modificare un gruppo di parametri del cluster di database utilizzando le seguenti impostazioni dei parametri:
-
aurora_binlog_use_large_read_buffer
: si attiva con il valoreON
o 1. -
aurora_binlog_replication_max_yield_seconds
: specificare un valore maggiore di 0.
-
-
Associare il gruppo di parametri del cluster di database al cluster Aurora MySQL che funge da origine binlog. A tale scopo, seguire la procedura descritta in Utilizzo di gruppi di parametri.
-
Verificare che la modifica del parametro abbia effetto. A tale scopo, eseguire la seguente query sull'istanza di origine binlog.
SELECT @@aurora_binlog_use_large_read_buffer, @@aurora_binlog_replication_max_yield_seconds;
L'output visualizzato dovrebbe essere simile al seguente.
+---------------------------------------+-----------------------------------------------+ | @@aurora_binlog_use_large_read_buffer | @@aurora_binlog_replication_max_yield_seconds | +---------------------------------------+-----------------------------------------------+ | 1 | 45 | +---------------------------------------+-----------------------------------------------+
Disattivare l'ottimizzazione max-yield di replica dei log binari
È possibile disattivare l'ottimizzazione max-yield di replica dei log binari come descritto di seguito. In questo modo si riduce al minimo il ritardo di replica. Tuttavia, è possibile che si verifichi una latenza maggiore per le transazioni sull'istanza di origine binlog.
Per disattivare l'ottimizzazione max-yield dei log binari per un cluster Aurora MySQL
-
Verificare che il gruppo di parametri del cluster di database associato al cluster Aurora MySQL abbia il parametro
aurora_binlog_replication_max_yield_seconds
impostato su 0 Per ulteriori informazioni sull'impostazione dei parametri di configurazione mediante i gruppi di parametri, consultare Utilizzo di gruppi di parametri. -
Verificare che la modifica del parametro abbia effetto. A tale scopo, eseguire la seguente query sull'istanza di origine binlog.
SELECT @@aurora_binlog_replication_max_yield_seconds;
L'output visualizzato dovrebbe essere simile al seguente.
+-----------------------------------------------+ | @@aurora_binlog_replication_max_yield_seconds | +-----------------------------------------------+ | 0 | +-----------------------------------------------+
Disattivazione del buffer di lettura di grandi dimensioni
È possibile disattivare l'intera funzionalità di buffer di lettura di grandi dimensioni come di seguito.
Per disattivare il buffer di lettura dei log binari di grandi dimensioni per un cluster Aurora MySQL
-
Reimpostare
aurora_binlog_use_large_read_buffer
suOFF
o 0.Verificare che il gruppo di parametri del cluster di database associato al cluster Aurora MySQL abbia il parametro
aurora_binlog_use_large_read_buffer
impostato su 0 Per ulteriori informazioni sull'impostazione dei parametri di configurazione mediante i gruppi di parametri, consultare Utilizzo di gruppi di parametri. -
Nell'istanza di origine binlog eseguire la query seguente.
SELECT @@ aurora_binlog_use_large_read_buffer;
L'output visualizzato dovrebbe essere simile al seguente.
+---------------------------------------+ | @@aurora_binlog_use_large_read_buffer | +---------------------------------------+ | 0 | +---------------------------------------+
Configurazione del file di log binario avanzato
Il file di log binario avanzato riduce il sovraccarico delle prestazioni di elaborazione causato dall'attivazione del file di log binario, che in alcuni casi può arrivare fino al 50%. Con il file di log binario avanzato, questo sovraccarico può essere ridotto a circa il 13%. Per ridurre il sovraccarico, il file di log binario avanzato scrive i log binari e i log delle transazioni nello spazio di archiviazione in parallelo, il che riduce al minimo i dati scritti al momento del commit della transazione.
L'utilizzo del file di log binario avanzato migliora anche i tempi di ripristino del database dopo riavvii e failover fino al 99% rispetto al file di log binario della community MySQL. Il file di log binario avanzato è compatibile con i carichi di lavoro esistenti basati sul file di log binario e viene utilizzato nello stesso modo in cui si utilizza il file di log binario della community MySQL.
Enhanced binlog è disponibile su Aurora MySQL versione 3.03.1 e successive.
Argomenti
Configurazione dei parametri del file di log binario avanzato
È possibile passare dal file di log binario della community MySQL al file di log binario avanzato attivando/disattivando i relativi parametri. Gli utenti esistenti di file di log binario possono continuare a leggere e consumare i file di log binario senza interruzioni nella sequenza di file di log binario.
Per attivare il file di log binario avanzato | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametro | Predefinito | Descrizione | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
binlog_format
|
– | Impostare il parametro binlog_format sul formato di registrazione binaria desiderato per attivare il file di log binario avanzato. Assicurarsi che binlog_format parameter non sia impostato su OFF. Per ulteriori informazioni, consultare Configurazione del log binario di Aurora MySQL. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
aurora_enhanced_binlog
|
0 |
Impostare il valore di questo parametro su 1 nel gruppo di parametri del cluster database associato al cluster Aurora MySQL. Quando si modifica il valore di questo parametro, è necessario riavviare l'istanza di scrittura quando il valore di DBClusterParameterGroupStatus viene visualizzato come pending-reboot . |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
binlog_backup
|
1 |
Disattivare questo parametro per attivare il file di log binario avanzato. A tale scopo, impostare il valore di questo parametro su 0 . |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
binlog_replication_globaldb
|
1 |
Disattivare questo parametro per attivare il file di log binario avanzato. A tale scopo, impostare il valore di questo parametro su 0 . |
Importante
È possibile disattivare i parametri binlog_backup
e binlog_replication_globaldb
solo in caso di utilizzo del file di log binario avanzato.
Per disattivare il file di log binario avanzato | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametro | Descrizione | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
aurora_enhanced_binlog
|
Impostare il valore di questo parametro su 0 nel gruppo di parametri del cluster database associato al cluster Aurora MySQL. Ogni volta che si modifica il valore di questo parametro, è necessario riavviare l'istanza di scrittura quando il valore di DBClusterParameterGroupStatus viene visualizzato come pending-reboot . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
binlog_backup
|
Attivare questo parametro quando si disattiva il file di log binario avanzato. A tale scopo, impostare il valore di questo parametro su 1 . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
binlog_replication_globaldb
|
Attivare questo parametro quando si disattiva il file di log binario avanzato. A tale scopo, impostare il valore di questo parametro su 1 . |
Per verificare se il file di log binario avanzato è attivo, usare il seguente comando nel client MySQL:
mysql>
show status like 'aurora_enhanced_binlog';+------------------------+--------+ | Variable_name | Value | +------------------------+--------+ | aurora_enhanced_binlog | ACTIVE | +------------------------+--------+ 1 row in set (0.00 sec)
Quando il file di log binario avanzato è attivo, l'output mostra ACTIVE
per aurora_enhanced_binlog
.
Altri parametri correlati
Quando si attiva il file di log binario avanzato, questa operazione interessa i seguenti parametri:
Il parametro
max_binlog_size
è visibile ma non modificabile. Il relativo valore predefinito134217728
viene impostato automaticamente su268435456
quando il file di log binario avanzato è attivato.A differenza file di log binario avanzato della community MySQL,
binlog_checksum
non agisce come parametro dinamico quando il file di log binario avanzato è attivato. Affinché la modifica a questo parametro abbia effetto, è necessario riavviare manualmente il cluster database anche quandoApplyMethod
èimmediate
.Il valore impostato per il parametro
binlog_order_commits
non ha alcun effetto sull'ordine dei commit quando il file di log binario avanzato è attivato. I commit vengono sempre ordinati senza ulteriori implicazioni in termini di prestazioni.
Differenze tra file di log binario avanzato e file di log binario avanzato della community MySQL
Il binlog avanzato interagisce in modo diverso con i cloni, i backup e il database globale Aurora rispetto al binlog MySQL della community. Si consiglia di analizzare le seguenti differenze prima di utilizzare il file di log binario avanzato.
I file binlog avanzati del cluster DB di origine non sono disponibili su un cluster DB clonato.
I file binlog avanzati non sono inclusi nei backup di Aurora. Pertanto, i file di log binario avanzati del cluster database di origine non sono disponibili dopo il ripristino di un cluster database nonostante il relativo periodo di conservazione impostato.
Se utilizzati con un database globale Aurora, i file di log binario avanzati del cluster database primario non vengono replicati nel cluster database nelle regioni secondarie.
Examples (Esempi)
Negli esempi seguenti vengono illustrate le differenze tra file di log binario avanzati e file di log binario della community MySQL.
Su un cluster database ripristinato o clonato
Quando il file di log binario avanzato è attivato, i file di log binario storici non sono disponibili nel cluster database ripristinato o clonato. Dopo un'operazione di ripristino o clonazione, se binlog è attivato, il nuovo cluster DB inizia a scrivere la propria sequenza di file binlog, a partire da 1 (.000001). mysql-bin-changelog
Per attivare il file di log binario avanzato dopo un'operazione di ripristino o clonazione, impostare i parametri del cluster database richiesti sul cluster database ripristinato o clonato. Per ulteriori informazioni, consulta Configurazione dei parametri del file di log binario avanzato.
Esempio Operazione di clonazione o ripristino eseguita quando il file di log binario avanzato è attivato
Cluster database di origine:
mysql>
show binary logs;+----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | | mysql-bin-changelog.000003 | 156 | No | | mysql-bin-changelog.000004 | 156 | No | --> Enhanced Binlog turned on | mysql-bin-changelog.000005 | 156 | No | --> Enhanced Binlog turned on | mysql-bin-changelog.000006 | 156 | No | --> Enhanced Binlog turned on +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)
In un cluster database ripristinato o clonato, non viene eseguito il backup dei file di log binario quando è attivato il file di log binario avanzato. Per evitare discontinuità nei dati del file di log binario, non sono disponibili nemmeno i file di log binario scritti prima di attivare il file di log binario avanzato.
mysql>
show binary logs;+----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | --> New sequence of Binlog files +----------------------------+-----------+-----------+ 1 row in set (0.00 sec)
Esempio Operazione di clonazione o ripristino eseguita quando il binlog avanzato è disattivato
Cluster DB di origine:
mysql>
show binary logs;+----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000003 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)
In un cluster database ripristinato o clonato, sono disponibili file di log binario scritti dopo aver disattivato il file di log binario avanzato.
mysql>
show binary logs;+----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 1 row in set (0.00 sec)
Su un database globale Amazon Aurora
Su un database globale Amazon Aurora, i dati del file di log binario del cluster database primario non vengono replicati nei cluster database secondari. Dopo un processo di failover tra regioni, i dati del file di log binario non sono disponibili nel cluster database primario appena promosso. Se binlog è attivato, il cluster DB appena promosso avvia la propria sequenza di file binlog, a partire da 1 (mysql-bin-changelog.000001).
Per attivare il file di log binario avanzato dopo il failover, è necessario impostare i parametri del cluster database richiesti sul cluster database secondario. Per ulteriori informazioni, consulta Configurazione dei parametri del file di log binario avanzato.
Esempio L'operazione di failover del database globale viene eseguita quando il file di log binario avanzato è attivato
Vecchio cluster database primario (prima del failover):
mysql>
show binary logs;+----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | | mysql-bin-changelog.000003 | 156 | No | | mysql-bin-changelog.000004 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000005 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000006 | 156 | No | --> Enhanced Binlog enabled +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)
Nuovo cluster database primario (dopo il failover):
I file di log binario non vengono replicati nelle regioni secondarie quando il file di log binario avanzato è attivato. Per evitare discontinuità nei dati del file di log binario, i file di log binario scritti prima di attivare il file di log binario avanzato non sono disponibili.
mysql>
show binary logs;+----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | --> Fresh sequence of Binlog files +----------------------------+-----------+-----------+ 1 row in set (0.00 sec)
Esempio L'operazione di failover del database globale viene eseguita quando il file di log binario avanzato è disattivato
Cluster database di origine:
mysql>
show binary logs;+----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000003 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)
Cluster database ripristinato o clonato:
I file di log binario scritti dopo aver disattivato il file di log binario avanzato vengono replicati e sono disponibili nel cluster database appena promosso.
mysql>
show binary logs;+----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 3 rows in set (0.00 sec)
CloudWatch Metriche di Amazon per binlog migliorato
Le seguenti CloudWatch metriche di Amazon vengono pubblicate solo quando è attivato il binlog avanzato.
CloudWatch metrica | Descrizione | unità |
---|---|---|
ChangeLogBytesUsed | Quantità di spazio di archiviazione in byte utilizzato dal file di log binario avanzato. | Byte |
ChangeLogReadIOPS | Numero di operazioni I/O di lettura eseguite nel file di log binario avanzato in intervalli di 5 minuti. | Conteggio per 5 minuti |
ChangeLogWriteIOPS | Numero di operazioni I/O di scrittura su disco eseguite nel file di log binario avanzato in intervalli di 5 minuti. | Conteggio per 5 minuti |
Limitazioni del file di log binario avanzato
Le seguenti limitazioni si applicano ai cluster database Amazon Aurora quando il file di log binario avanzato è attivato.
-
Enhanced binlog è supportato solo su Aurora MySQL versione 3.03.1 e successive.
-
I file di log binario avanzati scritti sul cluster database primario non vengono copiati nei cluster database clonati o ripristinati.
-
Se utilizzati con un database globale Amazon Aurora, i file di log binario avanzati del cluster database primario non vengono replicati nei cluster database secondari. Pertanto, dopo il processo di failover, i dati dei file di log binario storici non sono disponibili nel nuovo cluster database primario.
-
I seguenti parametri di configurazione del file di log binario vengono ignorati:
-
binlog_group_commit_sync_delay
-
binlog_group_commit_sync_no_delay_count
-
binlog_max_flush_queue_time
-
-
Non è possibile eliminare o rinominare una tabella danneggiata in un database. Per eliminare queste tabelle, puoi contattare. AWS Support
-
La cache I/O del file di log binario è disabilitata quando il file di log binario avanzato è attivato. Per ulteriori informazioni, consulta Ottimizzazione della replica dei log binari.
Nota
Il file di log binario avanzato è caratterizzato da miglioramenti delle prestazioni di lettura simili a quelli della cache I/O del file di log binario e da ulteriori ottimizzazioni delle prestazioni di scrittura.
-
La funzionalità Backtrack non è supportata. Il file di log binario avanzato non può essere attivato in un cluster database nelle seguenti condizioni:
Cluster database con la funzionalità Backtrack abilitata.
Cluster DB in cui la funzionalità backtrack era precedentemente abilitata, ma ora è disabilitata.
Cluster database ripristinato da un cluster database di origine o da uno snapshot con la funzionalità Backtrack abilitata.