Configurazione della replica ritardata con MySQL - Amazon Relational Database Service

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:

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.

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
  1. Utilizzando un client MySQL, connettersi all'istanza database MySQL che sarà l'origine delle repliche di lettura come l'utente master.

  2. 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
  1. Utilizzando un client MySQL, connettersi alla replica di lettura come utente master.

  2. Usa la procedura archiviata mysql.rds_stop_replication per arrestare la replica.

  3. 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);
  4. 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
  1. Utilizzando un client MySQL, connettersi all'istanza database MySQL di origine come utente master.

  2. Eseguire la procedura archiviata mysql.rds_start_replication_until.

    L'esempio seguente avvia la replica e replica le modifiche fino a raggiungere la posizione 120 nel file di log binario mysql-bin-changelog.000777. In caso di disaster recovery, presumere che la posizione 120 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.

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.