Banco de Dados · 15 min read · Sep 26, 2025
Como Instalar o Percona XtraDB Cluster no Debian 11

Percona XtraDB Cluster é uma solução de clustering de banco de dados totalmente open-source para MySQL. Ele permite que você crie uma implantação robusta de servidor MySQL de alta disponibilidade que oferece alto desempenho. A versão mais recente do Percona XtraDB Cluster é 8.0, que é totalmente compatível com a edição comunitária do MySQL Server 8.0.
Percona XtraDB Cluster fornece recursos como replicação síncrona, replicação de múltiplas fontes, provisionamento automático de nós, configuração automática de criptografia SSL e desempenho otimizado.
Percona XtraDB Cluster garante a alta disponibilidade do seu servidor de banco de dados, fornece escalabilidade linear e previne tempo de inatividade e perda de dados.
Neste tutorial, você instalará e configurará o cluster MySQL via Percona XtraDB Cluster (PXC) em servidores Debian 11. Você instalará o Percona XtraDB Cluster - uma solução open-source para cluster MySQL - em múltiplos servidores Debian, e então configurará o cluster MySQL para habilitar a replicação entre múltiplos servidores MySQL.
Pré-requisitos
Para completar este tutorial, você precisará de dois ou mais servidores rodando Debian 11. Além disso, você deve ter um usuário não-root com privilégios de administrador sudo/root em todos os seus servidores.
Este exemplo utiliza três servidores Debian 11 com os seguintes detalhes:
Hostname IP Address
--------------------------
pxc01 192.168.5.15
pxc02 192.168.5.16
pxc03 192.168.5.17Quando todos os servidores estiverem prontos, você pode começar a instalar o Percona XtraDB Cluster.
Configurar Hosts e Firewall
Primeiro, você deve configurar o arquivo /etc/hosts em cada servidor para garantir que cada nome de host seja resolvido para o endereço IP correto, e então configurar um firewall para abrir algumas portas que o Percona XtraDB Cluster usará. Isso deve ser feito em todos os servidores.
Abaixo estão os detalhes das portas do Percona XtraDB Cluster que você deve abrir no seu firewall.
Ports Used for
---------------------------
3306 Conexão do cliente MySQL e SST (State Snapshot Transfer)
4444 SST via Percona XtraBackup
4567 Tráfego de replicação de write-set (via TCP) e replicação multicast (via TCP e UDP)
4568 IST (Incremental State Transfer)Para começar, abra o arquivo de configuração ‘/etc/hosts’ usando o seguinte editor nano.
sudo nano /etc/hostsAdicione as seguintes linhas ao arquivo e tenha certeza de alterar os detalhes dos endereços IP e nomes de host de acordo com seu ambiente.
192.168.5.15 pxc01
192.168.5.16 pxc02
192.168.5.17 pxc03Salve e saia do arquivo quando terminar.
Agora insira o seguinte comando ‘apt install’ para instalar o pacote de firewall ufw. Quando solicitado, digite y para confirmar e pressione ENTER para prosseguir.
sudo apt install ufw
Após a instalação do ufw, execute o seguinte comando ufw para adicionar o serviço OpenSSH. Isso garantirá que você não fique bloqueado fora do seu servidor. E se você tiver uma porta SSH personalizada, pode simplesmente alterar o parâmetro ‘OpenSSH’ pela sua porta SSH.
sudo ufw allow OpenSSHEm seguida, insira o seguinte comando ufw para abrir algumas portas que o Percona XtraDB Cluster usará. Certifique-se de alterar a sub-rede de um endereço IP interno de acordo com seu ambiente atual.
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
Depois disso, execute e habilite o firewall ufw inserindo o comando ‘ufw enable’. Quando solicitado, digite y para confirmar e pressione ENTER para prosseguir. Uma saída ‘Firewall is active and enabled on system startup’ confirma que o firewall ufw está em execução e será iniciado automaticamente na inicialização do sistema.
sudo ufw enablePor fim, verifique o status do firewall ufw usando o seguinte comando.
sudo ufw statusVocê deve receber uma saída como esta.

