Risoluzione dei problemi relativi alla replica in entrata
Risolvere i problemi riscontrati durante la replica in entrata.
Risoluzione degli errori di replica in entrata
Isolare gli errori di replica in entrata recuperando informazioni correlate alla replica in entrata.
Uso della shell MySQL
Utilizzare la shell MySQL o un programma client MySQL per recuperare informazioni correlate alla replica in entrata.
- Sistema DB di replica in esecuzione.
- Shell MySQL o programma client MySQL connesso al sistema DB di replica.
SHOW REPLICA STATUS \G
Mostra informazioni sullo stato dei parametri essenziali dei thread di replica. Vedere SHOW REPLICA STATUS.
SELECT * FROM performance_schema.replication_connection_status \G
Mostra lo stato corrente del thread di I/O che gestisce la connessione della replica all'origine. Vedere replication_connection_status.
SELECT * FROM performance_schema.replication_applier_status_by_worker \G
Mostra i dettagli delle transazioni gestite dai thread degli applier su una replica. Vedere replication_applier_status_by_worker.
Codici errore ricevente replica in entrata
Questa tabella mostra alcuni dei codici di errore comuni del ricevente della replica in entrata.
Tabella 22-4 Codici di errore del ricevente della replica in entrata
Codice di errore | descrizione; |
---|---|
MY-1045: ER_ACCESS_DENIED_ERROR; Access denied for user '%s'@'%s' |
|
MY-1227 (42000): Access denied; you need (at least one of) the SUPER or SET_USER_ID privilege(s) for this operation |
È possibile effettuare una delle seguenti operazioni:
|
MY-1236: ER_MASTER_FATAL_ERROR_READING_BINLOG Got fatal error %d from master when reading data from binary log: '%s' |
Vedere Risoluzione dell'errore irreversibile 1236. |
MY-2003: Network connection has been refused |
Nome host e porta non sono corretti oppure l'origine non è in esecuzione. Controllare il nome host e la porta definiti e verificare che l'origine sia in esecuzione. |
MY-3159: ER_SECURE_TRANSPORT_REQUIRED Connections using insecure transport are prohibited while --require_secure_transport=ON |
Il sorgente richiede una connessione sicura. Confermare di aver selezionato una delle opzioni SSL quando è stato definito il canale. |
Codici di errore dell'applicatore di replica in entrata
Questa tabella mostra alcuni dei codici di errore comuni dell'applier di replica in entrata.
Tabella 22-5 Codici di errore dell'applicatore di replica in entrata
Codice di errore | descrizione; |
---|---|
|
Questi errori si verificano se i dati della replica non sono più sincronizzati con l'origine. Ciò può verificarsi se i dati della replica sono stati modificati manualmente, ad esempio. Per correggere questi errori, è necessario risincronizzare l'origine e la replica e riprendere il canale di replica. |
MY-1205: ER_LOCK_WAIT_TIMEOUT |
Timeout superato. Per correggere questo errore, riprendere il canale di replica. Vedere Ripresa di un canale. |
MY-1595/ MY-013121: RELAY LOG READ FAILURE |
Il log relè è danneggiato e non può essere letto. Per correggere questo errore, reimpostare il canale di replica. Vedere Reimpostazione di un canale. |
Risoluzione errore fatale 1236
Si verifica l'errore quando il set GTID dal dump logico non viene applicato al sistema DB o i log binari sono stati rimossi dall'origine. I log binari sono un requisito obbligatorio per la replica.
Uso della shell MySQL
Utilizzare la shell MySQL per risolvere il file Fatal Error 1236
ottenuto durante l'esecuzione della replica in entrata.
- Si ottiene
Fatal Error 1236
durante l'esecuzione della replica in entrata:Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.
Nell'handshake di connessione iniziale, la replica (sistema DB) invia un set GTID contenente le transazioni già ricevute, sottoposte a commit o entrambe. L'origine risponde inviando tutte le transazioni registrate nel proprio log binario il cui GTID non è incluso nel set GTID inviato dalla replica. Questo scambio garantisce che l'origine invii solo le transazioni con un GTID che la replica non ha già registrato o impegnato.
- Per applicare il set GTID durante il caricamento, utilizzare l'opzione
updateGtidSet: "append"
nel comandoloadDump()
della shell MySQL. Vedere MySQL Utility di caricamento del dump della shell. - Rivedere e aumentare la configurazione del log di scadenza dell'origine per garantire tempo sufficiente per il trasferimento dei dati alla replica. Vedere binlog_expire_logs_seconds e expire_logs_days.
Risoluzione dei problemi di sincronizzazione di replica e origine
I problemi di sincronizzazione si verificano quando la replica è rimasta indietro rispetto all'origine e la replica è irreversibile.
Prima di tentare il recupero da questo errore, si consiglia di verificare il motivo dell'errore e di eseguire un'azione correttiva.
Uso della shell MySQL
Utilizzare la shell MySQL per risolvere i problemi di sincronizzazione della replica e dell'origine.
- L'origine e la replica della replica in entrata non sono più sincronizzate, la replica è rimasta molto indietro rispetto all'origine e la replica è irreversibile.
Se i valori gtid di origine vengono reimpostati su un valore inferiore rispetto a quelli della replica, se nell'origine è stato emesso un
reset master
errato, ad esempio la replica in entrata non è recuperabile. In questo scenario, ricreare il sistema DB e la configurazione della replica in entrata.