Database Clustering · 14 min read · Sep 26, 2025

Come installare Percona XtraDB Cluster su Debian 11

Percona XtraDB Cluster è una soluzione di clustering di database completamente open-source per MySQL. Ti consente di creare un’implementazione robusta e ad alta disponibilità del server MySQL che offre elevate prestazioni. L’ultima versione di Percona XtraDB Cluster è 8.0, che è completamente compatibile con MySQL Server Community Edition 8.0.

Percona XtraDB Cluster fornisce funzionalità come la replica sincrona, la replica multi-sorgente, il provisioning automatico dei nodi, la configurazione automatica della crittografia SSL e prestazioni ottimizzate.

Percona XtraDB Cluster garantisce l’alta disponibilità del tuo server di database, fornisce scalabilità lineare e previene tempi di inattività e perdita di dati.

In questo tutorial, installerai e configurerai un cluster MySQL tramite Percona XtraDB Cluster (PXC) su server Debian 11. Installerai Percona XtraDB Cluster - una soluzione open-source per cluster MySQL - su più server Debian, quindi configurerai il cluster MySQL per abilitare la replica tra più server MySQL.

Requisiti

Per completare questo tutorial, avrai bisogno di due o più server che eseguono Debian 11. Inoltre, devi avere un utente non root con privilegi di amministratore sudo/root su tutti i tuoi server.

Questo esempio utilizza tre server Debian 11 con i seguenti dettagli:

Hostname       IP Address  
--------------------------  
pxc01       192.168.5.15  
pxc02       192.168.5.16  
pxc03       192.168.5.17

Quando tutti i server sono pronti, puoi iniziare a installare il Percona XtraDB Cluster.

Configurazione degli host e del firewall

Per prima cosa, devi configurare il file /etc/hosts su ciascun server per garantire che ogni nome host venga risolto all’indirizzo IP corretto, quindi configurare un firewall per aprire alcune porte che Percona XtraDB Cluster utilizzerà. Questo devi farlo su tutti i server.

Di seguito sono riportati i dettagli delle porte di Percona XtraDB Cluster che devi aprire sul tuo firewall.

Ports   Used for  
---------------------------  
3306    Connessione client MySQL e SST (State Snapshot Transfer)  
4444    SST tramite Percona XtraBackup  
4567    traffico di replica write-set (su TCP) e replica multicast (su TCP e UDP)  
4568    IST (Incremental State Transfer)

Per iniziare, apri il file di configurazione ‘/etc/hosts’ utilizzando il seguente editor nano.

sudo nano /etc/hosts

Aggiungi le seguenti righe al file e assicurati di cambiare i dettagli degli indirizzi IP e dei nomi host con il tuo ambiente.

192.168.5.15  pxc01  
192.168.5.16  pxc02  
192.168.5.17  pxc03

Salva e chiudi il file quando hai finito.

Ora inserisci il seguente comando ‘apt install’ per installare il pacchetto del firewall ufw. Quando richiesto, inserisci y per confermare e premi INVIO per procedere.

sudo apt install ufw

install ufw

Dopo che ufw è stato installato, esegui il seguente comando ufw per aggiungere il servizio OpenSSH. Questo garantirà che non sarai bloccato dal tuo server. E se hai una porta SSH personalizzata, puoi semplicemente cambiare il parametro ‘OpenSSH’ con la tua porta SSH.

sudo ufw allow OpenSSH

Successivamente, inserisci il seguente comando ufw per aprire alcune porte che Percona XtraDB Cluster utilizzerà. Assicurati di cambiare la subnet di un indirizzo IP interno con il tuo ambiente attuale.

sudo ufw allow from 192.168.5.1/24 proto tcp to any port 3306  
sudo ufw allow from 192.168.5.1/24 proto tcp to any port 4444  
sudo ufw allow from 192.168.5.1/24 proto tcp to any port 4567  
sudo ufw allow from 192.168.5.1/24 proto udp to any port 4567  
sudo ufw allow from 192.168.5.1/24 proto tcp to any port 4568