Instalando o Percona XtraDB Cluster
Nesta seção, você adicionará e configurará o repositório Percona XtraDB para distribuição baseada em Debian. Em seguida, você instalará o Percona XtraDB em todos os seus servidores.
Além disso, durante a instalação, você será solicitado a configurar a senha root do MySQL e a configurar o plugin de autenticação padrão para o Percona XtraDB Cluster. Por fim, você verificará a instalação do Percona XtraDB Cluster fazendo login no shell do MySQL via usuário root do MySQL e a senha que você configurou.
Para começar, insira o seguinte comando apt para instalar algumas dependências básicas. Digite y quando solicitado e pressione ENTER para prosseguir.
sudo apt install wget gnupg2 lsb-release curl -y
Em seguida, baixe o pacote do repositório Percona XtraDB via o seguinte comando wget. Uma vez baixado, instale-o via o comando ‘dpkg -i‘ abaixo.
wget -q https://repo.percona.com/apt/percona-release_latest.generic_all.deb
sudo dpkg -i percona-release_latest.generic_all.deb
Agora atualize e atualize seu índice de pacotes Debian e execute o comando ‘percona-release‘ para configurar o repositório do Percona XtraDB Cluster. Neste exemplo, você habilitará o pacote do Percona XtraDB Cluster v8.0, que é equivalente ao servidor MySQL v8.0.
sudo apt update
sudo percona-release setup pxc80Atualize o repositório.

Habilite o repositório do Percona XtraDB Cluster v8.0.

Uma vez que o repositório esteja habilitado, insira o comando ‘apt install‘ para instalar o pacote ‘percona-xtradb-cluster‘ em seus sistemas. Digite y para confirmar a instalação e pressione ENTER para prosseguir.
sudo apt install percona-xtradb-cluster
Durante a instalação do Percona XtraDB Cluster, você deve ser solicitado a configurar a senha root do MySQL.
Digite a nova senha forte e selecione OK.

Repita sua senha e selecione OK novamente.
Para o plugin de autenticação padrão do MySQL, escolha a opção ‘Use strong password encryption (RECOMMENDED)‘ e selecione OK.

Agora o Percona XtraDB Cluster deve estar instalado e será iniciado e habilitado automaticamente.
Quando o Percona XtraDB Cluster estiver instalado, insira o seguinte comando para verificar o status do serviço MySQL.
sudo systemctl is-enabled mysql
sudo systemctl status mysqlUma saída ‘enabled‘ confirma que o servidor MySQL está habilitado e será iniciado automaticamente na inicialização do sistema. E a saída ‘active (running)‘ confirma que o servidor MySQL está em execução.

Para verificar sua senha root do MySQL, faça login no shell do MySQL via o comando ‘mysql‘ abaixo. Quando solicitado pela senha, insira sua senha root do MySQL.
sudo mysql -u root -pQuando bem-sucedido, você deve obter o shell do MySQL.

Você também pode verificar os detalhes do status do seu servidor MySQL inserindo a seguinte consulta.
sudo systemctl status mysqlVocê deve receber uma saída semelhante a esta - Você fez login no Percona XtraDB Cluster MySQL 8.0.

