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-source di RDS For MySQL. Per ulteriori informazioni, consulta Configurazione multi-source-replication per Amazon RDS for My SQL.

Queste stored procedure sono disponibili solo RDS per le istanze My SQL DB che eseguono le seguenti versioni del motore:

  • Tutte le versioni 8.4

  • 8.0.35 e versioni secondarie successive

  • 5.7.44 e versioni secondarie successive

Quando si utilizzano le stored procedure per gestire la replica con un utente di replica configurato concaching_sha2_passwword, è necessario eseguire la configurazione specificando. TLS SOURCE_SSL=1 caching_sha2_passwordè il plug-in di autenticazione predefinito RDS per My 8.4. SQL

Nota

Sebbene questa documentazione faccia riferimento alle istanze DB di origine come RDS per le istanze My SQL DB, queste procedure funzionano anche per le SQL istanze My in esecuzione all'esterno di 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.

channel_name

Il nome del canale di replica sulla replica da più fonti. Ogni canale di replica riceve gli eventi del registro binario da un'unica fonte RDS per l'istanza My SQL DB 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');

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 dei parametri in un gruppo di parametri DB in Amazon RDS .

Sintassi

CALL mysql.rds_reset_external_source_for_channel (channel_name);

Parametri

channel_name

Il nome del canale di replica sulla replica multisorgente. Ogni canale di replica riceve gli eventi del registro binario da un'unica fonte RDS per l'istanza My SQL DB 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 relay log che appartengono al canale da rimuovere.

mysql.rds_set_external_source_for_channel

Configura un canale di replica su un'istanza RDS for My SQL DB per replicare i dati da un'altra istanza for My DB. RDS SQL

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 dei parametri in un gruppo di parametri DB in Amazon RDS .

Nota

È possibile utilizzare invece la mysql.rds_set_external_source_with_delay_for_channel stored procedure per configurare questo canale con una 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 RDS for My SQL source.

host_port

La porta utilizzata dall'istanza DB RDS for My SQL source. Se la configurazione di rete include la replica delle porte Secure Shell (SSH) che converte il numero di porta, specifica il numero di porta da cui è esposto. SSH

replication_user_name

L'ID di un utente con REPLICATION CLIENT e REPLICATION SLAVE le autorizzazioni sull'istanza DB RDS for My SQL source. 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 BINARY LOG STATUS sull'istanza DB di origine.

Nota

Le versioni precedenti di My SQL utilizzavano SHOW MASTER STATUS invece di. SHOW BINARY LOG STATUS Se utilizzi una SQL versione My precedente alla 8.4, utilizzaSHOW MASTER STATUS.

ssl_encryption

Un valore che specifica se la crittografia Secure Socket Layer (SSL) viene utilizzata sulla connessione di replica. 1 specifica di utilizzare la SSL crittografia, 0 specifica di non utilizzare la crittografia. Il valore predefinito è 0.

Nota

L'opzione SOURCE_SSL_VERIFY_SERVER_CERT non è supportata. Questa opzione è impostata su 0, il che significa che la connessione è crittografata, ma i certificati non sono verificati.

channel_name

Il nome del canale di replica. Ogni canale di replica riceve gli eventi del registro binario da un'unica fonte RDS per l'istanza My SQL DB 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 sulla destinazione RDS dell'istanza My SQL DB 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 SQL client My 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.

    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 le 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 RDS for My SQL DB, l'esempio seguente configura un canale di replica denominato channel_1 su questa istanza DB per replicare i dati dalla fonte 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 RDS for My SQL DB con un ritardo di replica opzionale. La replica si basa sugli identificatori di transazione globali (). GTIDs

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 dei parametri in un gruppo di parametri DB in Amazon RDS .

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 RDS for My SQL source.

host_port

La porta utilizzata dall'istanza DB RDS for My SQL source. Se la configurazione di rete include la replica delle porte Secure Shell (SSH) che converte il numero di porta, specifica il numero di porta da cui è esposto. SSH

replication_user_name

L'ID di un utente con REPLICATION CLIENT e REPLICATION SLAVE le autorizzazioni sull'istanza DB RDS for My SQL source. 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) viene utilizzata sulla connessione di replica. 1 specifica di utilizzare la SSL crittografia, 0 specifica di non utilizzare la crittografia. Il valore predefinito è 0.

Nota

L'opzione SOURCE_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).

channel_name

Il nome del canale di replica. Ogni canale di replica riceve gli eventi del registro binario da un'unica fonte RDS per l'istanza My SQL DB 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 sulla destinazione RDS dell'istanza My SQL DB 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 SQL client My 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 per la sicurezza, specificate una password diversa dal valore segnaposto mostrato negli esempi seguenti.

    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 le connessioni. SSL

Prima di chiamaremysql.rds_set_external_source_with_auto_position_for_channel, assicuratevi di effettuare la chiamata mysql.rds_set_external_source_gtid_purged per impostare la variabile di gtid_purged sistema con un GTID intervallo specificato da una fonte esterna.

Dopo aver chiamato mysql.rds_set_external_source_with_auto_position_for_channel per configurare un'istanza Amazon RDS DB come replica di lettura su un canale specifico, puoi chiamare mysql.rds_start_replication_for_channel la replica di lettura per avviare il processo di replica 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 RDS for My SQL DB, l'esempio seguente configura un canale di replica denominato channel_1 su questa istanza DB per replicare i dati dall'origine specificata dall'host sourcedb.example.com e dalla porta3306. Imposta il ritardo minimo di replica su un'ora (3.600 secondi). Ciò significa che una modifica dall'origine RDS per l'istanza My SQL DB 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', 1, 3600, 'channel_1');

