Sto eseguendo la replica MySQL dual master e ora voglio passare a un singolo database senza replica. Come disabilitare completamente la replica su entrambi i database?
Sto eseguendo la replica MySQL dual master e ora voglio passare a un singolo database senza replica. Come disabilitare completamente la replica su entrambi i database?
Risposte:
Per disabilitare completamente la replica con un'impostazione master-master, è necessario eseguire le seguenti operazioni su ogni slave:
STOP SLAVE;
RESET SLAVE;
(Utilizzare RESET SLAVE ALL;
per MySQL 5.5.16 e versioni successive)SLAVE STATUS
query anche dopo che RESET SLAVE
è stato dato il comando. Importante da sapere per il monitoraggio o gli strumenti di gestione della configurazione remota. Comportamento confermato con MySQL 5.5.38 su CentOS 6.5.
So che questa è una vecchia domanda, ma ho scoperto che devo anche ripristinare le variabili slave. Se usi "blah" come suggerito, il server proverà all'avvio per trovare il server "blah".
Cambia
MASTER
inMASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='';
È possibile verificare che la macchina non sia più uno schiavo
SHOW SLAVE STATUS \G;
CHANGE MASTER TO MASTER_HOST=''
ora genera un errore.
Sui server slave:
Non è necessario riavviare MySQL sul master o sullo slave. La documentazione completa è disponibile nella sezione 19 del Manuale di riferimento di MySQL .
Ti consiglio di lasciare il resto delle impostazioni di replica in atto nel caso in cui decidi di ripristinare la configurazione precedente. In questo modo dovresti solo spingere i dati e ripristinare la posizione dello slave (non dimenticare di rimuovere skip-slave-start) piuttosto che ricreare l'intero tessuto di installazione.
Indipendentemente dalla versione di MySQL, il modo più completo per farlo è il seguente
cd /var/lib/mysql
service mysql stop
rm -f master.info relay-*`
service mysql start
Questo deve funzionare per la sua ultima versione perché l'impostazione di replica è ancora presente nella RAM per MySQL 5.5.
Ho appena risposto a una domanda simile su questo argomento: Come modificare uno slave precedente MySQL in modo che diventi un master e rimuova le informazioni sullo stato degli slave?
La modifica del solo file my.cnf non è sufficiente per disabilitare la replica. In realtà, non è più il modo raccomandato per abilitarlo. Inserire le voci nel file my.cnf è efficace solo per il prossimo avvio e si comporta come se tu avessi inserito il comando nel client mysql:
mysql> cambia master in master_host = 'blah', master_user = 'blah', master_password = 'blah' ...;
Entrambi questi metodi creeranno un file nella directory dei dati chiamato master.info . Finché esiste questo file, il server proverà a replicarsi utilizzando i dettagli lì. "RESET SLAVE;" il comando elencato nella prima risposta eliminerà il file master.info (così come il file relay-log.info ). Come indicato nella prima risposta, si desidera anche assicurarsi di non disporre di tali informazioni di configurazione nel file my.cnf, altrimenti al successivo riavvio del server, la registrazione verrà riattivata.
Una risposta è qui:
http://www.oops.net.br/~bac/bam/canopy_repl_setup.htm
* Modifica il file di configurazione di MySQL: /etc/my.cnf e rimuovi le seguenti 7 righe nella sezione intitolata [mysqld]:
port=3306
log-bin
server-id=1
master-host=10.0.0.2
master-user=server_1_repl
master-password=server_1_passwd
master-port=3306*
Riavvia MySQL.
Sto aggiungendo questo alla risposta di Harrison Fisk:
Se è stato utilizzato, il RESET SLAVE ALL;
riavvio non è necessario.
Inoltre, potresti voler abilitare gli eventi che sono stati disabilitati sullo slave:
select * from information_schema.events where status = 'SLAVESIDE_DISABLED';
Per ciascuno di essi:
alter event <event_name> enable;