Come posso utilizzare i log binari di Amazon RDS per un’istanza database attiva MySQL per la replica in un'istanza di standby on-premise?
Come posso replicare un Amazon Relational Database Service (Amazon RDS) per un’istanza database MySQL utilizzando log binari in un ambiente esterno on-premise?
Breve descrizione
Per migrare i dati da Amazon RDS per MySQL a un server di database on-premise, crea innanzitutto una replica di lettura su AWS. Quindi, cambia la destinazione di replica dalla replica di lettura Amazon RDS per MySQL con il server on-premise.
Se utilizzi la replica basata su GTID, consulta Configurazione della replica della posizione del file di log binario con un'istanza di origine esterna.
Risoluzione
1. Verifica che i backup automatici siano attivati per l'istanza database che desideri replicare. In questo esempio, l'istanza database è RDS-active.
Nota: il periodo minimo di conservazione dei backup è di un giorno.
2. Crea una replica di lettura dell'istanza database utilizzando la stessa configurazione. In questo esempio, la replica è RDS-standby.
3. Accedi all'istanza database RDS-Standby e verifica che la replica sia stata eseguita con RDS-active:
mysql> show slave status \G
Nota: seconds_behind_master deve essere 0, il che significa che non vi è alcun ritardo nella replica.
4. Interrompi la replica in RDS-standby:
mysql> call mysql.rds_stop_replication;
5. Registra i dati dalla replica, quindi annota i parametri -log_file e -log_position:
mysql> show slave status \G
Nota: -log_file è il valore di Relay_Master_Log\ _File e -log_position è il valore di Exec_Master_Log_Pos.
6. Esci dal terminale e usa mysqldump (o un'utilità simile) per creare un backup di RDS-Standby che verrà replicato sul server di destinazione. In questo esempio, il server on-premise di destinazione è MySQL-Target.
$ mysqldump -h hostname -u username -p dbname > backup_file_name.sql
7. Dopo aver creato il backup, trasferisci il file di backup sul server on-premise di destinazione accedendo a MySQL-Target.
8. Crea un nuovo database, quindi ripristina il database utilizzando dumpfile nella nuova istanza database esterna:
$ mysql -h hostname -u username -p dbname < backup_file_name.sql
9. Accedi all'istanza database RDS-active, configura un utente di replica, quindi concedi all'utente i privilegi necessari. Assicurati di sostituire repl_user con il tuo nome utente di replica.
mysql> create user repl_user@'%' identified by 'repl_user'; mysql>grant replication slave, replication client on *.* to repl_user@'%'; mysql>show grants for repl_user@'%';
Nota: per ulteriori informazioni, consulta Replica tra Aurora e MySQL o tra Aurora e un altro cluster di database Aurora (replica dei log binari).
10. Accedi all'istanza database di destinazione, quindi arresta il server MySQL.
11. Modifica i parametri del file my.cnf file in modo che indichino l'ID univoco del server e il nome del database che desideri replicare dall'istanza database. Ad esempio, server_id=2 e replicate-do-db=test.
12. Salva il file.
13. Riavvia il server MySQL in MySQL-target.
14. Stabilisci una connessione all'istanza database RDS-active. Per effettuare questa operazione, esegui il seguente comando su MySQL-target:
mysql> change master to master_host='rds-endpoint',master_user='repl_user', master_password='password', master_log_file='mysql-bin.000001', master_log_pos= 107;
15. Verifica che MySQL-target possa connettersi a RDS-active.
Nota: se utilizzi Amazon Elastic Compute Cloud (Amazon EC2) come istanza MySQL esterna, devi autorizzare le connessioni dal gruppo di sicurezza o dall'indirizzo IP nel gruppo di sicurezza dell'istanza database RDS-active. Se utilizzi un server MySQL esterno, esegui telnet per testare la connettività. Per ulteriori informazioni, consulta In che modo è possibile risolvere i problemi durante la connessione all'istanza database di Amazon RDS?
RDS-Endpoint è l'endpoint dell'istanza database RDS-active. Il nome utente e la password sono gli stessi nome utente e password che hai creato nel passaggio 9. MASTER_LOG_FILE e MASTER_LOG_POS sono i valori annotati al passaggio 5.
16. Accedi a MySQL-target e avvia la replica:
mysql> start slave;
Verifica che la replica sia sincronizzata tra RDS-active e MySQL-target:
mysql> Show slave status\G
17. Quando i secondi di ritardo rispetto al master sono uguali a zero, è possibile eliminare l'istanza database RDS-standby.
Informazioni correlate
How do I migrate to an Amazon RDS or Aurora MySQL-Compatible Edition DB instance using AWS DMS?
Esportazione di dati da un'istanza database MySQL tramite la replica
Video correlati
Contenuto pertinente
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata 2 mesi fa
- AWS UFFICIALEAggiornata 2 anni fa