Perguntas Frequentes
O que é o MariaDB Galera Cluster?
MariaDB Galera Cluster é um cluster multi-master síncrono para MariaDB. Está disponível somente para o sistema operacional Linux e até a versão atual (10.1) somente suporta a engine de armazenamento XtraDB/InnoDB.
Cenário
No tutorial a seguir será utilizado:
- A versão 10.1 do MariaDB;
- 3 Servidores com CentOS 7 e 1GB de RAM para os nós do cluster;
- MariaDB-01: 192.168.1.1/24
- MariaDB-02: 192.168.1.2/24
- MariaDB-03: 192.168.1.3/24
Nada impede que a configuração seja feita em outra versão de sistema operacional.
Pre-requisitos
- Desative o SElinux abrindo o arquivo /etc/selinux/config e alterando a linha SELINUX=xxxx para SELINUX=disabled.
- Desativar o Firewall ou crie as regras necessárias.
- Atualize o sistema operacional com yum update.
- Adicione um IP Fixo na máquina editando o arquivo /etc/sysconfig/network-scripts/ifcfg-XXX. Conforme abaixo:
DEVICE=eth0 TYPE=Ethernet IPADDR=192.168.1.1 NETMASK=255.255.255.0 GATEWAY=192.168.1.254 ONBOOT=yes |
---|
- Altere o hostname da máquina seguindo suas configurações de DNS ou arquivo /etc/hosts/ (Teste a conectividade entre os nós com pings). Utilize o comando hostname set-hostname NOME_DO_SERVER
- Caso exista o MySQL instalado siga os passos abaixo.
- Desinstale os bancos existentes com sudo yum erase mysql-server mysql mysql-devel
- Apague a pasta do mysql com sudo rm –rf /var/lib/mysql/
- Mate os processos do mysql (caso existam).
Instalando e configurando o MariaDB
- Todos os comandos abaixo devem ser executados nos 3 nós do cluster como root.
- Adicione o repositório do MariaDB para a versão do seu sistema operacional (O mesmo pode ser conseguido na neste link). Neste tutorial utilizaremos o sistema operacional CentOS 7 com MariaDB 10.1, por isso devemos prosseguir da seguinte forma:
- Crie o arquivo de repositório /etc/yum.repos.d/MariaDB.repo e insira o conteúdo abaixo:
|
---|
- Instale o MariaDB com o comando yum install MariaDB-server MariaDB-client rsync galera
- Inicie o serviço do MariaDB com/etc/init.d/mysql start
- Realize as configurações iniciais com o comando /usr/bin/mysql_secure_installation
Configurando o Galera Cluster
- Pare o serviço do MySQL com service mysql stop
- Edite as configurações do Galera com vi /etc/my.cnf.d/server.cnf. Insira as configurações abaixo:
[galera] binlog_format=row |
---|
- Altere a linha wsrep_cluster_address para todos os IPS dos nós do cluster, separados por “,”.
- Altere a linha wsrep_cluster_name para o nome que deseja dar ao cluster.
- As linhas wsrep_node_name e wsrep_node_address devem ser alteradas de acordo com o nó em que as configurações estão sendo feitas.
- Por último a linha wsrep_sst_auth deve ter o usuário e a senha criada para o galera, separados por “:”.
- Com a linha wsrep_sst_method=rsync informamos que iremos utilizar o rsync para efetuar a sincronização. Desta forma iremos obter uma sincronização muito mais rápida e nao haverá a necessidade de utilizar usuário de replicação.
Iniciando o Cluster
- Inicie o primeironó do cluster com MySQL com o comandogalera_new_cluster, os demais nós podem ser iniciados normalmente com systemctl start mariadb
- Para checar se o host está no cluster digite o comando mysql –u root –p –e “show status like ‘wsrep%’”. Busque pelas linhaswsrep_incoming_addresses ewsrep_ready.
- Vale ressaltar que quando um nó é iniciado ele não permite qualquer conexão com o banco até que a sincronização esteja terminada.
- Podemos verificar se a sincronização está ocorrendo com o comandotop e verificando um consumo elevado de processamento pelo processo rsync
Dica
- O Galera Cluster irá replicar somente tabelas que utilizam a engine InnoDB. Para verificar se as tabelas de uma determinada database estão em InnoDB utilize o comando
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'NOME_DO_DB'; |
---|
- Auto Incremento, para mais informações sobre o funcionamento do Auto Incremente no Cluster Galera:
Pronto