setup ufw

Dopo di che, esegui e abilita il firewall ufw inserendo il comando ‘ufw enable’. Quando richiesto, inserisci y per confermare e premi INVIO per procedere. Un output ‘Il firewall è attivo e abilitato all’avvio del sistema’ conferma che il firewall ufw è in esecuzione e si avvierà automaticamente all’avvio del sistema.

sudo ufw enable

Infine, verifica lo stato del firewall ufw utilizzando il seguente comando.

sudo ufw status

Dovresti ricevere un output simile a questo.

verify ufw

Installazione di Percona XtraDB Cluster

In questa sezione, aggiungerai e configurerai il repository Percona XtraDB per distribuzioni basate su Debian. Quindi, installerai Percona XtraDB su tutti i tuoi server.

Inoltre, durante l’installazione, ti verrà chiesto di impostare la password root di MySQL e di configurare il plugin di autenticazione predefinito per Percona XtraDB Cluster. Infine, verificherai l’installazione di Percona XtraDB Cluster accedendo alla shell di MySQL tramite l’utente root di MySQL e la password che hai configurato.

Per iniziare, inserisci il seguente comando apt per installare alcune dipendenze di base. Inserisci y quando richiesto e premi INVIO per procedere.

sudo apt install wget gnupg2 lsb-release curl -y

install basic dependencies

Successivamente, scarica il pacchetto del repository Percona XtraDB tramite il seguente comando wget. Una volta scaricato, installalo tramite il comando ‘dpkg -i‘ qui sotto.

wget -q https://repo.percona.com/apt/percona-release_latest.generic_all.deb  
sudo dpkg -i percona-release_latest.generic_all.deb

add repo percona xtradb

Ora aggiorna e aggiorna l’indice dei pacchetti Debian e esegui il comando ‘percona-release‘ per configurare il repository di Percona XtraDB Cluster. In questo esempio, abiliterai il pacchetto Percona XtraDB Cluster v8.0, che è equivalente al server MySQL v8.0.

sudo apt update  
sudo percona-release setup pxc80

Aggiorna il repository.

refresh repo

Abilita il repository Percona XtraDB Cluster v8.0.

enable percona 80

Una volta abilitato il repository, inserisci il comando ‘apt install’ per installare il pacchetto ‘percona-xtradb-cluster’ sui tuoi sistemi. Inserisci y per confermare l’installazione e premi INVIO per procedere.

sudo apt install percona-xtradb-cluster

install percona extradb

Durante l’installazione di Percona XtraDB Cluster, ti verrà chiesto di impostare la password root di MySQL.

Inserisci la nuova password forte e seleziona OK.

setup password

Ripeti la tua password e seleziona di nuovo OK.

Per il plugin di autenticazione predefinito di MySQL, scegli l’opzione ‘Usa la crittografia della password forte (RACCOMANDATO)‘ e seleziona OK.

setup password

Ora Percona XtraDB Cluster dovrebbe essere installato e si avvierà e sarà abilitato automaticamente.

Quando Percona XtraDB Cluster è installato, inserisci il seguente comando per verificare lo stato del servizio MySQL.

sudo systemctl is-enabled mysql  
sudo systemctl status mysql

Un output ‘enabled‘ conferma che il server MySQL è abilitato e si avvierà automaticamente all’avvio del sistema. E l’output ‘active (running)‘ conferma che il server MySQL è in esecuzione.

setup auth

Per verificare la tua password root di MySQL, accedi alla shell di MySQL tramite il comando ‘mysql‘ qui sotto. Quando ti viene chiesta la password, inserisci la tua password root di MySQL.

sudo mysql -u root -p

Quando hai successo, dovresti ottenere la shell di MySQL.

login to mysql

Puoi anche verificare i dettagli dello stato del tuo server MySQL inserendo la seguente query.

sudo systemctl status mysql

Dovresti ricevere un output simile a questo - Hai effettuato l’accesso al MySQL 8.0 Percona XtraDB Cluster.

verify mysql

