Configurazione della replica basata su GTID con un'istanza di origine esterna - 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 basata su GTID con un'istanza di origine esterna

Puoi impostare la replica basata su identificatori di transazione globali (GTID) da un'istanza MariaDB esterna nella versione 10.0.24 o successiva in un'istanza database RDS for MariaDB. Seguire queste linee guida quando si imposta un'istanza di origine esterna e una replica su Amazon RDS:

  • Monitora gli eventi di failover per l'istanza database RDS for MariaDB che rappresenta la tua replica. In caso di failover, l'istanza database che rappresenta la replica potrebbe essere ricreata in un nuovo host con un indirizzo di rete diverso. Per informazioni su come monitorare gli eventi di failover, consulta Utilizzo delle notifiche di RDS eventi di Amazon.

  • Conservare i log binari (binlog) sull'istanza di origine finché non si ha la conferma che siano stati applicati alla replica. Questa manutenzione assicura il ripristino dell'istanza di origine nel caso di errori.

  • Attivare i backup automatici sull'istanza database MariaDB in Amazon RDS. L'attivazione dei backup automatici assicura il ripristino della replica in un determinato "point in time" nel caso fosse necessario risincronizzare l'istanza di origine e la replica. Per informazioni sui backup e sul ripristino point-in-time, consulta Backup, ripristino ed esportazione dei dati.

Nota

Le autorizzazioni necessarie per avviare la replica in un'istanza database MariaDB sono limitate e non disponibili per l'utente master Amazon RDS. Per questo motivo, devi usare i comandi Amazon RDS, mysql.rds_set_external_master_gtid e mysql.rds_start_replication per configurare la replica tra il database live e il database di RDS for MariaDB.

Per avviare la replica tra un'istanza di origine esterna e un'istanza database MariaDB in Amazon RDS, attieniti alla procedura seguente.

Per avviare la replica
  1. Rendere di sola lettura l'istanza MariaDB di origine:

    mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON;
  2. Ottenere il GTID corrente dell'istanza MariaDB esterna. A tale scopo, utilizzare mysql o l'editor di query scelto per eseguire SELECT @@gtid_current_pos;.

    Il formato del GTID è il seguente: <domain-id>-<server-id>-<sequence-id>. Un tipico GTID è simile a 0-1234510749-1728. Per ulteriori informazioni sui GTID e sulle parti da cui è composto, consulta la pagina Global Transaction ID nella documentazione di MariaDB.

  3. Copiare il database dall'istanza MariaDB esterna all'istanza database MariaDB tramite mysqldump. Per database di dimensioni particolarmente elevate, è possibile utilizzare la procedura in Importazione dei dati in un database Amazon RDS MariaDB o MySQL con tempi di inattività ridotti.

    Per LinuxmacOS, oUnix:

    mysqldump \ --databases database_name \ --single-transaction \ --compress \ --order-by-primary \ -u local_user \ -plocal_password | mysql \ --host=hostname \ --port=3306 \ -u RDS_user_name \ -pRDS_password

    Per Windows:

    mysqldump ^ --databases database_name ^ --single-transaction ^ --compress ^ --order-by-primary \ -u local_user \ -plocal_password | mysql ^ --host=hostname ^ --port=3306 ^ -u RDS_user_name ^ -pRDS_password
    Nota

    Assicurarsi che non siano presenti spazi tra l'opzione -p e la password immessa.

    Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.

    Usare le opzioni --host, --user (-u), --port e -p nel comando mysql per specificare il nome host, il nome utente, la porta e la password per la connessione all'istanza database MariaDB. Il nome host è il nome DNS dell'endpoint dell'istanza database MariaDB, ad esempio myinstance.123456789012.us-east-1.rds.amazonaws.com. Puoi trovare il valore dell'endpoint è disponibile nei dettagli dell'istanza, nella console di gestione Amazon RDS.

  4. Rendi nuovamente scrivibile l'istanza MariaDB di origine.

    mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;
  5. Nella Console di gestione di Amazon RDS aggiungi l'indirizzo IP del server che ospita il database MariaDB esterno al gruppo di sicurezza VPC per l'istanza database MariaDB. Per ulteriori informazioni sulla modifica di un gruppo di sicurezza VPC, consulta la sezione relativa ai Gruppi di sicurezza per il VPC nella Guida per l'utente di Amazon Virtual Private Cloud.

    L'indirizzo IP può cambiare quando vengono soddisfatte le seguenti condizioni:

    • Si sta utilizzando un indirizzo IP pubblico per la comunicazione tra l'istanza di origine esterna e l'istanza database.

    • L'istanza di origine esterna è stata arrestata e riavviata.

    Se queste condizioni vengono soddisfatte, verificare l'indirizzo IP prima di aggiungerlo.

    Potrebbe anche essere necessario configurare la rete locale per consentire le connessioni dall'indirizzo IP dell'istanza database MariaDB affinché possa comunicare con l'istanza database MariaDB esterna. Per individuare l'indirizzo IP dell'istanza database MariaDB, usa il comando host.

    host db_instance_endpoint

    Il nome host è il nome DNS dell'endpoint dell'istanza database MariaDB.

  6. Utilizzando il client scelto, eseguire la connessione all'istanza database MariaDB esterna e creare un utente MariaDB 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';
    Nota

    Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.

  7. Per un'istanza MariaDB esterna, concedere i privilegi REPLICATION CLIENT e REPLICATION SLAVE all'utente della replica. Per concedere ad esempio i privilegi REPLICATION CLIENT e REPLICATION 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';
  8. Configurare l'istanza database MariaDB come replica. Connettersi all'istanza database MariaDB come utente master e identificare il database MariaDB esterno come istanza origine di replica usando il comando mysql.rds_set_external_master_gtid. Utilizzare il GTID determinato alla fase 2. Di seguito è riportato un esempio.

    CALL mysql.rds_set_external_master_gtid ('mymasterserver.mydomain.com', 3306, 'repl_user', 'password', 'GTID', 0);
    Nota

    Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.

  9. Nell'istanza database MariaDB, emettere il comando mysql.rds_start_replication per avviare la replica.

    CALL mysql.rds_start_replication;