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 della posizione del file di log binario con un'istanza di origine esterna.
Puoi configurare la replica tra un'istanza DB RDS for My SQL o MariaDB e un'istanza My SQL o MariaDB esterna ad Amazon utilizzando la replica binaria dei file di log. RDS
Argomenti
Prima di iniziare
È possibile configurare la replica utilizzando la posizione del file di log binario delle transazioni replicate.
Le autorizzazioni necessarie per avviare la replica su un'istanza Amazon RDS DB sono limitate e non disponibili per il tuo utente RDS master Amazon. Per questo motivo, assicurati di utilizzare i mysql.rds_start_replication comandi Amazon RDS or, and per configurare la replica tra il tuo database live e il tuo RDS database Amazon.
Per impostare il formato di registrazione binario per un database My SQL o MariaDB, aggiorna il parametro. binlog_format
Se l'istanza DB utilizza il gruppo di parametri di istanza DB predefinito, crea un nuovo gruppo di parametri DB per modificare il parametro. binlog_format
In MariadB e SQL My 8.0 e versioni precedenti, il valore predefinito è. binlog_format
MIXED
Tuttavia, puoi anche impostare binlog_format
su ROW
o STATEMENT
se hai bisogno di un formato di registro binario (binlog) specifico. Riavvia l'istanza database affinché venga applicata la modifica. In My SQL 8.4 e versioni successive, il valore predefinito è. binlog_format
ROW
Per ulteriori informazioni sull'impostazione del parametro binlog_format
, consulta Configurazione di MySQL RDS per la registrazione binaria MySQL per database Single-AZ Per informazioni sulle implicazioni dei diversi tipi di SQL replica My, vedere Vantaggi e svantaggi della replica basata su istruzioni e su righe nella documentazione
Configurazione della replica della posizione del file di log binario con un'istanza di origine esterna.
Segui queste linee guida quando configuri un'istanza di origine esterna e una replica su AmazonRDS:
Monitora gli eventi di failover per l'istanza Amazon RDS DB che è 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 binlog sull'istanza di origine finché non si ha la conferma che siano stati applicati alla replica. Conservando questi file, si è certi di poter ripristinare l'istanza di origine in caso di errori.
Attiva i backup automatici sulla tua istanza Amazon RDS DB. L'attivazione dei backup automatici assicura il ripristino della replica a un punto temporale specifico nel caso fosse necessario risincronizzare l'istanza di origine e la replica. Per informazioni su backup e point-in-time ripristino, consulta. Backup, ripristino ed esportazione dei dati
Per configurare la replica della posizione del file di log binario con un'istanza di origine esterna
-
Rendi di sola lettura l'istanza My SQL o MariaDB di origine.
mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON;
-
Esegui il
SHOW MASTER STATUS
comando sull'istanza My SQL o MariaDB di origine per determinare la posizione del binlog.Viene restituito un output simile all'esempio seguente.
File Position ------------------------------------ mysql-bin-changelog.000031 107 ------------------------------------
-
Copia il database dall'istanza esterna all'istanza Amazon RDS DB utilizzando
mysqldump
. Per database di dimensioni particolarmente elevate, è possibile utilizzare la procedura in Importazione di dati in un database Amazon RDS for MySQL con tempi di inattività ridotti.In Linux, macOS, oppure Unix:
mysqldump --databases
database_name
\ --single-transaction \ --compress \ --order-by-primary \ -ulocal_user
\ -plocal_password
| mysql \ --host=hostname \ --port=3306 \ -uRDS_user_name
\ -pRDS_password
In Windows:
mysqldump --databases
database_name
^ --single-transaction ^ --compress ^ --order-by-primary ^ -ulocal_user
^ -plocal_password
| mysql ^ --host=hostname ^ --port=3306 ^ -uRDS_user_name
^ -pRDS_password
Nota
Assicurarsi che non siano presenti spazi tra l'opzione
-p
e la password immessa.Per specificare il nome host, il nome utente, la porta e la password per connettersi alla tua istanza Amazon RDS DB
--host
--user (-u)
, usa le-p
opzioni,--port
e nelmysql
comando. Il nome host è il nome Domain Name Service (DNS) dell'endpoint dell'istanza Amazon RDS DB, ad esempiomyinstance.123456789012.us-east-1.rds.amazonaws.com
. È possibile trovare il valore dell'endpoint nei dettagli dell'istanza nella AWS Management Console. -
Rendi nuovamente scrivibile l'SQListanza My o MariaDB di origine.
mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;
-
Nel AWS Management Console, aggiungi l'indirizzo IP del server che ospita il database esterno al gruppo di sicurezza Virtual Private Cloud (VPC) per l'istanza Amazon RDS DB. Per ulteriori informazioni sulla modifica di un gruppo VPC di sicurezza, consulta Security groups for your VPC nella Amazon Virtual Private Cloud User Guide.
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 della tua istanza Amazon RDS DB. Lo fai in modo che la tua rete locale possa comunicare con la tua istanza esterna My SQL o MariaDB. Per trovare l'indirizzo IP dell'istanza Amazon RDS DB, usa il
host
comando.host
db_instance_endpoint
Il nome host è il DNS nome dell'endpoint dell'istanza Amazon RDS DB.
-
-
Utilizzando il client scelto, eseguire la connessione all'istanza esterna e creare un utente da utilizzare per la replica. Utilizza questo account unicamente per la replica e limitalo 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.
-
Per l'istanza 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
'; -
Trasforma l'istanza Amazon RDS DB in una replica. Per farlo, connettiti prima all'istanza Amazon RDS DB come utente principale. Quindi identifica il database My SQL o MariaDB esterno come istanza di origine utilizzando il comando or. Utilizzare il nome e la posizione del file di log master recuperati nella fase 2. I seguenti comandi sono esempi.
Il mio SQL 8.4
CALL mysql.rds_set_external_source ('
mysourceserver.mydomain.com
', 3306, 'repl_user
', 'password
', 'mysql-bin-changelog.000031
',107
,1
);MariaDB e My 8.0 e 5.7 SQL
CALL mysql.rds_set_external_master ('
mymasterserver.mydomain.com
', 3306, 'repl_user
', 'password
', 'mysql-bin-changelog.000031
',107
,1
);Nota
Su RDS for MySQL, puoi scegliere di utilizzare la replica ritardata eseguendo invece la procedura o la stored procedure. mysql.rds_set_external_source_with_delay (per le mie versioni principali 8.4 e successive) RDS SQL mysql.rds_set_external_master_with_delay (per MariaDB e per le mie versioni principali 8.0 e precedenti) RDS RDS SQL On RDS for MySQL, uno dei motivi per utilizzare la replica ritardata è attivare il disaster recovery con la stored procedure. Attualmente, RDS per MariadB supporta la replica ritardata ma non supporta la procedura.
mysql.rds_start_replication_until
-
Sull'istanza Amazon RDS DB, emetti il mysql.rds_start_replication comando per avviare la replica.
CALL mysql.rds_start_replication;