Gestione della replica da più fonti - 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à.

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.

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 comando SHOW REPLICA STATUS FOR CHANNEL 'channel_name' e visualizza il campo Source_Log_File.

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.

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 e REPLICATION 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
  1. 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';
  2. Sull'istanza DB di origine, concedi REPLICATION CLIENT e REPLICATION SLAVE privilegi all'utente di replica. L'esempio seguente concede i privilegi REPLICATION CLIENT e REPLICATION 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 e REPLICATION 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
  1. 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';
  2. Sull'istanza DB di origine, concedi REPLICATION CLIENT e REPLICATION SLAVE privilegi all'utente di replica. L'esempio seguente concede i privilegi REPLICATION CLIENT e REPLICATION 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.comhost 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 e REPLICATION 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
  1. 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';
  2. Sull'istanza DB di origine, concedi REPLICATION CLIENT e REPLICATION SLAVE privilegi all'utente di replica. L'esempio seguente concede i privilegi REPLICATION CLIENT e REPLICATION 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.comhost 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 'channel_name'\G. Se un errore di replica non è critico, puoi eseguire mysql.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 'channel_name'\G per determinare l'operazione corretta per l'errore successivo. Per informazioni sui valori restituiti, consulta Istruzione SHOW REPLICA STATUS nella documentazione di MySQL.

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');