Domanda

Il tentativo di eseguire pt-tavolo-checksum per rilevare schiavo deriva nella replica di MySQL. I miei schiavi non si utilizza la porta TCP di ascolto di serie però, e così quando ho eseguito lo strumento ottengo un errore:

Cannot connect to P=3306,h=,p=...

E 'ancora checksum tavole del maestro, ma senza essere in grado di connettersi agli schiavi non è molto utile. Non posso capire come specificare porte alternative per gli slave durante l'esecuzione del comando. I miei sguardi comando corrente come

pt-table-checksum -h  -P 3388 -p 
È stato utile?

Soluzione

Il problema è che le repliche non riportano le loro porte al master. In cerca di default pt-tavolo-checksum di connettersi incognite con le impostazioni predefinite di riempimento; se le incognite non utilizzano le impostazioni predefinite, questa fallirà. In questo caso, ci sono due opzioni:

1) Utilizzare l'opzione --recursion-metodo per passare da ispezionare SHOW PROCESSLIST per ispezionare HOSTS SHOW SLAVE, e schiavi di configurazione di segnalare il loro ospite. Non consiglio questo.

2) vi consiglio, invece, di utilizzare --recursion-method = DSN e creare un tavolo pieno di DSN (Data Source Name) istruzioni che dicono lo strumento modalità di connessione a ogni replica. Se questa tabella è foo.bar, allora si utilizza --recursion-method = DSN = D = foo, t = bar.

Questa funzione è disponibile solo nella serie 2.0 del toolkit, ma si dovrebbe essere utilizzando tale in ogni caso, perché pt-tavolo-checksum è enormemente migliorata in 2.0.

Altri suggerimenti

Gli strumenti Percona non prendono gli argomenti client mysql standard. È necessario specificare un DSN nel loro formato. Vedere http: //www.percona. com / doc / Percona-toolkit / 2.0 / PT-table-checksum.html # DSN-opzioni

Si vorrà qualcosa di simile

pt-table-checksum h=myhost,u=user,p=pass,P=port

Personalmente non mi piace mettere le credenziali in qualcosa che verrà visualizzato nel processlist modo da poter fare

pt-table-checksum --defaults-file=/path/to/my.cnf h=myhost,P=port

dove gli sguardi my.cnf come

[client]
user=usernameXYZ
password=asdf234JKL

Se si desidera che questo per replicare attraverso i vostri schiavi è necessario specificare un - opzione replica che indica che la tabella di collocare i checksum (e quindi inserire i valori slave in su ciascun rispettivo slave). Se questa è la prima volta che si potrebbe desiderare di avere a creare quel tavolo per voi con -. create-replica-table

Non sarà necessario collegare direttamente agli schiavi a meno che non si desidera monitorare gli schiavi per rimanere indietro. Fondamentalmente questioni domande come

sostituire in checksumsTables ... (masterV1, masterV2, (selezionare bla ...))

dove i valori master letterali vengono scritti nel binlog lungo w / la porzione di selezione della sostituzione. Quando eseguibile su schiavi select fa è pensare di ottenere gli schiavi checksum.

Ho speso un sacco di tempo con questo strumento di recente in modo da iniziare con questo e rispondere con più problemi specifici hai bisogno di aiuto quindi non solo riscrivere tutto il manuale e ogni possibile cosa che può andare storto.

Nota: se si esegue

export PTDEBUG=1

Prima di qualsiasi script Percona che vi darà tonnellate di informazioni di debug che possono aiutare a punto nella direzione di quello che sta andando male. Anche ricordare questi sono tutti script perl in modo da poter controllare la sorgente di se stessi per (forse) vedere che cosa c'è che non va.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top