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à.
Configurazione della replica ritardata con MySQL
Puoi usare la replica ritardata come strategia per il disaster recovery. Con la replica ritardata puoi specificare il tempo minimo, in secondi, di ritardo della replica rispetto all'origine nella replica di lettura. In caso di emergenza, come ad esempio l'eliminazione accidentale di una tabella, completa la seguente procedura per risolvere velocemente il problema:
-
Arresta la replica sulla replica di lettura prima che la modifica che ha provocato il problema venga inviata.
Usa la procedura archiviata mysql.rds_stop_replication per arrestare la replica.
-
Avvia la replica e specifica che la replica si arresta automaticamente in corrispondenza di una posizione del file di log.
Puoi specificare una posizione prima dell'emergenza utilizzando la procedura archiviata mysql.rds_start_replication_until.
-
Utilizza le istruzioni contenute in Promozione di una replica di lettura a istanza database standalone per promuovere la replica di lettura a nuova istanza database di origine.
Nota
-
Su RDS per MySQL 8.4, la replica ritardata è supportata per MySQL 8.4.3 e versioni successive. Su RDS per MySQL 8,0, la replica ritardata è supportata per MySQL 8.0.28 e versioni successive. Su RDS per MySQL 5.7, la replica ritardata è supportata per MySQL 5.7.44 e versioni successive.
-
Utilizza le procedure archiviate per configurare la replica ritardata. Non puoi configurare la replica ritardata tramite la Console di gestione AWS, la AWS CLI o l'API di Amazon RDS.
-
È possibile utilizzare la replica basata su identificatori di transazione globali (GTID) in una configurazione di replica ritardata per le seguenti versioni:
-
RDS per MySQL versione 5.7.44 e versioni successive alla 5.7
-
RDS per MySQL versione 8.0.28 e versioni successive alla 8.0
-
RDS per MySQL versione 8.4.3 e versioni successive alla 8.4
Se si utilizza la replica basata su GTID, scegliere la stored procedure mysql.rds_start_replication_until_gtid invece della mysql.rds_start_replication_until. Per ulteriori informazioni sulla replica basata su GTID, consultare Utilizzo della replica basata su GTID.
-
Argomenti
Configurazione della replica ritardata durante la creazione della replica di lettura
Per configurare la replica ritardata per eventuali repliche di lettura future create da un'istanza database, esegui la stored procedure mysql.rds_set_configuration con il parametro target delay.
Per configurare le replica ritardata durante la creazione della replica di lettura
-
Utilizzando un client MySQL, connettersi all'istanza database MySQL che sarà l'origine delle repliche di lettura come l'utente master.
-
Eseguire la procedura archiviata mysql.rds_set_configuration con il parametro
target delay.Ad esempio, eseguire la seguente procedura archiviata per specificare che la replica è ritardata per almeno un'ora (3.600 secondi) per le repliche di lettura create dall'istanza database corrente.
call mysql.rds_set_configuration('target delay', 3600);Nota
Dopo aver eseguito questa stored procedure, le eventuali repliche di lettura create tramite la AWS CLI o l'API di Amazon RDS vengono configurate con la replica ritardata per il numero specificato di secondi.
Modifica della replica ritardata per una replica di lettura esistente
Per modificare la replica ritardata per una replica di lettura esistente, esegui la stored procedure mysql.rds_set_source_delay.
Per modificare la replica ritardata per una replica di lettura esistente
-
Utilizzando un client MySQL, connettersi alla replica di lettura come utente master.
-
Usa la procedura archiviata mysql.rds_stop_replication per arrestare la replica.
-
Eseguire la procedura archiviata mysql.rds_set_source_delay.
Ad esempio, eseguire la seguente stored procedure per specificare che la replica sulla replica di lettura è ritardata per almeno un'ora (3600 secondi).
call mysql.rds_set_source_delay(3600); -
Usare la procedura archiviata mysql.rds_start_replication per avviare la replica.
Definire una posizione per arrestare la replica su una replica di lettura
Dopo aver arrestato la replica sulla replica di lettura, puoi avviare la replica e poi arrestarla in corrispondenza della posizione del file di log binario specificato utilizzando la procedura archiviata mysql.rds_start_replication_until.
Per avviare la replica su una replica di lettura e arrestare la replica in corrispondenza di una posizione specifica
-
Utilizzando un client MySQL, connettersi all'istanza database MySQL di origine come utente master.
-
Eseguire la procedura archiviata mysql.rds_start_replication_until.
L'esempio seguente avvia la replica e replica le modifiche fino a raggiungere la posizione
120nel file di log binariomysql-bin-changelog.000777. In caso di disaster recovery, presumere che la posizione120si 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.
Promozione di una replica di lettura
Dopo l'arresto della replica, in uno scenario di disaster recovery, puoi promuovere la replica di lettura come nuova istanza database di origine. Per informazioni sulla promozione di una replica di lettura, consulta Promozione di una replica di lettura a istanza database standalone.