mysql.rds_set_external_source_with_delay_for_channel

Configura un canale di replica su un'istanza RDS for My SQL DB 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 dei parametri in un gruppo di parametri DB in Amazon RDS .

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 RDS for My SQL source.

host_port

La porta utilizzata dall'istanza DB RDS for My SQL source. Se la configurazione di rete include la replica delle porte Secure Shell (SSH) che converte il numero di porta, specifica il numero di porta da cui è esposto. SSH

replication_user_name

L'ID di un utente con REPLICATION CLIENT e REPLICATION SLAVE le autorizzazioni sull'istanza DB RDS for My SQL source. 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 BINARY LOG STATUS sull'istanza del database di origine.

Nota

Le versioni precedenti di My SQL utilizzavano SHOW MASTER STATUS invece di. SHOW BINARY LOG STATUS Se utilizzi una SQL versione My precedente alla 8.4, utilizzaSHOW MASTER STATUS.

ssl_encryption

Un valore che specifica se la crittografia Secure Socket Layer (SSL) viene utilizzata sulla connessione di replica. 1 specifica di utilizzare la SSL crittografia, 0 specifica di non utilizzare la crittografia. Il valore predefinito è 0.

Nota

L'opzione SOURCE_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).

channel_name

Il nome del canale di replica. Ogni canale di replica riceve gli eventi del registro binario da un'unica fonte RDS per l'istanza My SQL DB 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 sulla destinazione RDS dell'istanza My SQL DB 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 SQL client My 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 per la sicurezza, specificate una password diversa dal valore segnaposto mostrato negli esempi seguenti.

    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 le 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 RDS for My SQL DB, l'esempio seguente configura un canale di replica denominato channel_1 su questa istanza DB per replicare i dati dall'origine specificata dall'host sourcedb.example.com e dalla porta3306. Imposta il ritardo minimo di replica su un'ora (3.600 secondi). Ciò significa che una modifica dall'origine RDS per l'istanza My SQL DB 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, 1, 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 globali delle transazioni (). GTIDs

Sintassi

CALL mysql.rds_set_source_auto_position_for_channel ( auto_position_mode , channel_name );

Parametri

auto_position_mode

Un valore che indica se utilizzare la replica della posizione dei file di registro o GTID la replica basata:

  • 0 – Usa il metodo di replica basato sulla posizione del file di log binario. Il valore di default è 0.

  • 1— Utilizzare il metodo di replica GTID basato.

channel_name

Il nome del canale di replica sulla replica da più fonti. Ogni canale di replica riceve gli eventi del registro binario da un'unica fonte RDS per l'istanza My SQL DB 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 GTID replica basato.

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).

channel_name

Il nome del canale di replica sulla replica multisorgente. Ogni canale di replica riceve gli eventi del registro binario da un'unica fonte RDS per l'istanza My SQL DB 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 multi-sorgente My SQL DB per il canale specificato.

Sintassi

CALL mysql.rds_skip_repl_error_for_channel(channel_name);

Parametri

channel_name

Il nome del canale di replica sulla replica multisorgente. Ogni canale di replica riceve gli eventi del registro binario da un'unica fonte RDS per l'istanza My SQL DB 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 simile a quello mysql.rds_skip_repl_error 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 GTID basata, si consiglia di utilizzare invece la procedura.

Per determinare se sono presenti errori, eseguire il comando My SQLSHOW 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, vedere l'SHOWREPLICASTATUSistruzione nella documentazione personale. SQL

mysql.rds_start_replication_for_channel

Avvia la replica da un'istanza RDS for My SQL DB a una replica da più fonti sul canale specificato.

Nota

È possibile utilizzare la procedura mysql.rds_start_replication_until_for_channel or mysql.rds_start_replication_until_gtid_for_channel stored per avviare la replica da un'istanza RDS for My SQL DB e interrompere la replica nella posizione specificata del file di log binario.

Sintassi

CALL mysql.rds_start_replication_for_channel(channel_name);

Parametri

channel_name

Il nome del canale di replica sulla replica da più fonti. Ogni canale di replica riceve gli eventi del registro binario da un'unica fonte RDS per l'istanza My SQL DB 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'origine RDS per l'istanza My SQL DB, esegui questo comando sulla replica da più fonti per avviare la replica sul canale specificato.

Esempi

L'esempio seguente avvia la replica sulla replica da più channel_1 fonti.

CALL mysql.rds_start_replication_for_channel('channel_1');

mysql.rds_start_replication_until_for_channel

Avvia la replica da un'istanza RDS for My SQL DB 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.

channel_name

Il nome del canale di replica sulla replica multisorgente. Ogni canale di replica riceve gli eventi del registro binario da un'unica fonte RDS per l'istanza My SQL DB 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. Questa procedura arresta sia la che la. SQL_THREAD 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 RDS for My SQL DB e interrompe la replica in corrispondenza dell'identificatore globale di transazione specificato (). GTID

Sintassi

CALL mysql.rds_start_replication_until_gtid_for_channel(gtid,channel_name);

Parametri

gtid

Il GTID dopo il quale interrompere la replica.

channel_name

Il nome del canale di replica sulla replica da più fonti. Ogni canale di replica riceve gli eventi del registro binario da un'unica fonte RDS per l'istanza My SQL DB 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 specificatoGTID. 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 e replica le modifiche fino a channel_1 quando non raggiunge. 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 My SQL DB sul canale specificato.

Sintassi

CALL mysql.rds_stop_replication_for_channel(channel_name);

Parametri

channel_name

Il nome del canale di replica sulla replica multisorgente. Ogni canale di replica riceve gli eventi del registro binario da un'unica fonte RDS per l'istanza My SQL DB 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');