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à.
Gestione della replica da più fonti
Le seguenti stored procedure configurano e gestiscono i canali di replica su una replica multi-sorgente RDS for MySQL. Per ulteriori informazioni, consulta Configurazione multi-source-replication per RDS for MySQL.
Queste stored procedure sono disponibili solo con le istanze DB RDS for MySQL che eseguono le seguenti versioni del motore:
8.0.35 e versioni secondarie successive
5.7.44 e versioni secondarie successive
Nota
Sebbene questa documentazione faccia riferimento alle istanze DB di origine come RDS per istanze DB MySQL, queste procedure funzionano anche per le istanze MySQL eseguite esternamente ad Amazon RDS.
Argomenti
- mysql.rds_next_source_log_for_channel
- mysql.rds_reset_external_source_for_channel
- mysql.rds_set_external_source_for_channel
- mysql.rds_set_external_source_with_auto_position_for_channel
- mysql.rds_set_external_source_with_delay_for_channel
- mysql.rds_set_source_auto_position_for_channel
- mysql.rds_set_source_delay_for_channel
- mysql.rds_skip_repl_error_for_channel
- mysql.rds_start_replication_for_channel
- mysql.rds_start_replication_until_for_channel
- mysql.rds_start_replication_until_gtid_for_channel
- mysql.rds_stop_replication_for_channel
mysql.rds_next_source_log_for_channel
Modifica la posizione del log dell'istanza DB di origine all'inizio del log binario successivo sull'istanza DB di origine per il canale. Utilizzate questa procedura solo se ricevete l'errore di I/O di replica 1236 su una replica da più fonti.
Sintassi
CALL mysql.rds_next_source_log_for_channel(
curr_master_log
,channel_name
);
Parametri
-
curr_master_log
-
L'indice del file di log di origine corrente. Ad esempio, se il file corrente è denominato
mysql-bin-changelog.012345
, l'indice è 12345. Per determinare il nome del file di log di origine corrente, esegui il comandoSHOW REPLICA STATUS FOR CHANNEL '
e visualizza il campochannel_name
'Source_Log_File
.Nota
Versioni precedenti di MySQL utilizzate
SHOW SLAVE STATUS
al posto diSHOW REPLICA STATUS
. Se si utilizza una versione MySQL prima della 8.0.23, utilizzareSHOW SLAVE STATUS
. -
nome_canale
-
Il nome del canale di replica sulla replica multisorgente. Ogni canale di replica riceve gli eventi di log binario da un'unica istanza DB RDS for MySQL di origine in esecuzione su un host e una porta specifici.
Note per l'utilizzo
La procedura mysql.rds_next_source_log_for_channel
deve essere eseguita dall'utente master. Se si verifica un errore IO_Thread, ad esempio, è possibile utilizzare questa procedura per ignorare tutti gli eventi nel file di registro binario corrente e riprendere la replica dal file di registro binario successivo per il canale specificato in. channel_name
Esempio
Supponiamo che la replica fallisca su un canale su una replica con più sorgenti. L'esecuzione SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G
sulla replica da più fonti restituisce il seguente risultato:
mysql> SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G *************************** 1. row *************************** Replica_IO_State: Waiting for source to send event Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com Source_User: ReplicationUser Source_Port: 3306 Connect_Retry: 60 Source_Log_File: mysql-bin-changelog.012345 Read_Source_Log_Pos: 1219393 Relay_Log_File: replica-relay-bin.000003 Relay_Log_Pos: 30223388 Relay_Source_Log_File: mysql-bin-changelog.012345 Replica_IO_Running: No Replica_SQL_Running: Yes Replicate_Do_DB:. . . Last_IO_Errno: 1236 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.' Last_SQL_Errno: 0 Last_SQL_Error: . . Channel_name: channel_1 . . -- Some fields are omitted in this example output
Il campo Last_IO_Errno
mostra che l'istanza riceve l'errore I/O 1236. Il campo Source_Log_File
mostra che il nome di file è mysql-bin-changelog.012345
, il che significa che l'indice del file di log è 12345
. Per risolvere l'errore, puoi chiamare mysql.rds_next_source_log_for_channel
con i seguenti parametri:
CALL mysql.rds_next_source_log_for_channel(12345,'channel_1');
Nota
Versioni precedenti di MySQL utilizzate SHOW SLAVE STATUS
al posto di SHOW REPLICA STATUS
. Se si utilizza una versione MySQL prima della 8.0.23, utilizzare SHOW SLAVE STATUS
.
mysql.rds_reset_external_source_for_channel
Interrompe il processo di replica sul canale specificato e rimuove il canale e le configurazioni associate dalla replica da più fonti.
Importante
Per eseguire questa procedura, è necessario abilitare autocommit
. Per abilitarlo, impostare il parametro autocommit
su 1
. Per ulteriori informazioni sulla modifica dei parametri, consulta Modifica di parametri in un gruppo di parametri del database.
Sintassi
CALL mysql.rds_reset_external_source_for_channel (
channel_name
);
Parametri
-
nome_canale
-
Il nome del canale di replica sulla replica multisorgente. Ogni canale di replica riceve gli eventi di log binario da un'unica istanza DB RDS for MySQL di origine in esecuzione su un host e una porta specifici.
Note per l'utilizzo
La procedura mysql.rds_reset_external_source_for_channel
deve essere eseguita dall'utente master. Questa procedura elimina tutti i log di inoltro che appartengono al canale da rimuovere.
mysql.rds_set_external_source_for_channel
Configura un canale di replica su un'istanza DB RDS for MySQL per replicare i dati da un'altra istanza DB RDS for MySQL.
Importante
Per eseguire questa procedura, è necessario abilitare autocommit
. Per abilitarlo, impostare il parametro autocommit
su 1
. Per ulteriori informazioni sulla modifica dei parametri, consulta Modifica di parametri in un gruppo di parametri del database.
Nota
È possibile utilizzare invece la mysql.rds_set_external_source_with_delay_for_channel stored procedure per configurare questo canale con la replica ritardata.
Sintassi
CALL mysql.rds_set_external_source_for_channel (
host_name
,host_port
,replication_user_name
,replication_user_password
,mysql_binary_log_file_name
,mysql_binary_log_file_location
,ssl_encryption
,channel_name
);
Parametri
-
host_name
-
Il nome host o l'indirizzo IP dell'istanza DB di origine RDS for MySQL.
-
host_port
-
La porta utilizzata dall'istanza DB di origine RDS per MySQL. Se la configurazione della rete include la replica della porta Secure Shell (SSH) che converte il numero di porta, specifica il numero di porta esposto da SSH.
-
replication_user_name
-
L'ID di un utente con
REPLICATION CLIENT
eREPLICATION SLAVE
le autorizzazioni sull'istanza DB di origine RDS for MySQL. Si consiglia di fornire un account utilizzato esclusivamente per la replica con l'istanza DB di origine. -
replication_user_password
-
La password dell'ID utente specificata in
replication_user_name
. -
mysql_binary_log_file_name
-
Il nome del log binario sull'istanza DB di origine che contiene le informazioni di replica.
-
mysql_binary_log_file_location
-
La posizione nel log binario
mysql_binary_log_file_name
a partire dalla quale la replica inizia a leggere le informazioni a essa relative.È possibile determinare il nome e la posizione del file binlog eseguendolo
SHOW MASTER STATUS
sull'istanza DB di origine. -
ssl_encryption
-
Un valore che specifica se la crittografia Secure Socket Layer (SSL) è utilizzata sulla connessione di replica. 1 indica che la crittografia SSL deve essere utilizzata; 0 specifica che la crittografia non deve essere utilizzata. Il valore predefinito è 0.
Nota
L'opzione
MASTER_SSL_VERIFY_SERVER_CERT
non è supportata. Questa opzione è impostata su 0, il che significa che la connessione è crittografata, ma i certificati non sono verificati. -
nome_canale
-
Il nome del canale di replica. Ogni canale di replica riceve gli eventi di log binario da un'unica istanza DB RDS for MySQL di origine in esecuzione su un host e una porta specifici.
Note per l'utilizzo
La procedura mysql.rds_set_external_source_for_channel
deve essere eseguita dall'utente master. Questa procedura deve essere eseguita sull'istanza DB RDS for MySQL di destinazione su cui si sta creando il canale di replica.
Prima dell'esecuzionemysql.rds_set_external_source_for_channel
, configura un utente di replica sull'istanza DB di origine con i privilegi richiesti per la replica da più fonti. Per connettere la replica multisorgente all'istanza DB di origine, è necessario specificare replication_user_password
i valori di un utente di replica che dispone REPLICATION CLIENT
delle autorizzazioni replication_user_name
e delle autorizzazioni per l'istanza DB di origine. REPLICATION SLAVE
Per configurare un utente di replica sull'istanza DB di origine
Utilizzando il client MySQL di tua scelta, connettiti all'istanza DB di origine e crea un account utente da utilizzare per la replica. Di seguito è riportato un esempio.
Importante
Come procedura consigliata in materia di sicurezza, specificate una password diversa dal valore segnaposto mostrato negli esempi seguenti.
MySQL 8.0
CREATE USER 'repl_user'@'example.com' IDENTIFIED WITH mysql_native_password BY '
password
';MySQL 5.7
CREATE USER 'repl_user'@'example.com' IDENTIFIED BY '
password
';Sull'istanza DB di origine, concedi
REPLICATION CLIENT
eREPLICATION SLAVE
privilegi all'utente di replica. L'esempio seguente concede i privilegiREPLICATION CLIENT
eREPLICATION SLAVE
su tutti i database per l'utente "repl_user" del dominio:GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
Per utilizzare la replica crittografata, configura l'istanza DB di origine per utilizzare connessioni SSL.
Dopo aver chiamato mysql.rds_set_external_source_for_channel
per configurare questo canale di replica, puoi chiamare la replica per avviare il processo di replica mysql.rds_start_replication_for_channel sul canale. È possibile effettuare una chiamata mysql.rds_reset_external_source_for_channel per interrompere la replica sul canale e rimuovere la configurazione del canale dalla replica.
Quando effettui una chiamatamysql.rds_set_external_source_for_channel
, Amazon RDS registra l'ora, l'utente e un'azione set channel source
nella mysql.rds_history
tabella senza dettagli specifici del canale e nella mysql.rds_replication_status
tabella, con il nome del canale. Queste informazioni vengono registrate solo per uso interno e scopi di monitoraggio. Per registrare l'intera procedura chiamata ai fini del controllo, prendete in considerazione la possibilità di abilitare i registri di controllo o i registri generali, in base ai requisiti specifici dell'applicazione.
Esempi
Quando viene eseguito su un'istanza DB RDS for MySQL, l'esempio seguente configura un canale di replica channel_1
denominato su questa istanza DB per replicare i dati dall'origine specificata da host e porta. sourcedb.example.com
3306
call mysql.rds_set_external_source_for_channel( 'sourcedb.example.com', 3306, 'repl_user', '
password
', 'mysql-bin-changelog.0777', 120, 0, 'channel_1');
mysql.rds_set_external_source_with_auto_position_for_channel
Configura un canale di replica su un'istanza DB RDS for MySQL con un ritardo di replica opzionale. La replica si basa su identificatori di transazione globali (GTID).
Importante
Per eseguire questa procedura, è necessario abilitare autocommit
. Per abilitarlo, impostare il parametro autocommit
su 1
. Per ulteriori informazioni sulla modifica dei parametri, consulta Modifica di parametri in un gruppo di parametri del database.
Sintassi
CALL mysql.rds_set_external_source_with_auto_position_for_channel (
host_name
,host_port
,replication_user_name
,replication_user_password
,ssl_encryption
,delay
,channel_name
);
Parametri
-
host_name
-
Il nome host o l'indirizzo IP dell'istanza DB di origine RDS for MySQL.
-
host_port
-
La porta utilizzata dall'istanza DB di origine RDS per MySQL. Se la configurazione della rete include la replica della porta Secure Shell (SSH) che converte il numero di porta, specifica il numero di porta esposto da SSH.
-
replication_user_name
-
L'ID di un utente con
REPLICATION CLIENT
eREPLICATION SLAVE
le autorizzazioni sull'istanza DB di origine RDS for MySQL. Si consiglia di fornire un account utilizzato esclusivamente per la replica con l'istanza DB di origine. -
replication_user_password
-
La password dell'ID utente specificata in
replication_user_name
. -
ssl_encryption
-
Un valore che specifica se la crittografia Secure Socket Layer (SSL) è utilizzata sulla connessione di replica. 1 indica che la crittografia SSL deve essere utilizzata; 0 specifica che la crittografia non deve essere utilizzata. Il valore predefinito è 0.
Nota
L'opzione
MASTER_SSL_VERIFY_SERVER_CERT
non è supportata. Questa opzione è impostata su 0, il che significa che la connessione è crittografata, ma i certificati non sono verificati. -
delay
-
Il numero minimo di secondi per ritardare la replica dall'istanza DB di origine.
Il limite per questo parametro è un giorno (86400 secondi).
-
nome_canale
-
Il nome del canale di replica. Ogni canale di replica riceve gli eventi di log binario da un'unica istanza DB RDS for MySQL di origine in esecuzione su un host e una porta specifici.
Note per l'utilizzo
La procedura mysql.rds_set_external_source_with_auto_position_for_channel
deve essere eseguita dall'utente master. Questa procedura deve essere eseguita sull'istanza DB RDS for MySQL di destinazione su cui si sta creando il canale di replica.
Prima dell'esecuzionerds_set_external_source_with_auto_position_for_channel
, configura un utente di replica sull'istanza DB di origine con i privilegi richiesti per la replica da più fonti. Per connettere la replica multisorgente all'istanza DB di origine, è necessario specificare replication_user_password
i valori di un utente di replica che dispone REPLICATION CLIENT
delle autorizzazioni replication_user_name
e delle autorizzazioni per l'istanza DB di origine. REPLICATION SLAVE
Per configurare un utente di replica sull'istanza DB di origine
Utilizzando il client MySQL di tua scelta, connettiti all'istanza DB di origine e crea un account utente da utilizzare per la replica. Di seguito è riportato un esempio.
Importante
Come procedura consigliata in materia di sicurezza, specificate una password diversa dal valore segnaposto mostrato negli esempi seguenti.
MySQL 8.0
CREATE USER 'repl_user'@'example.com' IDENTIFIED WITH mysql_native_password BY '
password
';MySQL 5.7
CREATE USER 'repl_user'@'example.com' IDENTIFIED BY '
password
';Sull'istanza DB di origine, concedi
REPLICATION CLIENT
eREPLICATION SLAVE
privilegi all'utente di replica. L'esempio seguente concede i privilegiREPLICATION CLIENT
eREPLICATION SLAVE
su tutti i database per l'utente "repl_user" del dominio:GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
Per utilizzare la replica crittografata, configura l'istanza DB di origine per utilizzare connessioni SSL.
Dopo aver chiamato mysql.rds_set_external_source_with_auto_position_for_channel
per configurare un'istanza DB Amazon RDS come replica di lettura su un canale specifico, puoi chiamare la replica di lettura per avviare il processo di replica mysql.rds_start_replication_for_channel su quel canale.
Dopo aver chiamato mysql.rds_set_external_source_with_auto_position_for_channel
per configurare questo canale di replica, puoi chiamare la replica per avviare il processo di replica mysql.rds_start_replication_for_channel sul canale. È possibile effettuare una chiamata mysql.rds_reset_external_source_for_channel per interrompere la replica sul canale e rimuovere la configurazione del canale dalla replica.
Esempi
Quando viene eseguito su un'istanza DB RDS for MySQL, l'esempio seguente configura un canale di replica channel_1
denominato su questa istanza DB per replicare i dati dall'origine specificata dall'sourcedb.example.com
host e dalla 3306
porta. Imposta il ritardo minimo di replica a un'ora (3.600 secondi). Ciò significa che una modifica dall'istanza DB RDS for MySQL di origine non viene applicata alla replica multisorgente per almeno un'ora.
call mysql.rds_set_external_source_with_auto_position_for_channel( 'sourcedb.example.com', 3306, 'repl_user', 'password', 0, 3600, 'channel_1');
mysql.rds_set_external_source_with_delay_for_channel
Configura un canale di replica su un'istanza DB RDS for MySQL con un ritardo di replica specificato.
Importante
Per eseguire questa procedura, è necessario abilitare autocommit
. Per abilitarlo, impostare il parametro autocommit
su 1
. Per ulteriori informazioni sulla modifica dei parametri, consulta Modifica di parametri in un gruppo di parametri del database.
Sintassi
CALL mysql.rds_set_external_source_with_delay_for_channel (
host_name
,host_port
,replication_user_name
,replication_user_password
,mysql_binary_log_file_name
,mysql_binary_log_file_location
,ssl_encryption
,delay
,channel_name
);
Parametri
-
host_name
-
Il nome host o l'indirizzo IP dell'istanza DB di origine RDS for MySQL.
-
host_port
-
La porta utilizzata dall'istanza DB di origine RDS per MySQL. Se la configurazione della rete include la replica della porta Secure Shell (SSH) che converte il numero di porta, specifica il numero di porta esposto da SSH.
-
replication_user_name
-
L'ID di un utente con
REPLICATION CLIENT
eREPLICATION SLAVE
le autorizzazioni sull'istanza DB di origine RDS for MySQL. Si consiglia di fornire un account utilizzato esclusivamente per la replica con l'istanza DB di origine. -
replication_user_password
-
La password dell'ID utente specificata in
replication_user_name
. -
mysql_binary_log_file_name
-
Il nome del log binario sull'istanza DB di origine contiene le informazioni di replica.
-
mysql_binary_log_file_location
-
Posizione nel log binario
mysql_binary_log_file_name
a partire dalla quale la replica inizierà a leggere le informazioni di replica.È possibile determinare il nome e la posizione del file binlog in esecuzione
SHOW MASTER STATUS
sull'istanza del database di origine. -
ssl_encryption
-
Un valore che specifica se la crittografia Secure Socket Layer (SSL) è utilizzata sulla connessione di replica. 1 indica che la crittografia SSL deve essere utilizzata; 0 specifica che la crittografia non deve essere utilizzata. Il valore predefinito è 0.
Nota
L'opzione
MASTER_SSL_VERIFY_SERVER_CERT
non è supportata. Questa opzione è impostata su 0, il che significa che la connessione è crittografata, ma i certificati non sono verificati. -
delay
-
Il numero minimo di secondi per ritardare la replica dall'istanza DB di origine.
Il limite per questo parametro è un giorno (86400 secondi).
-
nome_canale
-
Il nome del canale di replica. Ogni canale di replica riceve gli eventi di log binario da un'unica istanza DB RDS for MySQL di origine in esecuzione su un host e una porta specifici.
Note per l'utilizzo
La procedura mysql.rds_set_external_source_with_delay_for_channel
deve essere eseguita dall'utente master. Questa procedura deve essere eseguita sull'istanza DB RDS for MySQL di destinazione su cui si sta creando il canale di replica.
Prima dell'esecuzionemysql.rds_set_external_source_with_delay_for_channel
, configura un utente di replica sull'istanza DB di origine con i privilegi richiesti per la replica da più fonti. Per connettere la replica multisorgente all'istanza DB di origine, è necessario specificare replication_user_password
i valori di un utente di replica che dispone REPLICATION CLIENT
delle autorizzazioni replication_user_name
e delle autorizzazioni per l'istanza DB di origine. REPLICATION SLAVE
Per configurare un utente di replica sull'istanza DB di origine
Utilizzando il client MySQL di tua scelta, connettiti all'istanza DB di origine e crea un account utente da utilizzare per la replica. Di seguito è riportato un esempio.
Importante
Come procedura consigliata in materia di sicurezza, specificate una password diversa dal valore segnaposto mostrato negli esempi seguenti.
MySQL 8.0
CREATE USER 'repl_user'@'example.com' IDENTIFIED WITH mysql_native_password BY '
password
';MySQL 5.7
CREATE USER 'repl_user'@'example.com' IDENTIFIED BY '
password
';Sull'istanza DB di origine, concedi
REPLICATION CLIENT
eREPLICATION SLAVE
privilegi all'utente di replica. L'esempio seguente concede i privilegiREPLICATION CLIENT
eREPLICATION SLAVE
su tutti i database per l'utente "repl_user" del dominio:GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
Per utilizzare la replica crittografata, configura l'istanza DB di origine per utilizzare connessioni SSL.
Dopo aver chiamato mysql.rds_set_external_source_with_delay_for_channel
per configurare questo canale di replica, puoi chiamare la replica per avviare il processo di replica mysql.rds_start_replication_for_channel sul canale. È possibile effettuare una chiamata mysql.rds_reset_external_source_for_channel per interrompere la replica sul canale e rimuovere la configurazione del canale dalla replica.
Quando effettui una chiamatamysql.rds_set_external_source_with_delay_for_channel
, Amazon RDS registra l'ora, l'utente e un'azione set channel source
nella mysql.rds_history
tabella senza dettagli specifici del canale e nella mysql.rds_replication_status
tabella, con il nome del canale. Queste informazioni vengono registrate solo per uso interno e scopi di monitoraggio. Per registrare l'intera procedura chiamata ai fini del controllo, prendete in considerazione la possibilità di abilitare i registri di controllo o i registri generali, in base ai requisiti specifici dell'applicazione.
Esempi
Quando viene eseguito su un'istanza DB RDS for MySQL, l'esempio seguente configura un canale di replica channel_1
denominato su questa istanza DB per replicare i dati dall'origine specificata dall'sourcedb.example.com
host e dalla 3306
porta. Imposta il ritardo minimo di replica a un'ora (3.600 secondi). Ciò significa che una modifica dall'istanza DB RDS for MySQL di origine non viene applicata alla replica multisorgente per almeno un'ora.
call mysql.rds_set_external_source_with_delay_for_channel( 'sourcedb.example.com', 3306, 'repl_user', 'password', 'mysql-bin-changelog.000777', 120, 0, 3600, 'channel_1');
mysql.rds_set_source_auto_position_for_channel
Imposta la modalità di replica per il canale specificato in modo che sia basata sulle posizioni dei file di registro binari o sugli identificatori di transazione globali (GTID).
Sintassi
CALL mysql.rds_set_source_auto_position_for_channel (
auto_position_mode
,channel_name
);
Parametri
-
auto_position_mode
-
Valore che indica se usare la replica basata sulla posizione del file di log o la replica basata su GTID:
-
0
– Usa il metodo di replica basato sulla posizione del file di log binario. Il valore di default è0
. -
1
– Usa il metodo di replica basato su GTID.
-
-
nome_canale
-
Il nome del canale di replica sulla replica multisorgente. Ogni canale di replica riceve gli eventi di log binario da un'unica istanza DB RDS for MySQL di origine in esecuzione su un host e una porta specifici.
Note per l'utilizzo
La procedura mysql.rds_set_source_auto_position_for_channel
deve essere eseguita dall'utente master. Questa procedura riavvia la replica sul canale specificato per applicare la modalità di posizionamento automatico specificata.
Esempi
L'esempio seguente imposta la modalità di posizionamento automatico per channel_1 per utilizzare il metodo di replica basato su GTID.
call mysql.rds_set_source_auto_position_for_channel(1,'channel_1');
mysql.rds_set_source_delay_for_channel
Imposta il numero minimo di secondi per ritardare la replica dall'istanza del database di origine alla replica multisorgente per il canale specificato.
Sintassi
CALL mysql.rds_set_source_delay_for_channel(
delay
,channel_name
);
Parametri
-
delay
-
Il numero minimo di secondi per ritardare la replica dall'istanza DB di origine.
Il limite per questo parametro è un giorno (86400 secondi).
-
nome_canale
-
Il nome del canale di replica sulla replica multisorgente. Ogni canale di replica riceve gli eventi di log binario da un'unica istanza DB RDS for MySQL di origine in esecuzione su un host e una porta specifici.
Note per l'utilizzo
La procedura mysql.rds_set_source_delay_for_channel
deve essere eseguita dall'utente master. Per utilizzare questa procedura, è necessario innanzitutto effettuare una chiamata mysql.rds_stop_replication_for_channel
per interrompere la replica. Quindi, richiamate questa procedura per impostare il valore del ritardo di replica. Quando il ritardo è impostato, chiama mysql.rds_start_replication_for_channel
per riavviare la replica.
Esempi
L'esempio seguente imposta il ritardo per la replica dall'istanza del database channel_1
di origine sulla replica multisorgente per almeno un'ora (3.600 secondi).
CALL mysql.rds_set_source_delay_for_channel(3600,'channel_1');
mysql.rds_skip_repl_error_for_channel
Ignora un evento di log binario ed elimina un errore di replica su una replica multisorgente MySQL DB per il canale specificato.
Sintassi
CALL mysql.rds_skip_repl_error_for_channel(channel_name);
Parametri
-
nome_canale
-
Il nome del canale di replica sulla replica multisorgente. Ogni canale di replica riceve gli eventi di log binario da un'unica istanza DB RDS for MySQL di origine in esecuzione su un host e una porta specifici.
Note per l'utilizzo
La procedura mysql.rds_skip_repl_error_for_channel
deve essere eseguita dall'utente master su una replica di lettura. È possibile utilizzare questa procedura in modo mysql.rds_skip_repl_error
simile a quello utilizzato per ignorare un errore in una replica di lettura. Per ulteriori informazioni, consulta Chiamata della procedura mysql.rds_skip_repl_error.
Nota
Per ignorare gli errori nella replica basata su GTID, si consiglia di utilizzare invece la procedura. mysql.rds_skip_transaction_with_gtid
Per determinare se ci sono errori, esegui il comando MySQL SHOW REPLICA STATUS FOR CHANNEL '
. Se un errore di replica non è critico, puoi eseguire channel_name
'\Gmysql.rds_skip_repl_error_for_channel
per ignorare l'errore. Se sono presenti più errori, mysql.rds_skip_repl_error_for_channel
elimina il primo errore sul canale di replica specificato, quindi avvisa che ne sono presenti altri. Puoi quindi utilizzare SHOW REPLICA STATUS FOR CHANNEL '
per determinare l'operazione corretta per l'errore successivo. Per informazioni sui valori restituiti, consulta Istruzione SHOW REPLICA STATUSchannel_name
'\G
mysql.rds_start_replication_for_channel
Avvia la replica da un'istanza DB RDS for MySQL a una replica multisorgente sul canale specificato.
Nota
Puoi usare la stored procedure mysql.rds_start_replication_until_for_channel o mysql.rds_start_replication_until_gtid_for_channel per avviare la replica da un'istanza database RDS for MySQL e arrestare la replica in corrispondenza della posizione del file di log binario specificato.
Sintassi
CALL mysql.rds_start_replication_for_channel(channel_name);
Parametri
-
nome_canale
-
Il nome del canale di replica sulla replica multisorgente. Ogni canale di replica riceve gli eventi di log binario da un'unica istanza DB RDS for MySQL di origine in esecuzione su un host e una porta specifici.
Note per l'utilizzo
La procedura mysql.rds_start_replication_for_channel
deve essere eseguita dall'utente master. Dopo aver importato i dati dall'istanza DB RDS for MySQL di origine, esegui questo comando sulla replica multi-source per avviare la replica sul canale specificato.
Esempi
L'esempio seguente avvia la replica sulla replica da più fonti. channel_1
CALL mysql.rds_start_replication_for_channel('channel_1');
mysql.rds_start_replication_until_for_channel
Avvia la replica da un'istanza DB RDS for MySQL sul canale specificato e interrompe la replica nella posizione specificata del file di log binario.
Sintassi
CALL mysql.rds_start_replication_until_for_channel (
replication_log_file
,replication_stop_point
,channel_name
);
Parametri
-
replication_log_file
-
Il nome del log binario sull'istanza DB di origine contiene le informazioni di replica.
-
replication_stop_point
-
Posizione nel log binario
replication_log_file
in corrispondenza di cui la replica verrà arrestata. -
nome_canale
-
Il nome del canale di replica sulla replica multisorgente. Ogni canale di replica riceve gli eventi di log binario da un'unica istanza DB RDS for MySQL di origine in esecuzione su un host e una porta specifici.
Note per l'utilizzo
La procedura mysql.rds_start_replication_until_for_channel
deve essere eseguita dall'utente master. Con questa procedura, la replica viene avviata e quindi interrotta quando viene raggiunta la posizione del file binlog specificata. Per la versione 8.0, la procedura interrompe solo il. SQL_Thread
Per la versione 5.7, la procedura arresta sia la che SQL_Thread
la. IO_Thread
Il nome di file specificato per il replication_log_file
parametro deve corrispondere al nome del file binlog dell'istanza DB di origine.
Quando il replication_stop_point
parametro specifica una posizione di arresto che appartiene al passato, la replica viene interrotta immediatamente.
Esempi
L'esempio seguente avvia la replica e replica le modifiche fino a raggiungere la posizione 120
nel file di registro binario. channel_1
mysql-bin-changelog.000777
call mysql.rds_start_replication_until_for_channel( 'mysql-bin-changelog.000777', 120, 'channel_1' );
mysql.rds_start_replication_until_gtid_for_channel
Avvia la replica sul canale specificato da un'istanza DB RDS for MySQL e interrompe la replica in corrispondenza dell'identificatore di transazione globale (GTID) specificato.
Sintassi
CALL mysql.rds_start_replication_until_gtid_for_channel(
gtid
,channel_name
);
Parametri
-
gtid
-
Il GTID dopo il quale interrompere la replica.
-
nome_canale
-
Il nome del canale di replica sulla replica multisorgente. Ogni canale di replica riceve gli eventi di log binario da un'unica istanza DB RDS for MySQL di origine in esecuzione su un host e una porta specifici.
Note per l'utilizzo
La procedura mysql.rds_start_replication_until_gtid_for_channel
deve essere eseguita dall'utente master. La procedura avvia la replica sul canale specificato e applica tutte le modifiche fino al valore GTID specificato. Quindi, interrompe la replica sul canale.
Quando il parametro gtid
specifica una transazione che è già stata eseguita dalla replica, la procedura viene arrestata immediatamente.
Prima di eseguire questa procedura, è necessario disabilitare la replica multithread impostando il valore di o su. replica_parallel_workers
slave_parallel_workers
0
Esempi
L'esempio seguente avvia la replica su channel_1
e replica le modifiche fino a raggiungere GTID. 3E11FA47-71CA-11E1-9E33-C80AA9429562:23
call mysql.rds_start_replication_until_gtid_for_channel('3E11FA47-71CA-11E1-9E33-C80AA9429562:23','channel_1');
mysql.rds_stop_replication_for_channel
Interrompe la replica da un'istanza DB MySQL sul canale specificato.
Sintassi
CALL mysql.rds_stop_replication_for_channel(channel_name);
Parametri
-
nome_canale
-
Il nome del canale di replica sulla replica multisorgente. Ogni canale di replica riceve gli eventi di log binario da un'unica istanza DB RDS for MySQL di origine in esecuzione su un host e una porta specifici.
Note per l'utilizzo
La procedura mysql.rds_stop_replication_for_channel
deve essere eseguita dall'utente master.
Esempi
L'esempio seguente interrompe la replica sulla channel_1
replica da più fonti.
CALL mysql.rds_stop_replication_for_channel('channel_1');