A questo punto, hai ora configurato il file /etc/hosts del tuo sistema, installato e configurato il firewall ufw e anche installato il MySQL 8.0 di Percona XtraDB Cluster su tutti i tuoi server. Sei pronto per iniziare a configurare Percona XtraDB Cluster.

Arresto del servizio Percona XtraDB Cluster

Prima di iniziare a configurare il Percona XtraDB Cluster, devi assicurarti che il server MySQL sia arrestato.

Inserisci il seguente comando systemctl per arrestare il server MySQL sui tuoi server. Quindi, verifica lo stato del server MySQL per assicurarti che il servizio sia arrestato.

sudo systemctl stop mysql

Un output ‘inactive (dead)‘ conferma che il server MySQL è arrestato.

Puoi ora iniziare a inizializzare Percona XtraDB Cluster per il primo nodo ‘pxc01‘.

Copia dei certificati SSL/TLS

Percona XtraDB Cluster ha due tipi di crittografia del traffico: una connessione client-server e traffico di replica. Nella più recente versione di Percona XtraDB Cluster v8.0, tutto il traffico di replica è abilitato per impostazione predefinita per migliorare la sicurezza.

Durante l’installazione di Percona XtraDB Cluster, SSL/TLS viene generato automaticamente nella directory dei dati ‘/var/lib/mysql‘. Inserisci il seguente comando per controllare l’elenco dei certificati SL/TLS nella directory ‘/var/lib/mysql‘.

