In questo tutorial, ti mostrerò come installare e configurare Percona XtraDB Cluster su un server CentOS 7. Utilizzeremo Percona XtraDB Cluster 5.6 che è completamente compatibile con MySQL e Percona Server.
Percona è una società di esperti di database MySQL e MongoDB fondata nel 2006. Percona costruisce e gestisce software open source per MySQL e MongoDB:Percona Server (server di database per MySQL con miglioramenti delle prestazioni ad alta disponibilità), Percona XtraDB Cluster (soluzione ad alta disponibilità per MySQL cluster), Percona Server for MongoDB e altri strumenti per la gestione dei database come Percona toolkit, Percona Monitoring Tools e Percona XtraBackup.
Prerequisito
- 3 nodi server CentOS 7.
- Privilegi di root.
- Conoscenza di base di CentOS 7.
Passaggio 1:imposta il file hosts
La prima cosa da fare è configurare i nomi host di tutti i server. Ho 3 server con CentOS 7 come elencato di seguito:
Nodo IP server Nome host
Nodo1 - 192.168.43.36 percona1
Nodo2 - 192.168.43.166 percona2
Nodo3 - 192.168.43 perconConnettiti a tutti i server usando il tuo terminale:
ssh [email protetta]Se hai effettuato l'accesso a tutti i server, modifica il file '/etc/hosts' su ciascun server con vim:
vim /etc/hostsIncolla la configurazione degli host di seguito:
192.168.43.36 percona1
192.168.43.166 percona2
192.168.43.148 percona3Sostituisci gli indirizzi IP con quelli che corrispondono alla configurazione della tua rete locale. Salva ed esci.
Passaggio 2 - Configura Firewalld
Firewalld è la nuova interfaccia firewall predefinita su CentOS 7. Il comando firewall-cmd viene utilizzato per configurare il firewall. Possiamo definire e configurare gruppi o zone specifici, oppure possiamo configurare un firewall per servizi come ssh, database MySQL, server web nginx/apache ecc.
In questo passaggio utilizzeremo firewalld per la configurazione del firewall. Utilizzeremo il comando 'firewall-cmd' per aprire la porta del server percona e altre porte necessarie per il cluster.
Avvia firewalld con questo comando systemctl:
systemctl avvia firewalldQuindi esegui il comando seguente per aprire la porta utilizzata dal server MySQL/percona:
firewall-cmd --zone=public --add-service=mysql --permanentSuccessivamente, aggiungi le altre porte per il cluster con il comando seguente:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --zone=public --add-port=4568/tcp --permanent
firewall-cmd --zone=public --add-port=4444/tcp --permanent
firewall -cmd --zone=public --add-port=4567/udp --permanenteRicarica le regole del firewall:
firewall-cmd --reloadPer visualizzare l'elenco di tutte le regole del firewall, utilizzare l'opzione '--list-all':
firewall-cm --list-all
Passaggio 3:installazione di Epel Repository e Socat
Per far funzionare Percona XtraDB Cluster sul server, è necessario installare socat, ed è disponibile in epel-repository. Quindi dobbiamo prima installare il repository Epel e poi installare socat. Inoltre, dobbiamo rimuovere mariadb-libs dal server perché sono in conflitto con il cluster Percona XtraDB.
Installa epel-repository e socat:
yum -y install epel-release
yum -y install socatRimuovere mariadb-libs per evitare il conflitto del pacchetto tra mariadb-libs e Percona XtraDB Cluster:
yum -y rimuove mariadb-libsIl repository Epel e il socat sono installati.
Passaggio 4:installazione del cluster Percona XtraDB
In questo passaggio, installeremo il cluster Percona xtradb con tutte le dipendenze del pacchetto. Dobbiamo aggiungere il repository Percona per l'installazione, quindi avviare il server Percona e configurare l'utente root e la password per il server del database.
Installa il repository Percona con yum:
yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpmOra installa il cluster Percona XtraDB e gli altri pacchetti richiesti per questo tutorial:
yum install Percona-XtraDB-Cluster-server-56 Percona-XtraDB-Cluster-client-56 Percona-XtraDB-Cluster-shared-56 percona-toolkit percona-xtrabackup Percona-XtraDB-Cluster-galera-3 rsync ncPercona XtraDB Cluster è installato, avviare il server Percona con il comando zhis systemctl:
systemctl avvia mysqlQuindi, configura la password di root per tutti i server percona/mysql:
installazione_mysql_secureImposta la password percona/mysql:
Inserisci la password corrente per root (inserisci per nessuno):PREMERE INVIO
Impostare la password di root? [S/n] S
Nuova password:DIGITA LA TUA PASSWORD
Reinserisci nuova password:RIPETI PASSWORD
Rimuovere utenti anonimi? [S/n] S
Non consentire l'accesso root in remoto? [S/n] S
Ricaricare ora le tabelle dei privilegi? [S/n] SìNota:
Esegui i passaggi 1 - 4 su tutti e 3 i server CentOS.
Passaggio 5:configurazione del cluster Percona XtraDB
Nel passaggio 4 abbiamo già installato Percona XtraDB Cluster e configurato la password di root per tutti i nodi del server Percona/Mysql. In questo passaggio creeremo un nuovo utente per l'autenticazione SST e modificheremo la configurazione MySQL my.cnf su ciascuno dei server.
SST (State Snapshot Transfer) è una copia completa dei dati da un server come donatore a un altro server come joiner. Per l'autenticazione SST, dobbiamo creare un nuovo utente chiamato 'sstuser' con password '[email protected]'. E per il metodo SST, useremo xtrabackup-v2 invece di rsync. Utilizza una password diversa e sicura per il tuo cluster!
Accedi alla percona/mysql shell su ciascun server:
mysql -u root -p
DIGIRA LA TUA PASSWORDE crea il nuovo 'sstuser' con la password '[email protected]':
crea l'utente [email protected]'%' identificato da '[email protected]';
concedi tutto su *.* a [email protected]'%';
svuota i privilegi;
Quindi arresta il servizio MySQL su ciascun server prima di modificare il file di configurazione:
systemctl ferma mysqlQuindi, modifica il file di configurazione mysql my.cnf su ciascun server con l'editor vim.
Su Percona1 server:
vim /etc/my.cnfModifica tutta la riga 'wsrep' con la configurazione seguente:
; =percona1
wsrep_node_address =percona1
wsrep_sst_method =xtrabackup-v2
wsrep_sst_auth =sstuser:[email protected]
Salva ed esci.
Su Percona2 server:
vim /etc/my.cnf
Modifica tutta la riga 'wsrep' con la configurazione seguente:
wsrep_cluster_address =gcomm:// percona1, percona3
wsrep_provider =/usr/lib64/galera3/libagalera_smm.so
wsrep_slave_threads =8
wsrep_name =cluscladb
wsrep_node_name =percona2
wsrep_node_address =percona2
wsrep_sst_method =xtrabackup-v2
wsrep_sst_auth =xtrabackup-v2
wsrep_sst_auth ]Salva ed esci.
Su Percona3 server:
vim /etc/my.cnfModifica tutta la riga 'wsrep' con la configurazione seguente:
wsrep_cluster_address =gcomm:// percona1, percona2
wsrep_provider =/usr/lib64/galera3/libagalera_smm.so
wsrep_slave_threads =8
wsrep_cluster_ />wsrep_node_name =percona3
wsrep_node_address =percona3
wsrep_sst_method =xtrabackup-v2
wsrep_sst_auth =xtrabackup-v2
wsrep_sst_auth ]Salva ed esci.
Screenshot da percona2 server.
Passaggio 6:avviare il Percona XtraDB Cluster Server
Abbiamo configurato il cluster Percona XtraDB su tutti i server e ora possiamo avviare il server.
Sul server Percona1, il bootstrap o l'avvio e l'esecuzione del cluster:
systemctl start [email protetta]Successivamente, avvia il server Percona/MySQL su percona2 e percona3 server con il comando seguente:
systemctl avvia mysqlassicurati che non ci siano messaggi di errore. Se si verifica un errore dopo aver digitato per avviare MySQL, controlla il file di registro '/var/log/messages'.
Fase 7 - Test
Dobbiamo accedere alla shell percona/mysql su ciascun server per testare il cluster Percona XtraDB.
Accedi alla shell Percona/MySQL su tutti i server/nodi:
mysql -u root -p
DIGIRA LA TUA PASSWORDTestare l'alta disponibilità con il comando mysql:
MOSTRA STATO COME 'wsrep_local_state_comment';Prova quel comando su ogni nodo, se vedi "Sincronizzato" di conseguenza, quel nodo è pronto per gestire il traffico.
Test dei nodi disponibili del cluster:
mostra lo stato globale come 'wsrep_cluster_size';Otterrai il numero corrente di nodi nel cluster Percona.
Per i risultati completi, puoi utilizzare il comando seguente:
mostra lo stato globale come 'wsrep%';