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 multi-source-replication per Amazon RDS for My SQL
Con la replica da più fonti, puoi configurare un'istanza Amazon RDS for My SQL DB come replica che riceve eventi di log binari da più di un'istanza DB RDS for My SQL source. La replica da più fonti è supportata RDS per le istanze My SQL DB che eseguono le seguenti versioni del motore:
-
Tutte le versioni di My 8.4 SQL
8.0.35 e versioni secondarie successive
5.7.44 e versioni secondarie successive
Per informazioni su My SQL Multi-Source Replication, consulta My SQL Multi-Source Replication
Casi d'uso per la replica da più fonti
I seguenti casi sono buoni candidati per l'utilizzo della replica da più fonti su for My: RDS SQL
-
Applicazioni che devono unire o combinare più shard su istanze DB separate in un unico shard.
-
Applicazioni che devono generare report da dati consolidati da più fonti.
-
Requisiti per creare backup consolidati a lungo termine dei dati distribuiti tra più istanze di My RDS SQL DB.
Prerequisiti per la replica da più fonti
Prima di configurare la replica da più fonti, completare i seguenti prerequisiti.
Assicurati che ogni origine RDS per l'istanza My SQL DB abbia i backup automatici abilitati. L'abilitazione dei backup automatici abilita la registrazione binaria. Per informazioni su come abilitare i backup automatici, consulta. Abilitazione dei backup automatici
Per evitare errori di replica, si consiglia di bloccare le operazioni di scrittura sulle istanze DB di origine. È possibile farlo impostando il
read-only
parametro suON
in un gruppo di parametri personalizzato allegato all'istanza DB RDS for My SQL source. È possibile utilizzare AWS Management Console o the AWS CLI per creare un nuovo gruppo di parametri personalizzato o per modificarne uno esistente. Per ulteriori informazioni, consulta Creazione di un gruppo di parametri DB in Amazon RDS e Modifica dei parametri in un gruppo di parametri DB in Amazon RDS .Per ogni istanza DB di origine, aggiungi l'indirizzo IP dell'istanza al gruppo di sicurezza Amazon virtual private cloud (VPC) per l'istanza DB multi-source. Per identificare l'indirizzo IP di un'istanza DB di origine, puoi eseguire il comando
dig
. Esegui il comando da un'EC2istanza Amazon nella VPC stessa istanza DB multisorgente di destinazione.RDS Endpoint
Per ogni istanza DB di origine, utilizza un client per connetterti all'istanza DB e crea un utente del database con i privilegi richiesti per la replica, come nell'esempio seguente.
CREATE USER '
repl_user
' IDENTIFIED BY 'password
'; GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user
';
Configurazione dei canali di replica da più fonti per le istanze My DB RDS SQL
La configurazione dei canali di replica da più fonti è simile alla configurazione della replica da un'unica fonte. Per la replica da più fonti, è innanzitutto necessario attivare la registrazione binaria sull'istanza di origine. Quindi, si importano i dati dalle sorgenti alla replica da più fonti. Quindi, si avvia la replica da ciascuna fonte utilizzando le coordinate del log binario o utilizzando il posizionamento GTID automatico.
Per configurare un'istanza RDS for My SQL DB come replica multisorgente di due o più istanze For My SQL DB, RDS procedi nel seguente modo.
Argomenti
Fase 1: Importazione dei dati dalle istanze DB di origine alla replica da più fonti
Esegui i passaggi seguenti su ogni istanza DB di origine.
Prima di importare i dati da un'origine alla replica da più fonti, determina il file di registro binario e la posizione correnti eseguendo il SHOW MASTER
STATUS
comando. Prendi nota di questi dettagli per utilizzarli nel passaggio successivo. In questo output di esempio, il file è mysql-bin-changelog.000031
e la posizione è107
.
File Position ----------------------------------- mysql-bin-changelog.000031 107 -----------------------------------
Ora copia il database dall'istanza DB di origine alla replica multisorgente utilizzandomysqldump
, come nell'esempio seguente.
mysqldump --databases database_name \ --single-transaction \ --compress \ --order-by-primary \ -u
RDS_user_name
\ -pRDS_password
\ --host=RDS Endpoint
| mysql \ --host=RDS Endpoint
\ --port=3306 \ -uRDS_user_name
\ -pRDS_password
Dopo aver copiato il database, è possibile impostare il parametro di sola lettura OFF
su nell'istanza DB di origine.
Passaggio 2: avviare la replica dalle istanze DB di origine alla replica multisorgente
Per ogni istanza DB di origine, utilizza le credenziali dell'utente principale per connetterti all'istanza ed esegui le due stored procedure seguenti. Queste stored procedure configurano la replica su un canale e avviano la replica. Questo esempio utilizza il nome e la posizione del file binlog dell'output di esempio del passaggio precedente.
CALL mysql.rds_set_external_source_for_channel('
mysourcehost.example.com
', 3306, 'repl_user
', 'password
', 'mysql-bin-changelog.000031
',107
, 1, 'channel_1
'); CALL mysql.rds_start_replication_for_channel('channel_1
');
Per ulteriori informazioni sull'utilizzo di queste stored procedure e di altre per configurare e gestire i canali di replica, vedere. Gestione della replica da più fonti
Utilizzo di filtri con replica da più fonti
È possibile utilizzare i filtri di replica per specificare con quali database e tabelle vengono replicati in una replica da più fonti. I filtri di replica possono includere database e tabelle nella replica o escluderli dalla replica. Per ulteriori informazioni sui filtri di replica, vedere. Configurazione dei filtri di replica con My SQL
Con la replica da più fonti, puoi configurare i filtri di replica a livello globale o a livello di canale. Il filtraggio a livello di canale è disponibile solo con le istanze DB supportate che eseguono la versione 8.0 o la versione 8.4. Gli esempi seguenti mostrano come configurare i filtri a livello globale o a livello di canale.
Tieni presente i seguenti requisiti e comportamenti con il filtraggio nella replica da più fonti:
Sono obbligatorie le virgolette (``) attorno ai nomi dei canali.
Se modificate i filtri di replica nel gruppo di parametri, le repliche da più fonti
sql_thread
per tutti i canali con aggiornamenti vengono riavviate per applicare le modifiche in modo dinamico. Se un aggiornamento riguarda un filtro globale, tutti i canali di replica nello stato di esecuzione vengono riavviati.Tutti i filtri globali vengono applicati prima di qualsiasi filtro specifico del canale.
Se un filtro viene applicato globalmente e a livello di canale, viene applicato solo il filtro a livello di canale. Ad esempio, se i filtri lo sono
replicate_ignore_db="db1,`channel_22`:db2"
, allorareplicate_ignore_db
set todb1
viene applicato a tutti i canali tranne echannel_22
ignora solo lechannel_22
modifiche apportate da.db2
Esempio 1: impostazione di un filtro globale
Nell'esempio seguente, il temp_data
database è escluso dalla replica in ogni canale.
In Linux, macOS, oppure Unix:
aws rds modify-db-parameter-group \ --db-parameter-group-name myparametergroup \ --parameters "ParameterName=replicate-ignore-db,ParameterValue='temp_data',ApplyMethod=immediate"
Esempio 2: impostazione di un filtro a livello di canale
Nell'esempio seguente, le modifiche dal sample22
database sono incluse solo nel canale. channel_22
Allo stesso modo, le modifiche dal sample99
database sono incluse solo nel canalechannel_99
.
In Linux, macOS, oppure Unix:
aws rds modify-db-parameter-group \ --db-parameter-group-name myparametergroup \ --parameters "ParameterName=replicate-do-db,ParameterValue='\`channel_22\`:sample22,\`channel_99\`:sample99',ApplyMethod=immediate"
Monitoraggio dei canali di replica da più fonti
È possibile monitorare singoli canali in una replica da più fonti utilizzando i seguenti metodi:
Per monitorare lo stato di tutti i canali o di un canale specifico, connettiti alla replica multisorgente ed esegui il comando or.
SHOW REPLICA STATUS
SHOW REPLICA STATUS FOR CHANNEL '
Per ulteriori informazioni, vedere Verifica dello stato della replicachannel_name
'nella documentazione personale. SQL Per ricevere una notifica quando un canale di replica viene avviato, interrotto o rimosso, utilizzate la notifica RDS degli eventi. Per ulteriori informazioni, consulta Utilizzo delle notifiche di RDS eventi di Amazon.
Per monitorare il ritardo per un canale specifico, controllate la relativa
ReplicationChannelLag
metrica. I punti dati per questa metrica hanno un periodo di 60 secondi (1 minuto) e sono disponibili per 15 giorni. Per individuare il ritardo del canale di replica per un canale, utilizzate l'identificatore di istanza e il nome del canale di replica. Per ricevere una notifica quando questo ritardo supera una determinata soglia, puoi impostare un allarme. CloudWatch Per ulteriori informazioni, consulta Monitoraggio dei parametri di RDSAmazon con Amazon CloudWatch.
Considerazioni e best practice per la replica da più fonti
Prima di utilizzare la replica da più fonti su RDS for MySQL, esamina le seguenti considerazioni e procedure consigliate:
-
Assicurati che un'istanza DB configurata come replica da più fonti disponga di risorse sufficienti, come velocità effettiva e memoriaCPU, e che consenta di gestire il carico di lavoro IOPS da più istanze di origine.
-
Monitora regolarmente l'utilizzo delle risorse sulla replica da più fonti e regola la configurazione dello storage o dell'istanza per gestire il carico di lavoro senza sovraccaricare le risorse.
-
È possibile configurare la replica multithread su una replica da più fonti impostando la variabile di sistema su un valore maggiore di.
replica_parallel_workers
0
In questo caso, il numero di thread assegnati a ciascun canale è il valore di questa variabile, più un thread di coordinamento per gestire i thread dell'applicatore. -
Configura i filtri di replica in modo appropriato per evitare conflitti. Per replicare un intero database su un altro database su una replica, è possibile utilizzare l'opzione.
--replicate-rewrite-db
Ad esempio, è possibile replicare tutte le tabelle del database A nel database B su un'istanza di replica. Questo approccio può essere utile quando tutte le istanze di origine utilizzano la stessa convenzione di denominazione dello schema. Per informazioni sull'--replicate-rewrite-db
opzione, consulta Opzioni e variabili del server di replica nella documentazionepersonale. SQL -
Per evitare errori di replica, evita di scrivere sulla replica. Si consiglia di abilitare il
read_only
parametro sulle repliche da più fonti per bloccare le operazioni di scrittura. In questo modo è possibile eliminare i problemi di replica causati da operazioni di scrittura in conflitto. -
Per aumentare le prestazioni delle operazioni di lettura, ad esempio ordinamenti e join con carichi elevati, eseguite sulla replica da più fonti, è consigliabile utilizzare Optimized Reads. RDS Questa funzionalità può essere utile per le interrogazioni che dipendono da tabelle temporanee di grandi dimensioni o da file di ordinamento. Per ulteriori informazioni, consulta Miglioramento delle prestazioni delle query per RDS for My SQL con Amazon RDS Optimized Reads.
-
Per ridurre al minimo il ritardo nella replica e migliorare le prestazioni di una replica da più fonti, è consigliabile abilitare scritture ottimizzate. Per ulteriori informazioni, consulta Miglioramento delle prestazioni di scrittura con RDS Optimized Writes for My SQL.
-
Esegui operazioni di gestione (come la modifica della configurazione) su un canale alla volta ed evita di apportare modifiche a più canali da più connessioni. Queste pratiche possono portare a conflitti nelle operazioni di replica. Ad esempio, l'esecuzione
rds_skip_repl_error_for_channel
simultanea dirds_start_replication_for_channel
procedure da più connessioni può causare il salto di eventi su un canale diverso da quello previsto. -
Puoi abilitare i backup su un'istanza di replica da più fonti ed esportare i dati da quell'istanza in un bucket Amazon S3 per archiviarli a lungo termine. Tuttavia, è importante configurare anche i backup con una conservazione appropriata sulle singole istanze di origine. Per informazioni sull'esportazione dei dati delle istantanee in Amazon S3, consulta. Esportazione di dati di snapshot DB su Amazon S3 per Amazon RDS
-
Per distribuire il carico di lavoro di lettura su una replica da più fonti, puoi creare repliche di lettura da una replica da più fonti. È possibile posizionare queste repliche di lettura in diversi modi Regioni AWS in base ai requisiti dell'applicazione. Per ulteriori informazioni sulle repliche di lettura, consulta Utilizzo delle repliche di My SQL read.
Limitazioni per la replica da più fonti su for My RDS SQL
Le seguenti limitazioni si applicano alla replica da più fonti su for My: RDS SQL
-
Attualmente, RDS for My SQL supporta la configurazione di un massimo di 15 canali per una replica multisorgente.
-
Un'istanza di replica di lettura non può essere configurata come replica da più fonti.
-
Per configurare la replica da più fonti RDS per My SQL running engine versione 5.7, è necessario abilitare Performance Schema sull'istanza di replica. L'attivazione di Performance Schema è facoltativa RDS per My SQL running engine versione 8.0 o 8.4.
-
RDSPer la versione 5.7 di My SQL running engine, i filtri di replica si applicano a tutti i canali di replica. RDSPer la versione 8.0 o 8.4 di for My SQL running engine, puoi configurare filtri che si applicano a tutti i canali di replica o ai singoli canali.
-
Il ripristino di un'RDSistantanea o l'esecuzione di un Point-in-time-Restore (PITR) non ripristinano le configurazioni dei canali di replica da più fonti.
-
Quando si crea una replica di lettura di una replica da più fonti, vengono replicati solo i dati dell'istanza da più fonti. Non ripristina alcuna configurazione dei canali.
-
My SQL non supporta la configurazione di un numero diverso di parallel worker per ogni canale. Ogni canale riceve lo stesso numero di worker paralleli in base al
replica_parallel_workers
valore.
Le seguenti limitazioni aggiuntive si applicano se la destinazione di replica da più fonti è un cluster DB Multi-AZ:
È necessario configurare un canale come sorgente RDS per My SQL instance prima che si verifichino operazioni di scrittura su quell'istanza.
-
Ogni origine RDS per My SQL instance deve avere la replica GTID basata abilitata.
-
Un evento di failover sul cluster DB rimuove la configurazione di replica da più fonti. Il ripristino di tale configurazione richiede la ripetizione dei passaggi di configurazione.