ls /var/lib/mysql/*.pem

Dovresti vedere tre tipi di certificati SSL/TLS, Client, Server e CA.

Per creare e configurare Percona XtraDB Cluster, tutti i server devono avere gli stessi certificati CA e Server. Quindi, devi copiare i certificati CA e Server predefiniti da ‘pxc01‘ a ‘pxc02‘ e ‘pxc03‘.

Sul server ‘pxc01‘, sposta la tua directory di lavoro nella directory ‘/var/lib/mysql’.

cd /var/lib/mysql

Inserisci il seguente comando scp per copiare i certificati CA e Server nei server ‘pxc02‘ e ‘pxc03‘.

scp server-key.pem server-cert.pem ca.pem root@pax02:/var/lib/mysql  
scp server-key.pem server-cert.pem ca.pem root@pax03:/var/lib/mysql

Riceverai un output simile a questo - Copia dei certificati CA e Server da ‘pxc01‘ a ‘pxc02‘ e ‘pxc03‘ server.

Con i certificati SSL/TLS copiati, puoi inizializzare il Percona XtraDB Cluster.

Inizializzazione di Percona XtraDB Cluster sul primo nodo

In questa sezione, inizializzerai il Percona XtraDB Cluster dal primo nodo server ‘pxc01‘. Assicurati di eseguire i seguenti passaggi sul server ‘pxc01‘.

Apri il file di configurazione di MySQL ‘/etc/mysql/my.cnf’ utilizzando il seguente comando dell’editor nano.

sudo nano /etc/mysql/my.cnf

Aggiungi le seguenti righe al file. Assicurati di cambiare il valore di ‘wsrep_cluster_address‘ con gli indirizzi IP di tutti i tuoi server. Inoltre, nel ‘wsrep_node_address‘, devi inserire l’indirizzo IP di ‘pxc01‘.

[mysqld]  
datadir=/var/lib/mysql  
user=mysql  
  
# Percorso della libreria Galera  
wsrep_provider=/usr/lib/libgalera_smm.so  
  
# L'URL di connessione al cluster contiene gli IP di pxc01, pxc02 e pxc03  
wsrep_cluster_address=gcomm://192.168.5.15,192.168.5.16,192.168.5.17  
  
# Affinché Galera funzioni correttamente, il formato del binlog deve essere ROW  
binlog_format=ROW  
  
# L'uso del motore di archiviazione MyISAM non è raccomandato.  
default_storage_engine=InnoDB  
  
# Questo modo di blocco autoincremento InnoDB è un requisito per Galera  
innodb_autoinc_lock_mode=2  
  
# Indirizzo nodo 1  
wsrep_node_address=192.168.5.15  
  
# Metodo SST  
wsrep_sst_method=xtrabackup-v2  
  
# Nome del cluster  
wsrep_cluster_name=pxc_cluster  
  
#pxc_strict_mode valori consentiti: DISABLED,PERMISSIVE,ENFORCING,MASTER  
pxc_strict_mode=ENFORCING  
  
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"  
  
[sst]  
encrypt=4  
ssl-key=server-key.pem  
ssl-ca=ca.pem

Salva e chiudi il file ‘/etc/mysql/my.cnf‘ quando hai finito.

mysql confog pxc01

Successivamente, esegui il seguente comando systemctl per avviare e inizializzare il Percona XtraDB Cluster.

Il ‘mysql@bootstrap‘ è un servizio systemd utilizzato per eseguire Percona XtraDB Cluster e questo è diverso dal servizio ‘mysql‘. Quando si costruisce un server MySQL con Percona XtraDB Cluster, il primo nodo deve essere eseguito con il servizio ‘mysql@bootstrap‘.

systemctl start [email protected]

Quando hai finito, inserisci il seguente comando mysql per accedere alla shell di MySQL. Inserisci la password root del tuo server MySQL.

sudo mysql -u root -p

Inserisci la seguente query MySQL per assicurarti che il cluster sia inizializzato.

show status like 'wsrep%';

Dovresti ricevere un output simile a questo - Nella sezione ‘wsrep_cluster_size‘ vedrai il valore ‘1‘, il che significa che il Percona XtraDB Cluster è inizializzato con 1 server. Otterrai anche gli indirizzi IP dei server nella sezione ‘wsrep_incoming_address‘. Infine, il nodo è nello stato Sincronizzato, il che significa che è completamente connesso e pronto per la replica del set di scrittura.

cluster enabled

Con il primo nodo inizializzato, sei pronto per aggiungere il secondo e il terzo nodo ‘pxc02‘ e ‘pxc03‘ al Percona XtraDB Cluster.

Aggiunta di Node2 e Node3 al Cluster

Aggiungere nuovi nodi al Percona XtraDB Cluster è simile all’inizializzazione del primo nodo. Di seguito sono riportati i semplici passaggi che dovrai seguire:

  • Modifica il file di configurazione di MySQL ‘/etc/mysql/my.cnf’.
  • Avvia il server MySQL
  • Accedi alla shell di MySQL e verifica il Percona XtraDB Cluster.

Ora, iniziamo ad aggiungere ‘pxc02‘ e ‘pxc03‘ al Percona XtraDB Cluster.

Aggiunta di Node pxc02

Accedi al server ‘pxc02‘ e apri il file di configurazione di MySQL ‘/etc/mysql/my.cnf‘ utilizzando il seguente comando dell’editor nano.

sudo nano /etc/mysql/my.cnf

Aggiungi le seguenti righe al file e assicurati di cambiare il valore di ‘wsrep_cluster_address‘ con gli indirizzi IP di tutti i tuoi server. Inoltre, nel ‘wsrep_node_address‘, devi inserire l’indirizzo IP di ‘pxc02‘.

[mysqld]  
  
datadir=/var/lib/mysql  
user=mysql  
  
# Percorso della libreria Galera  
wsrep_provider=/usr/lib/libgalera_smm.so  
  
# L'URL di connessione al cluster contiene gli IP di pxc01, pxc02 e pxc03  
wsrep_cluster_address=gcomm://192.168.5.15,192.168.5.16,192.168.5.17  
  
# Affinché Galera funzioni correttamente, il formato del binlog deve essere ROW  
binlog_format=ROW  
  
# L'uso del motore di archiviazione MyISAM non è raccomandato  
default_storage_engine=InnoDB  
  
# Questo modo di blocco autoincremento InnoDB è un requisito per Galera  
innodb_autoinc_lock_mode=2  
  
# Indirizzo nodo #2  
wsrep_node_address=192.168.5.16  
  
# Nome del cluster  
wsrep_cluster_name=pxc_cluster  
  
# Metodo SST  
wsrep_sst_method=xtrabackup-v2  
  
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"  
  
[sst]  
encrypt=4  
ssl-key=server-key.pem  
ssl-ca=ca.pem  
ssl-cert=server-cert.pem

Salva e chiudi il file ‘/etc/mysql/my.cnf‘ quando hai finito.

mysql cnf pxc02

Successivamente, avvia il server MySQL inserendo il seguente comando dell’utility systemctl. Quindi verifica lo stato del server MySQL per assicurarti che sia in esecuzione.

Questo avvierà il servizio MySQL e unirà il Percona XtraDB Cluster inizializzato sul server ‘pxc01‘.

sudo systemctl start mysql  
sudo systemctl status mysql

start and verify mysql pxc02

Per verificare che il processo sia riuscito, dovresti accedere alla shell di MySQL. Inserisci il seguente comando per accedere alla shell di MySQL come utente root. Quando richiesto, inserisci la tua password root di MySQL.

sudo mysql -u root -p

Una volta effettuato l’accesso, inserisci la seguente query MySQL per verificare lo stato del Percona XtraDB Cluster.

show status like 'wsrep%';

Dovresti ricevere un output simile a questo - Nella sezione ‘wsrep_cluster_size‘ vedrai il valore ‘2’, il che significa che ci sono due server disponibili nel Percona XtraDB Cluster. Otterrai anche gli indirizzi IP dei server nella sezione ‘wsrep_incoming_address‘, che sono gli indirizzi IP dei server pxc01 e pxc02. Infine, il nodo è nello stato Sincronizzato, il che significa che è completamente connesso e pronto per la replica del set di scrittura.

verify cluster pxc02

Con questo, il Percona XtraDB Cluster è ora in esecuzione con due nodi/server pxc01 e pxc02. Successivamente, spostati sul server pxc03 per aggiungerlo al Percona XtraDB Cluster.

Aggiunta di Node pxc03

Accedi al server ‘pxc03‘ e apri il file di configurazione di MySQL ‘/etc/mysql/my.cnf‘ utilizzando il seguente comando dell’editor nano.

sudo nano /etc/mysql/my.cnf

Aggiungi le seguenti righe al file e assicurati di cambiare il valore di ‘wsrep_cluster_address‘ con gli indirizzi IP di tutti i tuoi server. Inoltre, nel ‘wsrep_node_address‘, devi inserire l’indirizzo IP di ‘pxc03‘.

[mysqld]  
  
datadir=/var/lib/mysql  
user=mysql  
  
# Percorso della libreria Galera  
wsrep_provider=/usr/lib/libgalera_smm.so  
  
# L'URL di connessione al cluster contiene gli IP di pxc01, pxc02 e pxc03  
wsrep_cluster_address=gcomm://192.168.5.15,192.168.5.16,192.168.5.17  
  
# Affinché Galera funzioni correttamente, il formato del binlog deve essere ROW  
binlog_format=ROW  
  
# L'uso del motore di archiviazione MyISAM non è raccomandato  
default_storage_engine=InnoDB  
  
# Questo modo di blocco autoincremento InnoDB è un requisito per Galera  
innodb_autoinc_lock_mode=2  
  
# Indirizzo nodo #2  
wsrep_node_address=192.168.5.17  
  
# Nome del cluster  
wsrep_cluster_name=pxc_cluster  
  
# Metodo SST  
wsrep_sst_method=xtrabackup-v2  
  
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"  
  
[sst]  
encrypt=4  
ssl-key=server-key.pem  
ssl-ca=ca.pem  
ssl-cert=server-cert.pem

Salva e chiudi il file ‘/etc/mysql/my.cnf‘ quando hai finito.

mysql conf px03

Successivamente, avvia il server MySQL inserendo il seguente comando dell’utility systemctl. Quindi verifica lo stato del server MySQL per assicurarti che sia in esecuzione.

Questo avvierà il servizio MySQL e unirà il Percona XtraDB Cluster.

sudo systemctl start mysql

start verify pxc03

Per verificare che il processo sia riuscito, dovresti accedere alla shell di MySQL. Inserisci il seguente comando per accedere alla shell di MySQL come utente root. Quando richiesto, inserisci la tua password root di MySQL.

sudo mysql -u root -p

Una volta effettuato l’accesso, inserisci la seguente query MySQL per verificare lo stato del Percona XtraDB Cluster.

show status like 'wsrep%';

Dovresti ricevere un output simile a questo - Nella sezione ‘wsrep_cluster_size‘ vedrai il valore ‘3’, il che significa che tre server sono disponibili nel Percona XtraDB Cluster. Otterrai anche gli indirizzi IP dei server nella sezione ‘wsrep_incoming_address‘, che sono gli indirizzi IP dei server pxc01, pxc02 e pxc03. Infine, il nodo è nello stato Sincronizzato, il che significa che è completamente connesso e pronto per la replica del set di scrittura.

verify cluster status pxc03

Con questo, il Percona XtraDB Cluster è ora in esecuzione con tre server Debian pxc01, pxc02 e pxc03. Hai ora completato il deployment del Percona XtraDB Cluster con tre server Debian 11. Nel passaggio successivo, verificherai la replica del database tra il server Percona XtraDB Cluster.

Test della replica

Accedi alla shell di MySQL dal server ‘pxc02‘ e crea un nuovo database ‘percona‘.

sudo mysql -u root -p  
CREATE DATABASE percona;

Ora spostati sul server ‘pxc03‘, accedi alla shell di MySQL tramite l’utente root di MySQL, quindi passa al database ‘percona‘ che hai creato dal server ‘pxc02‘.

sudo mysql -u root -p  
USE percona;

Quando hai successo, dovresti ricevere un output come ‘Database cambiato’. Questo conferma anche che il database ‘percona’ è replicato tra i server Percona XtraDB Cluster.

verify replication

Successivamente, esegui la seguente query MySQL per creare una nuova tabella ‘example‘ dal server ‘pxc03‘.

CREATE TABLE example (node_id INT PRIMARY KEY, node_name VARCHAR(30));

verify replication 2

Quindi, torna di nuovo al server ‘pxc01‘ e esegui la seguente query per inserire nuovi dati nel database ‘percona‘.

INSERT INTO percona.example VALUES (1, 'pxc01');  
INSERT INTO percona.example VALUES (2, 'pxc02');  
INSERT INTO percona.example VALUES (3, 'pxc03');

Infine, torna al server ‘pxc02‘ e esegui la seguente query per recuperare i dati dal database ‘percona‘ e dalla tabella ‘example‘.

SELECT * FROM percona.example;

Dovresti ricevere un output simile a questo - I dati sono disponibili sul Percona XtraDB Cluster ‘pxc02‘. Con questo, la replica tra i server Percona XtraDB Cluster sta funzionando, il che significa che il tuo deployment di Percona XtraDB Cluster sui server Debian 11 è anche riuscito.

verify replication pxc03

Conclusione

In questo tutorial, hai installato e configurato Percona XtraDB Cluster con tre server Debian 11. Hai inizializzato Percona XtraDB Cluster e aggiunto due nodi/server al Percona XtraDB Cluster. Inoltre, hai protetto Percona XtraDB Cluster tramite il firewall ufw.

In aggiunta a ciò, hai anche protetto Percona XtraDB Cluster crittografando il traffico tra tutti i server utilizzando certificati SSL/TLS. Questo è stato ottenuto con l’opzione ‘pxc-encrypt-cluster-traffic’, abilitata per impostazione predefinita.

Con questo, puoi ora iniziare ad aggiungere più server al tuo Percona XtraDB Cluster utilizzando i passaggi che hai appreso e aggiungendo nodi aggiuntivi che abiliteranno alta disponibilità e bilanciamento del carico su Percona XtraDB Cluster. Per saperne di più, visita la documentazione ufficiale di Percona XtraDB Cluster.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.