Neste ponto, você agora configurou o arquivo /etc/hosts do seu sistema, instalou e configurou o firewall ufw, e também instalou o Percona XtraDB Cluster MySQL 8.0 em todos os seus servidores. Você está pronto para começar a configurar o Percona XtraDB Cluster.
Parando o Serviço Percona XtraDB Cluster
Antes de começar a configurar o Percona XtraDB Cluster, você deve garantir que o servidor MySQL esteja parado.
Insira o seguinte comando do systemctl para parar o servidor MySQL em seus servidores. Em seguida, verifique o status do servidor MySQL para garantir que o serviço esteja parado.
sudo systemctl stop mysqlUma saída ‘inactive (dead)‘ confirma que o servidor MySQL está parado.
Agora você pode começar a inicializar o Percona XtraDB Cluster para o primeiro nó ‘pxc01‘.
Copiando Certificados SSL/TLS
O Percona XtraDB Cluster possui dois tipos de criptografia de tráfego: uma conexão cliente-servidor e tráfego de replicação. Na versão mais recente do Percona XtraDB Cluster v8.0, todo o tráfego de replicação é habilitado por padrão para aumentar a segurança.
Durante a instalação do Percona XtraDB Cluster, SSL/TLS é gerado automaticamente no diretório de dados ‘/var/lib/mysql‘. Insira o seguinte comando para verificar a lista de certificados SL/TLS no diretório ‘/var/lib/mysql‘.
ls /var/lib/mysql/*.pemVocê deve ver três tipos de certificados SSL/TLS, Cliente, Servidor e CA.
Para criar e configurar o Percona XtraDB Cluster, todos os servidores devem ter os mesmos certificados CA e de Servidor. Portanto, você deve copiar os certificados CA e de Servidor padrão do ‘pxc01‘ para ‘pxc02‘ e ‘pxc03‘.
No servidor ‘pxc01‘, mude seu diretório de trabalho para o diretório ‘/var/lib/mysql’.
cd /var/lib/mysqlInsira o seguinte comando scp para copiar os certificados CA e de Servidor para os servidores ‘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/mysqlVocê receberá uma saída semelhante a esta - Copie os certificados CA e de Servidor do ‘pxc01‘ para os servidores ‘pxc02‘ e ‘pxc03‘.
Com os certificados SSL/TLS copiados, você pode inicializar o Percona XtraDB Cluster.
Inicializando o Percona XtraDB Cluster no Primeiro Nó
Nesta seção, você inicializará o Percona XtraDB Cluster a partir do primeiro servidor nó ‘pxc01‘. Certifique-se de executar os seguintes passos no servidor ‘pxc01‘.
Abra o arquivo de configuração do MySQL ‘/etc/mysql/my.cnf’ usando o seguinte comando do editor nano.
sudo nano /etc/mysql/my.cnfAdicione as seguintes linhas ao arquivo. Certifique-se de alterar o valor de ‘wsrep_cluster_address‘ com os endereços IP de todos os seus servidores. Além disso, no ‘wsrep_node_address‘, você deve inserir o endereço IP do ‘pxc01‘.
[mysqld]
datadir=/var/lib/mysql
user=mysql
# Caminho para a biblioteca Galera
wsrep_provider=/usr/lib/libgalera_smm.so
# URL de conexão do cluster contém os IPs de pxc01, pxc02 e pxc03
wsrep_cluster_address=gcomm://192.168.5.15,192.168.5.16,192.168.5.17
# Para que o Galera funcione corretamente, o formato do binlog deve ser ROW
binlog_format=ROW
# O uso do mecanismo de armazenamento MyISAM não é recomendado.
default_storage_engine=InnoDB
# Este modo de bloqueio de auto incremento do InnoDB é um requisito para o Galera
innodb_autoinc_lock_mode=2
# Endereço do Nó 1
wsrep_node_address=192.168.5.15
# Método SST
wsrep_sst_method=xtrabackup-v2
# Nome do cluster
wsrep_cluster_name=pxc_cluster
#pxc_strict_mode valores permitidos: 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.pemSalve e feche o arquivo ‘/etc/mysql/my.cnf‘ quando terminar.

Em seguida, execute o seguinte comando systemctl para inicializar e inicializar o Percona XtraDB Cluster.
O ‘mysql@bootstrap‘ é um serviço systemd que é usado para executar o Percona XtraDB Cluster e isso é diferente do serviço ‘mysql‘. Ao construir um servidor MySQL com o Percona XtraDB Cluster, o primeiro nó deve ser executado com o serviço ‘mysql@bootstrap‘.
systemctl start [email protected]Quando terminar, insira o seguinte comando mysql para fazer login no shell do MySQL. Digite a senha root do seu servidor MySQL.
sudo mysql -u root -pInsira a seguinte consulta MySQL para garantir que o cluster esteja inicializado.
show status like 'wsrep%';Você deve receber uma saída como esta - Na seção ‘wsrep_cluster_size‘ você verá o valor ‘1‘, o que significa que o Percona XtraDB Cluster está inicializado com 1 servidor. Você também obterá os endereços IP do servidor na seção ‘wsrep_incoming_address‘. Por fim, o nó está no estado Sincronizado, o que significa que está totalmente conectado e pronto para replicação de write-set.

Com o primeiro nó inicializado, você está pronto para adicionar o segundo e o terceiro nós ‘pxc02‘ e ‘pxc03‘ ao Percona XtraDB Cluster.
Adicionando o Nó 2 e o Nó 3 ao Cluster
Adicionar novos nós ao Percona XtraDB Cluster é semelhante à inicialização do primeiro nó. Abaixo estão os passos simples que você precisará seguir:
- Modificar o arquivo de configuração do MySQL ‘/etc/mysql/my.cnf’.
- Iniciar o servidor MySQL
- Fazer login no shell do MySQL e verificar o Percona XtraDB Cluster.
Agora, vamos começar a adicionar ‘pxc02‘ e ‘pxc03‘ ao Percona XtraDB Cluster.
Adicionando o Nó pxc02
Faça login no servidor ‘pxc02‘ e abra o arquivo de configuração do MySQL ‘/etc/mysql/my.cnf‘ usando o seguinte comando do editor nano.
sudo nano /etc/mysql/my.cnfAdicione as seguintes linhas ao arquivo e tenha certeza de alterar o valor de ‘wsrep_cluster_address‘ com os endereços IP de todos os seus servidores. Além disso, no ‘wsrep_node_address‘, você deve inserir o endereço IP do ‘pxc02‘.
[mysqld]
datadir=/var/lib/mysql
user=mysql
# Caminho para a biblioteca Galera
wsrep_provider=/usr/lib/libgalera_smm.so
# URL de conexão do cluster contém os IPs de pxc01, pxc02 e pxc03
wsrep_cluster_address=gcomm://192.168.5.15,192.168.5.16,192.168.5.17
# Para que o Galera funcione corretamente, o formato do binlog deve ser ROW
binlog_format=ROW
# O uso do mecanismo de armazenamento MyISAM não é recomendado
default_storage_engine=InnoDB
# Este modo de bloqueio de auto incremento do InnoDB é um requisito para o Galera
innodb_autoinc_lock_mode=2
# Endereço do Nó #2
wsrep_node_address=192.168.5.16
# Nome do cluster
wsrep_cluster_name=pxc_cluster
# Método 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.pemSalve e feche o arquivo ‘/etc/mysql/my.cnf‘ quando terminar.

Em seguida, inicie o servidor MySQL inserindo o seguinte comando do systemctl. Em seguida, verifique o status do servidor MySQL para garantir que ele esteja em execução.
Isso iniciará o serviço MySQL e se juntará ao Percona XtraDB Cluster inicializado no servidor ‘pxc01‘.
sudo systemctl start mysql
sudo systemctl status mysql
Para verificar se o processo foi bem-sucedido, você deve fazer login no shell do MySQL. Insira o seguinte comando para fazer login no shell do MySQL como usuário root. Quando solicitado, insira sua senha root do MySQL.
sudo mysql -u root -pUma vez logado, insira a seguinte consulta MySQL para verificar o status do Percona XtraDB Cluster.
show status like 'wsrep%';Você deve receber uma saída como esta - Na seção ‘wsrep_cluster_size‘ você verá o valor ‘2’, o que significa que há dois servidores disponíveis no Percona XtraDB Cluster. Você também obterá os endereços IP do servidor na seção ‘wsrep_incoming_address‘, que são os endereços IP dos servidores pxc01 e pxc02. Por fim, o nó está no estado Sincronizado, o que significa que está totalmente conectado e pronto para replicação de write-set.

Com isso, o Percona XtraDB Cluster agora está em execução com dois nós/servidores pxc01 e pxc02. Em seguida, vá para o servidor pxc03 para adicioná-lo ao Percona XtraDB Cluster.
Adicionando o Nó pxc03
Faça login no servidor ‘pxc03‘ e abra o arquivo de configuração do MySQL ‘/etc/mysql/my.cnf‘ usando o seguinte comando do editor nano.
sudo nano /etc/mysql/my.cnfAdicione as seguintes linhas ao arquivo e tenha certeza de alterar o valor de ‘wsrep_cluster_address‘ com os endereços IP de todos os seus servidores. Além disso, no ‘wsrep_node_address‘, você deve inserir o endereço IP do ‘pxc03‘.
[mysqld]
datadir=/var/lib/mysql
user=mysql
# Caminho para a biblioteca Galera
wsrep_provider=/usr/lib/libgalera_smm.so
# URL de conexão do cluster contém os IPs de pxc01, pxc02 e pxc03
wsrep_cluster_address=gcomm://192.168.5.15,192.168.5.16,192.168.5.17
# Para que o Galera funcione corretamente, o formato do binlog deve ser ROW
binlog_format=ROW
# O uso do mecanismo de armazenamento MyISAM não é recomendado
default_storage_engine=InnoDB
# Este modo de bloqueio de auto incremento do InnoDB é um requisito para o Galera
innodb_autoinc_lock_mode=2
# Endereço do Nó #2
wsrep_node_address=192.168.5.17
# Nome do cluster
wsrep_cluster_name=pxc_cluster
# Método 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.pemSalve e feche o arquivo ‘/etc/mysql/my.cnf‘ quando terminar.

Em seguida, inicie o servidor MySQL inserindo o seguinte comando do systemctl. Em seguida, verifique o status do servidor MySQL para garantir que ele esteja em execução.
Isso iniciará o serviço MySQL e se juntará ao Percona XtraDB Cluster.
sudo systemctl start mysql
Para verificar se o processo foi bem-sucedido, você deve fazer login no shell do MySQL. Insira o seguinte comando para fazer login no shell do MySQL como usuário root. Quando solicitado, insira sua senha root do MySQL.
sudo mysql -u root -pUma vez logado, insira a seguinte consulta MySQL para verificar o status do Percona XtraDB Cluster.
show status like 'wsrep%';Você deve receber uma saída como esta - Na seção ‘wsrep_cluster_size‘ você verá o valor ‘3’, o que significa que três servidores estão disponíveis no Percona XtraDB Cluster. Você também obterá os endereços IP do servidor na seção ‘wsrep_incoming_address‘, que são os endereços IP dos servidores pxc01, pxc02 e pxc03. Por fim, o nó está no estado Sincronizado, o que significa que está totalmente conectado e pronto para replicação de write-set.

Com isso, o Percona XtraDB Cluster agora está em execução com três servidores Debian pxc01, pxc02 e pxc03. Você agora terminou a implantação do Percona XtraDB Cluster com três servidores Debian 11. No próximo passo, você verificará a replicação do banco de dados entre o servidor Percona XtraDB Cluster.
Testando a Replicação
Faça login no shell do MySQL a partir do servidor ‘pxc02‘ e crie um novo banco de dados ‘percona‘.
sudo mysql -u root -p
CREATE DATABASE percona;Agora vá para o servidor ‘pxc03‘, faça login no shell do MySQL via usuário root do MySQL, e então mude para o banco de dados ‘percona‘ que você criou a partir do servidor ‘pxc02‘.
sudo mysql -u root -p
USE percona;Quando bem-sucedido, você deve receber uma saída como ‘Banco de dados alterado’. Isso também confirma que o banco de dados ‘percona’ está replicado entre os servidores Percona XtraDB Cluster.

Em seguida, execute a seguinte consulta MySQL para criar uma nova tabela ‘example‘ a partir do servidor ‘pxc03‘.
CREATE TABLE example (node_id INT PRIMARY KEY, node_name VARCHAR(30));
Então, volte para o servidor ‘pxc01‘ e execute a seguinte consulta para inserir novos dados no banco de dados ‘percona‘.
INSERT INTO percona.example VALUES (1, 'pxc01');
INSERT INTO percona.example VALUES (2, 'pxc02');
INSERT INTO percona.example VALUES (3, 'pxc03');Por fim, volte para o servidor ‘pxc02‘ e execute a seguinte consulta para recuperar os dados do banco de dados ‘percona‘ e da tabela ‘example‘.
SELECT * FROM percona.example;Você deve receber uma saída como esta - Os dados estão disponíveis no ‘pxc02‘ Percona XtraDB Cluster. Com isso, a replicação entre os servidores Percona XtraDB Cluster está funcionando, o que significa que sua implantação do Percona XtraDB Cluster em servidores Debian 11 também foi bem-sucedida.

Conclusão
Neste tutorial, você instalou e configurou o Percona XtraDB Cluster com três servidores Debian 11. Você inicializou o Percona XtraDB Cluster e adicionou dois nós/servidores ao Percona XtraDB Cluster. Além disso, você também protegeu o Percona XtraDB Cluster via firewall ufw.
Além disso, você também protegeu o Percona XtraDB Cluster criptografando o tráfego entre todos os servidores usando certificados SSL/TLS. Isso é alcançado com a opção ‘pxc-encrypt-cluster-traffic’, habilitada por padrão.
Com isso, você pode agora começar a adicionar mais servidores ao seu Percona XtraDB Cluster usando os passos que você aprendeu e adicionando nós adicionais que permitirão alta disponibilidade e balanceamento de carga no Percona XtraDB Cluster. Para saber mais, visite a documentação oficial do Percona XtraDB Cluster.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.