SlideShare uma empresa Scribd logo
Escalando o Ambiente com
MariaDB Cluster
By Wagner Bianchi - Principal RDBA
wagner.bianchi@mariadb.com
Apresentação Pessoal
Wagner Bianchi ou somente Bianchi, como gosta de ser chamado é atualmente Principal Remote DBA na US/Finlandesa
MariaDB Corporation, tendo trabalhado anteriormente em empresas como Percona, Pythian, IBM e Oracle, sempre
com operações e entrega de serviços. Bianchi é focado em MariaDB/MySQL/Percona Server, atuando em projetos de
alta-disponibilidade, escalabilidade e análise de performance. Além disso, como trabalha em ambiente de operações,
tem experiência com soluções de provisionamento, orchestration e monitoramento. Formado em Gerenciamento de
Bancos de Dados pela Faculdade Infórium de Tecnologia, com MBA em Administração pela Função Getúlio Vargas e MBA
Oracle Database, Bianchi milita na área de sistemas, bancos de dados e operações há mais de 11 anos.
Além disso, Bianchi é Oracle Certified Expert (OCE) e Oracle ACE Director desde 2014.
Twitter: @wagnerbianchijr
Blog: wagnerbianchi.com
Agenda
• Escalabilidade em bancos de dados relacionais:
• Escalabilidade Vertical x Escalabilidade Horizontal;
• Failover e Business Continuity;
• Soluções de Clusterização de Bancos de Dados MariaDB/MySQL:
• Replicação Assíncrona, Semi-Síncrona, Virtualmente Síncrona e Síncrona;
• MariaDB Cluster, o que é, write-sets e transações;
• Escalando o ambiente com MariaDB Cluster e Inteligente Load Balancers:
• MariaDB Cluster + MaxScale;
• Demo Time
O que fará com que o seu cluster
não tenha a escala esperada?
Scalability
Sharding
Capacity
Performance
Throughput
Response Time
Escalabilidade em bancos de dados relacionais
Escalabilidade em Bancos de Dados
• Escalabilidade por ser vista de várias formas, vários ângulos:
• e.g. bancos de dados relacionais:
• crescimento no número de transações suportado;
• crescimento no espaço disponível para acomodar dados;
• melhor infraestrutura para acessar os servidores de bancos de dados;
• e.g. empresas de ecommerce:
• Campanhas sazonais;
• Crescimento vertiginoso enquanto mudanças ocorrem;
• Oportunidade de negócio/mais negócios/expansão;
Scalability is the capability of a system, network, or process to handle a growing amount of work,
or its potential to be enlarged to accommodate that growth.
Wikipedia, https://en.wikipedia.org/wiki/Scalability
Escalabilidade Vertical
• Geralmente a escalabilidade vertical aparece:
• Onde se necessita cada vez mais hardware para execução de soluções;
• Servidores de armazenamento de dados que tem forte dependência de hardware;
• Adicionar um sistema melhor de discos baseados em tecnologia flash ou RAID;
• mais hardware para se processar mais;
• Segundo a IBM:
Vertical scaling can essentially resize your server with no change to your code. It is the ability
to increase the capacity of existing hardware or software by adding resources. Vertical scaling
is limited by the fact that you can only get as big as the size of the server.
IBM, https://www.ibm.com/blogs/cloud-computing/2014/04/explain-vertical-horizontal-scaling-cloud/
Escalabilidade Horizontal
• Crescer um banco de dados horizontalmente significa:
• contar com servidores de pequeno porte e baratos, tidos como commodity hardware;
• agrupar tais servidores para se dividir o workload e diminuir o footprint (e.g. leituras e escritas);
• cluster, sharding, particionamento, e etc;
• Uma definição interessante:
Horizontal scaling affords the ability to scale wider to deal with traffic. It is the ability to connect
multiple hardware or software entities, such as servers, so that they work as a single logical unit.
IBM, https://www.ibm.com/blogs/cloud-computing/2014/04/explain-vertical-horizontal-scaling-cloud/
Failover e Business Continuity
• Em tecnologia de replicação/clusterização:
• Um processo rápido e prático de failover precisa estar presente;
• Tal processo pode ser automaticamente disparado ou manualmente invocado;
• Se invocado manualmente, a consistência dos dados precisa ser verificada;
• Se automaticamente, o sistema deverá não operar de maneira inconsistente (Galera Cluster);
• Boas práticas:
• Utilize um load balancer capaz de fazer a divisão lógica entre leituras e escritas;
• No caso de necessidade de failover, o load balancer precisa realizar esse processo;
• MaxScale + Galera Monitor
• HAProxy
Soluções de Clusterização de Bancos de Dados
MariaDB/MySQL
Clusterização de Bancos de Dados
• Existem várias soluções, com implementações de diferentes protocolos:
• Replicação Assíncrona;
• Replicação Semi-síncrona;
• Replicação Síncrona;
• Replicação Virtualmente Síncrona;
• Replicação em Nível de Bloco de Disco;
• Muitas das vezes a replicação é implementada com os conceitos de:
• MASTER e SLAVE;
• PRIMÁRIO e SECUNDÁRIO;
• Resources;
São muitas as soluções,
você precisa escolher aquela que melhor se
adequa ao seu projeto!
MHA
PRM
MRM
Galera Cluster
MySQL Cluster
DRBD
MariaDB Cluster
MariaDB Cluster
• O MariaDB Cluster é:
• Uma solução multi-master de replicação virtualmente síncrona;
• Disponível somente em plataforma Linux;
• Tamanho mínimo de um cluster, 3 máquinas;
• Todas as tabelas dos bancos de dados de usuário devem ser InnoDB/XtraDB;
• e todas com PRIMARY KEY explicitamente definidas;
• Tem suporte a leituras e escritas em todos os nós, embora não seja recomendado;
• escreva em um nó por vez e leia de todos;
• Cada transação é tida como um Write-Set
• Cada Write-Set tem um COMMIT local e outro nos demais nós do cluster (processo de certificação)
• Em WAN, trabalha com segmentos, onde cada nós ou conjunto de nós podem estar em locais diferentes;
MariaDB Cluster, processo de certificação
:: Certification based-replication
Uma transação é iniciada;
A transação recebe um OK e COMMIT;
A transação é enviada aos demais nós;
O processo de certificação inicia;
Se OK, COMMIT
Senão, discard (certification failure)
:: Premissas
O primeiro foco da solução é manter
os nós em um estado consistente;
A re-sincronia é automática, daí o
falarmos que o cluster é a prova de
Partitions;
MariaDB Cluster, flow control
• O Flow Control é ativado sempre que o cluster recebe mais transações do que suporta;
• Geralmente, algum dos jobs abaixo são executados:
• pt-online-schema-change é executado para alteração de uma tabela grande;
• pt-table-checksum/table-sync devem ser executados com muito cuidado;
• LOAD DATA INFILE;
• FLUSH TABLES WITH READ LOCK, geralmente utilizado por backups;
• Existem configurações do Galera API Provider:
• gcs.fc_limit: nomero de transações recebidos por um nó antes de iniciar o Flow Control
• gcs.fc_master_slave: interessate YES para clusters que tem um no de escrita e vários de leitura
• gcs.fc_factor: número fractional que é a base de cálculo para ativação do Flow Control
MariaDB Cluster, DDL/Schame Upgrade
• Built-in Métodos configurados na variável wsrep_OSU_method:
• TOI, quando alterações são realizadas com pt-online-schema-change;
MariaDB Cluster, DDL/Schame Upgrade
• Built-in Métodos configurados na variável wsrep_OSU_method:
• RSU, quando alterações são feitas com ALTER TABLE;
• Configurar um nó do cluster com SET GLOBAL wsrep_OSU_method=‘RSU’ é o mesmo que:
• set global wsrep_desync=on;
• set global wsrep_on=off;
Escalando o ambiente com
MariaDB Cluster e MaxScale
MaxScale
MaxScale 2.0, routers
• O MaxScale é um Database Proxy, com inteligência em forma de routers;
• Tais módulos ou routers estão disponíveis após a sua instalação;
• ReadConnRoute: esse router é um simples load balancer que roteia transações para os servidores;
• ReadWriteSplit: router que faz a divisão de leituras e escritas entre MASTER e SLAVEs;
• BinlogRouter: faz o papel de um MASTER intermediário, servidor de log binário;
• SchemaRouter: faz o roteamento das transações de acordo com os bancos de dados (sharding);
• AvroRouter: consome logs binários e exporta os dados para Avro files (JSON);
• Ao ser iniciado, MaxScale precisa de um arquivo de configuração:
• por padrão localizado em /etc/maxscale.cnf ou -f file.ext;
• requisito mínimo para iniciar o serviço: service, listener, monitor e configs de cliente (maxadmin)
MaxScale 2.0, monitors
• O MaxScale tem ainda vários monitores que trabalham juntamente com os routers;
• Tais módulos estão disponíveis após a sua instalação;
• MySQL Monitor:
• Multi-Master Monitor:
• NDB Cluster Monitor:
• Galera Monitor: monitora o status atual de cada um dos nós do cluster, simula MASTER/SLAVE;
[Galera Monitor]
type=monitor
module=galeramon
servers=server1,server2,server3
user=myuser
passwd=236B2854ECA2CDF9C4EF929F8CC48369
MaxScale, Maxadmin (client)
• Listando os servidores/nós do cluster:
• Listando os monitores ativos:
MaxScale> list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------------
Server | Address | Port | Connections | Status
-------------------+-----------------+-------+-------------+--------------------------
wbwsrep01 | 192.168.50.11 | 3306 | 0 | Master, Synced, Running
wbwsrep02 | 192.168.50.12 | 3306 | 0 | Slave, Synced, Running
wbwsrep03 | 192.168.50.13 | 3306 | 0 | Slave, Synced, Running
-------------------+-----------------+-------+-------------+--------------------------
MaxScale> list monitors
---------------------+---------------------
Monitor | Status
---------------------+---------------------
Galera Monitor | Running
---------------------+---------------------
MaxScale 2.0, Galera Monitor
• Galera Monitor features:
• marcar um antigo master após um crash, disable_master_failback=true;
• cada servidor pode ter uma prioridade, use_priority=true
• no caso de wsrep_sst_method=mariabackup/xtrabackup-v2, available_when_donor=true
mantém o status do nó como Synced, invés de DONOR/DESYNCED;
• É bom lembrar:
• SST, ou Snapshot State Transfer é realizado quando um nó é adicionado ao cluster e precisa do todo
o state de dados;
• IST, ou Incremental State Transfer é realizado quando o nó tem pequenas paradas no serviço do
MariaDB e quando volta, todas as transações ainda não executadas são encontradas no Cache do
Donor;
[root@maxscale ~]# maxadmin -e "list servers"
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server | Address | Port | Connections | Status
-------------------+-----------------+-------+-------------+--------------------
wbwsrep01 | 192.168.50.11 | 3306 | 654 | Master, Synced, Running
wbwsrep02 | 192.168.50.12 | 3306 | 76 | Slave, Synced, Running
wbwsrep03 | 192.168.50.13 | 3306 | 89 | Slave, Synced, Running
-------------------+-----------------+-------+-------------+--------------------
[root@maxscale ~]# vim /etc/maxscale.cnf # edited priorities
[root@maxscale ~]# systemctl restart maxscale
[root@maxscale ~]# maxadmin -e "list servers"
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server | Address | Port | Connections | Status
-------------------+-----------------+-------+-------------+--------------------
wbwsrep01 | 192.168.50.11 | 3306 | 78 | Slave, Synced, Running
wbwsrep02 | 192.168.50.12 | 3306 | 3 | Slave, Synced, Running
wbwsrep03 | 192.168.50.13 | 3306 | 12 | Master, Synced, Running
-------------------+-----------------+-------+-------------+--------------------
MaxScale 2.0, Galera Monitor
MaxScale 2.0, Galera Monitor
• Adicionando novos nós no cluster e reloading MaxScale:
• Provisione o novo nó com as configurações necessárias;
• Inicie o novo nó e tenha certeza de que esteja como PRIMARY Component e em Synced status;
• No arquivo de configuração do MaxScale 2.0:
• Adicione o novo servidor à seção correta [servername]
• Assegure que o servidor tenha sido adicionado à seção do Galera Monitor
• Utilize o maxadmin para fazer o reload das configurações:
#: tailing the log file after configurations and restart
Server changed state: wbwsrep01[192.168.50.11:3306]: new_slave. [Running] -> [Slave, Synced, Running]
Server changed state: wbwsrep02[192.168.50.12:3306]: new_slave. [Running] -> [Slave, Synced, Running]
Server changed state: wbwsrep03[192.168.50.13:3306]: new_master. [Running] -> [Master, Synced, Running]
Server changed state: wbwsrep04[192.168.50.14:3306]: new_slave. [Running] -> [Slave, Synced, Running]
DEMO TIME!
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)

Mais conteúdo relacionado

Mais procurados

Backup para MySQL
Backup para MySQLBackup para MySQL
Backup para MySQL
Marcelo Altmann
 
Manual Kikrotik Completo
Manual Kikrotik CompletoManual Kikrotik Completo
Manual Kikrotik Completo
Portal GSTI
 
Curso básico de mikrotik
Curso básico de mikrotikCurso básico de mikrotik
Curso básico de mikrotik
Video Aulas Linux e Mikrotik
 
Performance em Java
Performance em JavaPerformance em Java
Performance em Java
Claudio Miranda
 
Mysql Replication
Mysql ReplicationMysql Replication
Mysql Replication
André Herculano
 
NAT - Windows Server 2003 (Instalação com placas de rede pré-configuradas)
NAT - Windows Server 2003 (Instalação com placas de rede pré-configuradas)NAT - Windows Server 2003 (Instalação com placas de rede pré-configuradas)
NAT - Windows Server 2003 (Instalação com placas de rede pré-configuradas)
Ministério Público da Paraíba
 
Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6
MySQL Brasil
 
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
Zabbix BR
 
Seguranca em IPv6 com Mikrotik RouterOS
Seguranca em IPv6 com Mikrotik RouterOSSeguranca em IPv6 com Mikrotik RouterOS
Seguranca em IPv6 com Mikrotik RouterOS
Wardner Maia
 
Usando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL ServerUsando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL Server
leorsilva
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - Avançado
Adriano Schmidt
 
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do InteriorDeploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Zabbix BR
 
Ciclo de Palestras Infnet 2014 - Migrando o dc para Windows Server 2012 R2
Ciclo de Palestras Infnet 2014 - Migrando o dc para Windows Server 2012 R2Ciclo de Palestras Infnet 2014 - Migrando o dc para Windows Server 2012 R2
Ciclo de Palestras Infnet 2014 - Migrando o dc para Windows Server 2012 R2
Invent IT Solutions
 
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos CorreiosPerformance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
Alex Hübner
 
Infnet Infra Day II - Server Core na prática
Infnet Infra Day II - Server Core na práticaInfnet Infra Day II - Server Core na prática
Infnet Infra Day II - Server Core na prática
Invent IT Solutions
 
Guia passoapassodomikrotik
Guia passoapassodomikrotikGuia passoapassodomikrotik
Guia passoapassodomikrotik
Julio Almada Domingues
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)
elliando dias
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBD
Frederico Madeira
 
Artigo gerencia de_redes
Artigo gerencia de_redesArtigo gerencia de_redes
Artigo gerencia de_redes
Evandromadeira
 
Zabbix
ZabbixZabbix

Mais procurados (20)

Backup para MySQL
Backup para MySQLBackup para MySQL
Backup para MySQL
 
Manual Kikrotik Completo
Manual Kikrotik CompletoManual Kikrotik Completo
Manual Kikrotik Completo
 
Curso básico de mikrotik
Curso básico de mikrotikCurso básico de mikrotik
Curso básico de mikrotik
 
Performance em Java
Performance em JavaPerformance em Java
Performance em Java
 
Mysql Replication
Mysql ReplicationMysql Replication
Mysql Replication
 
NAT - Windows Server 2003 (Instalação com placas de rede pré-configuradas)
NAT - Windows Server 2003 (Instalação com placas de rede pré-configuradas)NAT - Windows Server 2003 (Instalação com placas de rede pré-configuradas)
NAT - Windows Server 2003 (Instalação com placas de rede pré-configuradas)
 
Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6
 
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
 
Seguranca em IPv6 com Mikrotik RouterOS
Seguranca em IPv6 com Mikrotik RouterOSSeguranca em IPv6 com Mikrotik RouterOS
Seguranca em IPv6 com Mikrotik RouterOS
 
Usando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL ServerUsando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL Server
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - Avançado
 
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do InteriorDeploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
 
Ciclo de Palestras Infnet 2014 - Migrando o dc para Windows Server 2012 R2
Ciclo de Palestras Infnet 2014 - Migrando o dc para Windows Server 2012 R2Ciclo de Palestras Infnet 2014 - Migrando o dc para Windows Server 2012 R2
Ciclo de Palestras Infnet 2014 - Migrando o dc para Windows Server 2012 R2
 
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos CorreiosPerformance e disponibilidade ‐ Um estudo de caso: website dos Correios
Performance e disponibilidade ‐ Um estudo de caso: website dos Correios
 
Infnet Infra Day II - Server Core na prática
Infnet Infra Day II - Server Core na práticaInfnet Infra Day II - Server Core na prática
Infnet Infra Day II - Server Core na prática
 
Guia passoapassodomikrotik
Guia passoapassodomikrotikGuia passoapassodomikrotik
Guia passoapassodomikrotik
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBD
 
Artigo gerencia de_redes
Artigo gerencia de_redesArtigo gerencia de_redes
Artigo gerencia de_redes
 
Zabbix
ZabbixZabbix
Zabbix
 

Semelhante a Escalando o ambiente com MariaDB Cluster (Portuguese Edition)

Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Marcos William Valentini
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Marcos William Valentini
 
Aws sao paulo summit 2015 elasti cache avancado
Aws sao paulo summit 2015   elasti cache avancadoAws sao paulo summit 2015   elasti cache avancado
Aws sao paulo summit 2015 elasti cache avancado
Amazon Web Services LATAM
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
Felipe Ribeiro
 
19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptx19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptx
Roberto Aragy
 
Mysql for IBMers
Mysql for IBMersMysql for IBMers
Mysql for IBMers
Wagner Bianchi
 
ITCamp - Novidades do windows server 2012
ITCamp - Novidades do windows server 2012ITCamp - Novidades do windows server 2012
ITCamp - Novidades do windows server 2012
Vinícius Apolinário
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
Campus Party Brasil
 
Clusterização de Aplicações PHP
Clusterização de Aplicações PHPClusterização de Aplicações PHP
Clusterização de Aplicações PHP
ECRAYON Tecnologia Criativa
 
Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...
Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...
Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...
Bravo Tecnologia
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
Marcus Vinicius Miguel Pedro
 
Desenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQLDesenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQL
MySQL Brasil
 
Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014
MySQL Brasil
 
Zabbix FLISOL Campinas 28-04-2012
Zabbix FLISOL Campinas 28-04-2012Zabbix FLISOL Campinas 28-04-2012
Zabbix FLISOL Campinas 28-04-2012
André Déo
 
Azure SQL DataWarehouse
Azure SQL DataWarehouseAzure SQL DataWarehouse
Azure SQL DataWarehouse
Vitor Fava
 
Alta Disponibilidade
Alta DisponibilidadeAlta Disponibilidade
Alta Disponibilidade
elliando dias
 
Scale out database apps através de galera cluster e maria db
Scale out database apps através de galera cluster e maria dbScale out database apps através de galera cluster e maria db
Scale out database apps através de galera cluster e maria db
Francisco Gonçalves
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
Fabrício Lopes Sanchez
 
Web Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheWeb Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+Apache
Dell Technologies
 
Alta-disponibilidade com MySQL
Alta-disponibilidade com MySQLAlta-disponibilidade com MySQL
Alta-disponibilidade com MySQL
MySQL Brasil
 

Semelhante a Escalando o ambiente com MariaDB Cluster (Portuguese Edition) (20)

Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
Aws sao paulo summit 2015 elasti cache avancado
Aws sao paulo summit 2015   elasti cache avancadoAws sao paulo summit 2015   elasti cache avancado
Aws sao paulo summit 2015 elasti cache avancado
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptx19-Sistemas Distribuidos.pptx
19-Sistemas Distribuidos.pptx
 
Mysql for IBMers
Mysql for IBMersMysql for IBMers
Mysql for IBMers
 
ITCamp - Novidades do windows server 2012
ITCamp - Novidades do windows server 2012ITCamp - Novidades do windows server 2012
ITCamp - Novidades do windows server 2012
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
 
Clusterização de Aplicações PHP
Clusterização de Aplicações PHPClusterização de Aplicações PHP
Clusterização de Aplicações PHP
 
Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...
Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...
Há quanto tempo você não revisa seu ambiente de virtualização de servidores V...
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
 
Desenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQLDesenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQL
 
Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014
 
Zabbix FLISOL Campinas 28-04-2012
Zabbix FLISOL Campinas 28-04-2012Zabbix FLISOL Campinas 28-04-2012
Zabbix FLISOL Campinas 28-04-2012
 
Azure SQL DataWarehouse
Azure SQL DataWarehouseAzure SQL DataWarehouse
Azure SQL DataWarehouse
 
Alta Disponibilidade
Alta DisponibilidadeAlta Disponibilidade
Alta Disponibilidade
 
Scale out database apps através de galera cluster e maria db
Scale out database apps através de galera cluster e maria dbScale out database apps através de galera cluster e maria db
Scale out database apps através de galera cluster e maria db
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
 
Web Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheWeb Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+Apache
 
Alta-disponibilidade com MySQL
Alta-disponibilidade com MySQLAlta-disponibilidade com MySQL
Alta-disponibilidade com MySQL
 

Mais de Wagner Bianchi

Migrations from PLSQL and Transact-SQL - m18
Migrations from PLSQL and Transact-SQL - m18Migrations from PLSQL and Transact-SQL - m18
Migrations from PLSQL and Transact-SQL - m18
Wagner Bianchi
 
Maxscale switchover, failover, and auto rejoin
Maxscale switchover, failover, and auto rejoinMaxscale switchover, failover, and auto rejoin
Maxscale switchover, failover, and auto rejoin
Wagner Bianchi
 
NY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleNY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with Maxscale
Wagner Bianchi
 
Webinar: MariaDB Provides the Solution to Ease Multi-Source Replication
Webinar: MariaDB Provides the Solution to Ease Multi-Source ReplicationWebinar: MariaDB Provides the Solution to Ease Multi-Source Replication
Webinar: MariaDB Provides the Solution to Ease Multi-Source Replication
Wagner Bianchi
 
MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016
Wagner Bianchi
 
UNIFAL - MySQL Logs - 5.0/5.6
UNIFAL - MySQL Logs - 5.0/5.6UNIFAL - MySQL Logs - 5.0/5.6
UNIFAL - MySQL Logs - 5.0/5.6
Wagner Bianchi
 
UNIFAL - MySQL Transações - 5.0/5.6
UNIFAL - MySQL Transações - 5.0/5.6UNIFAL - MySQL Transações - 5.0/5.6
UNIFAL - MySQL Transações - 5.0/5.6
Wagner Bianchi
 
UNIFAL - MySQL Storage Engine - 5.0/5.6
UNIFAL - MySQL Storage Engine - 5.0/5.6UNIFAL - MySQL Storage Engine - 5.0/5.6
UNIFAL - MySQL Storage Engine - 5.0/5.6
Wagner Bianchi
 
UNIFAL - MySQL Views - 5.0/5.6
UNIFAL - MySQL Views - 5.0/5.6UNIFAL - MySQL Views - 5.0/5.6
UNIFAL - MySQL Views - 5.0/5.6
Wagner Bianchi
 
UNIFAL - MySQL Triggers - 5.0/5.6
UNIFAL - MySQL Triggers - 5.0/5.6UNIFAL - MySQL Triggers - 5.0/5.6
UNIFAL - MySQL Triggers - 5.0/5.6
Wagner Bianchi
 
UNIFAL - MySQL Stored Routines - 5.0/5.6
UNIFAL - MySQL Stored Routines - 5.0/5.6UNIFAL - MySQL Stored Routines - 5.0/5.6
UNIFAL - MySQL Stored Routines - 5.0/5.6
Wagner Bianchi
 
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
Wagner Bianchi
 
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
Wagner Bianchi
 
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
Wagner Bianchi
 
Introdução ao MySQL 5.6
Introdução ao MySQL 5.6Introdução ao MySQL 5.6
Introdução ao MySQL 5.6
Wagner Bianchi
 
InnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQLInnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQL
Wagner Bianchi
 
MySQL Cluster Product Overview
MySQL Cluster Product OverviewMySQL Cluster Product Overview
MySQL Cluster Product Overview
Wagner Bianchi
 
MySQL Cluster Basics
MySQL Cluster BasicsMySQL Cluster Basics
MySQL Cluster Basics
Wagner Bianchi
 

Mais de Wagner Bianchi (18)

Migrations from PLSQL and Transact-SQL - m18
Migrations from PLSQL and Transact-SQL - m18Migrations from PLSQL and Transact-SQL - m18
Migrations from PLSQL and Transact-SQL - m18
 
Maxscale switchover, failover, and auto rejoin
Maxscale switchover, failover, and auto rejoinMaxscale switchover, failover, and auto rejoin
Maxscale switchover, failover, and auto rejoin
 
NY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleNY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with Maxscale
 
Webinar: MariaDB Provides the Solution to Ease Multi-Source Replication
Webinar: MariaDB Provides the Solution to Ease Multi-Source ReplicationWebinar: MariaDB Provides the Solution to Ease Multi-Source Replication
Webinar: MariaDB Provides the Solution to Ease Multi-Source Replication
 
MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016
 
UNIFAL - MySQL Logs - 5.0/5.6
UNIFAL - MySQL Logs - 5.0/5.6UNIFAL - MySQL Logs - 5.0/5.6
UNIFAL - MySQL Logs - 5.0/5.6
 
UNIFAL - MySQL Transações - 5.0/5.6
UNIFAL - MySQL Transações - 5.0/5.6UNIFAL - MySQL Transações - 5.0/5.6
UNIFAL - MySQL Transações - 5.0/5.6
 
UNIFAL - MySQL Storage Engine - 5.0/5.6
UNIFAL - MySQL Storage Engine - 5.0/5.6UNIFAL - MySQL Storage Engine - 5.0/5.6
UNIFAL - MySQL Storage Engine - 5.0/5.6
 
UNIFAL - MySQL Views - 5.0/5.6
UNIFAL - MySQL Views - 5.0/5.6UNIFAL - MySQL Views - 5.0/5.6
UNIFAL - MySQL Views - 5.0/5.6
 
UNIFAL - MySQL Triggers - 5.0/5.6
UNIFAL - MySQL Triggers - 5.0/5.6UNIFAL - MySQL Triggers - 5.0/5.6
UNIFAL - MySQL Triggers - 5.0/5.6
 
UNIFAL - MySQL Stored Routines - 5.0/5.6
UNIFAL - MySQL Stored Routines - 5.0/5.6UNIFAL - MySQL Stored Routines - 5.0/5.6
UNIFAL - MySQL Stored Routines - 5.0/5.6
 
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
 
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
 
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
 
Introdução ao MySQL 5.6
Introdução ao MySQL 5.6Introdução ao MySQL 5.6
Introdução ao MySQL 5.6
 
InnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQLInnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQL
 
MySQL Cluster Product Overview
MySQL Cluster Product OverviewMySQL Cluster Product Overview
MySQL Cluster Product Overview
 
MySQL Cluster Basics
MySQL Cluster BasicsMySQL Cluster Basics
MySQL Cluster Basics
 

Último

Por que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdfPor que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdf
Ian Oliveira
 
Como fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptxComo fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptx
tnrlucas
 
PRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product ownerPRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product owner
anpproferick
 
Orientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço BrasilOrientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço Brasil
EliakimArajo2
 
Teoria de redes de computadores redes .doc
Teoria de redes de computadores redes .docTeoria de redes de computadores redes .doc
Teoria de redes de computadores redes .doc
anpproferick
 
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Annelise Gripp
 
Gestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefíciosGestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefícios
Rafael Santos
 

Último (7)

Por que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdfPor que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdf
 
Como fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptxComo fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptx
 
PRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product ownerPRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product owner
 
Orientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço BrasilOrientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço Brasil
 
Teoria de redes de computadores redes .doc
Teoria de redes de computadores redes .docTeoria de redes de computadores redes .doc
Teoria de redes de computadores redes .doc
 
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
 
Gestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefíciosGestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefícios
 

Escalando o ambiente com MariaDB Cluster (Portuguese Edition)

  • 1. Escalando o Ambiente com MariaDB Cluster By Wagner Bianchi - Principal RDBA wagner.bianchi@mariadb.com
  • 2.
  • 3. Apresentação Pessoal Wagner Bianchi ou somente Bianchi, como gosta de ser chamado é atualmente Principal Remote DBA na US/Finlandesa MariaDB Corporation, tendo trabalhado anteriormente em empresas como Percona, Pythian, IBM e Oracle, sempre com operações e entrega de serviços. Bianchi é focado em MariaDB/MySQL/Percona Server, atuando em projetos de alta-disponibilidade, escalabilidade e análise de performance. Além disso, como trabalha em ambiente de operações, tem experiência com soluções de provisionamento, orchestration e monitoramento. Formado em Gerenciamento de Bancos de Dados pela Faculdade Infórium de Tecnologia, com MBA em Administração pela Função Getúlio Vargas e MBA Oracle Database, Bianchi milita na área de sistemas, bancos de dados e operações há mais de 11 anos. Além disso, Bianchi é Oracle Certified Expert (OCE) e Oracle ACE Director desde 2014. Twitter: @wagnerbianchijr Blog: wagnerbianchi.com
  • 4. Agenda • Escalabilidade em bancos de dados relacionais: • Escalabilidade Vertical x Escalabilidade Horizontal; • Failover e Business Continuity; • Soluções de Clusterização de Bancos de Dados MariaDB/MySQL: • Replicação Assíncrona, Semi-Síncrona, Virtualmente Síncrona e Síncrona; • MariaDB Cluster, o que é, write-sets e transações; • Escalando o ambiente com MariaDB Cluster e Inteligente Load Balancers: • MariaDB Cluster + MaxScale; • Demo Time
  • 5. O que fará com que o seu cluster não tenha a escala esperada? Scalability Sharding Capacity Performance Throughput Response Time
  • 6. Escalabilidade em bancos de dados relacionais
  • 7. Escalabilidade em Bancos de Dados • Escalabilidade por ser vista de várias formas, vários ângulos: • e.g. bancos de dados relacionais: • crescimento no número de transações suportado; • crescimento no espaço disponível para acomodar dados; • melhor infraestrutura para acessar os servidores de bancos de dados; • e.g. empresas de ecommerce: • Campanhas sazonais; • Crescimento vertiginoso enquanto mudanças ocorrem; • Oportunidade de negócio/mais negócios/expansão; Scalability is the capability of a system, network, or process to handle a growing amount of work, or its potential to be enlarged to accommodate that growth. Wikipedia, https://en.wikipedia.org/wiki/Scalability
  • 8. Escalabilidade Vertical • Geralmente a escalabilidade vertical aparece: • Onde se necessita cada vez mais hardware para execução de soluções; • Servidores de armazenamento de dados que tem forte dependência de hardware; • Adicionar um sistema melhor de discos baseados em tecnologia flash ou RAID; • mais hardware para se processar mais; • Segundo a IBM: Vertical scaling can essentially resize your server with no change to your code. It is the ability to increase the capacity of existing hardware or software by adding resources. Vertical scaling is limited by the fact that you can only get as big as the size of the server. IBM, https://www.ibm.com/blogs/cloud-computing/2014/04/explain-vertical-horizontal-scaling-cloud/
  • 9. Escalabilidade Horizontal • Crescer um banco de dados horizontalmente significa: • contar com servidores de pequeno porte e baratos, tidos como commodity hardware; • agrupar tais servidores para se dividir o workload e diminuir o footprint (e.g. leituras e escritas); • cluster, sharding, particionamento, e etc; • Uma definição interessante: Horizontal scaling affords the ability to scale wider to deal with traffic. It is the ability to connect multiple hardware or software entities, such as servers, so that they work as a single logical unit. IBM, https://www.ibm.com/blogs/cloud-computing/2014/04/explain-vertical-horizontal-scaling-cloud/
  • 10. Failover e Business Continuity • Em tecnologia de replicação/clusterização: • Um processo rápido e prático de failover precisa estar presente; • Tal processo pode ser automaticamente disparado ou manualmente invocado; • Se invocado manualmente, a consistência dos dados precisa ser verificada; • Se automaticamente, o sistema deverá não operar de maneira inconsistente (Galera Cluster); • Boas práticas: • Utilize um load balancer capaz de fazer a divisão lógica entre leituras e escritas; • No caso de necessidade de failover, o load balancer precisa realizar esse processo; • MaxScale + Galera Monitor • HAProxy
  • 11. Soluções de Clusterização de Bancos de Dados MariaDB/MySQL
  • 12. Clusterização de Bancos de Dados • Existem várias soluções, com implementações de diferentes protocolos: • Replicação Assíncrona; • Replicação Semi-síncrona; • Replicação Síncrona; • Replicação Virtualmente Síncrona; • Replicação em Nível de Bloco de Disco; • Muitas das vezes a replicação é implementada com os conceitos de: • MASTER e SLAVE; • PRIMÁRIO e SECUNDÁRIO; • Resources;
  • 13. São muitas as soluções, você precisa escolher aquela que melhor se adequa ao seu projeto! MHA PRM MRM Galera Cluster MySQL Cluster DRBD
  • 15. MariaDB Cluster • O MariaDB Cluster é: • Uma solução multi-master de replicação virtualmente síncrona; • Disponível somente em plataforma Linux; • Tamanho mínimo de um cluster, 3 máquinas; • Todas as tabelas dos bancos de dados de usuário devem ser InnoDB/XtraDB; • e todas com PRIMARY KEY explicitamente definidas; • Tem suporte a leituras e escritas em todos os nós, embora não seja recomendado; • escreva em um nó por vez e leia de todos; • Cada transação é tida como um Write-Set • Cada Write-Set tem um COMMIT local e outro nos demais nós do cluster (processo de certificação) • Em WAN, trabalha com segmentos, onde cada nós ou conjunto de nós podem estar em locais diferentes;
  • 16. MariaDB Cluster, processo de certificação :: Certification based-replication Uma transação é iniciada; A transação recebe um OK e COMMIT; A transação é enviada aos demais nós; O processo de certificação inicia; Se OK, COMMIT Senão, discard (certification failure) :: Premissas O primeiro foco da solução é manter os nós em um estado consistente; A re-sincronia é automática, daí o falarmos que o cluster é a prova de Partitions;
  • 17. MariaDB Cluster, flow control • O Flow Control é ativado sempre que o cluster recebe mais transações do que suporta; • Geralmente, algum dos jobs abaixo são executados: • pt-online-schema-change é executado para alteração de uma tabela grande; • pt-table-checksum/table-sync devem ser executados com muito cuidado; • LOAD DATA INFILE; • FLUSH TABLES WITH READ LOCK, geralmente utilizado por backups; • Existem configurações do Galera API Provider: • gcs.fc_limit: nomero de transações recebidos por um nó antes de iniciar o Flow Control • gcs.fc_master_slave: interessate YES para clusters que tem um no de escrita e vários de leitura • gcs.fc_factor: número fractional que é a base de cálculo para ativação do Flow Control
  • 18. MariaDB Cluster, DDL/Schame Upgrade • Built-in Métodos configurados na variável wsrep_OSU_method: • TOI, quando alterações são realizadas com pt-online-schema-change;
  • 19. MariaDB Cluster, DDL/Schame Upgrade • Built-in Métodos configurados na variável wsrep_OSU_method: • RSU, quando alterações são feitas com ALTER TABLE; • Configurar um nó do cluster com SET GLOBAL wsrep_OSU_method=‘RSU’ é o mesmo que: • set global wsrep_desync=on; • set global wsrep_on=off;
  • 20. Escalando o ambiente com MariaDB Cluster e MaxScale
  • 22. MaxScale 2.0, routers • O MaxScale é um Database Proxy, com inteligência em forma de routers; • Tais módulos ou routers estão disponíveis após a sua instalação; • ReadConnRoute: esse router é um simples load balancer que roteia transações para os servidores; • ReadWriteSplit: router que faz a divisão de leituras e escritas entre MASTER e SLAVEs; • BinlogRouter: faz o papel de um MASTER intermediário, servidor de log binário; • SchemaRouter: faz o roteamento das transações de acordo com os bancos de dados (sharding); • AvroRouter: consome logs binários e exporta os dados para Avro files (JSON); • Ao ser iniciado, MaxScale precisa de um arquivo de configuração: • por padrão localizado em /etc/maxscale.cnf ou -f file.ext; • requisito mínimo para iniciar o serviço: service, listener, monitor e configs de cliente (maxadmin)
  • 23. MaxScale 2.0, monitors • O MaxScale tem ainda vários monitores que trabalham juntamente com os routers; • Tais módulos estão disponíveis após a sua instalação; • MySQL Monitor: • Multi-Master Monitor: • NDB Cluster Monitor: • Galera Monitor: monitora o status atual de cada um dos nós do cluster, simula MASTER/SLAVE; [Galera Monitor] type=monitor module=galeramon servers=server1,server2,server3 user=myuser passwd=236B2854ECA2CDF9C4EF929F8CC48369
  • 24. MaxScale, Maxadmin (client) • Listando os servidores/nós do cluster: • Listando os monitores ativos: MaxScale> list servers Servers. -------------------+-----------------+-------+-------------+-------------------------- Server | Address | Port | Connections | Status -------------------+-----------------+-------+-------------+-------------------------- wbwsrep01 | 192.168.50.11 | 3306 | 0 | Master, Synced, Running wbwsrep02 | 192.168.50.12 | 3306 | 0 | Slave, Synced, Running wbwsrep03 | 192.168.50.13 | 3306 | 0 | Slave, Synced, Running -------------------+-----------------+-------+-------------+-------------------------- MaxScale> list monitors ---------------------+--------------------- Monitor | Status ---------------------+--------------------- Galera Monitor | Running ---------------------+---------------------
  • 25. MaxScale 2.0, Galera Monitor • Galera Monitor features: • marcar um antigo master após um crash, disable_master_failback=true; • cada servidor pode ter uma prioridade, use_priority=true • no caso de wsrep_sst_method=mariabackup/xtrabackup-v2, available_when_donor=true mantém o status do nó como Synced, invés de DONOR/DESYNCED; • É bom lembrar: • SST, ou Snapshot State Transfer é realizado quando um nó é adicionado ao cluster e precisa do todo o state de dados; • IST, ou Incremental State Transfer é realizado quando o nó tem pequenas paradas no serviço do MariaDB e quando volta, todas as transações ainda não executadas são encontradas no Cache do Donor;
  • 26. [root@maxscale ~]# maxadmin -e "list servers" Servers. -------------------+-----------------+-------+-------------+-------------------- Server | Address | Port | Connections | Status -------------------+-----------------+-------+-------------+-------------------- wbwsrep01 | 192.168.50.11 | 3306 | 654 | Master, Synced, Running wbwsrep02 | 192.168.50.12 | 3306 | 76 | Slave, Synced, Running wbwsrep03 | 192.168.50.13 | 3306 | 89 | Slave, Synced, Running -------------------+-----------------+-------+-------------+-------------------- [root@maxscale ~]# vim /etc/maxscale.cnf # edited priorities [root@maxscale ~]# systemctl restart maxscale [root@maxscale ~]# maxadmin -e "list servers" Servers. -------------------+-----------------+-------+-------------+-------------------- Server | Address | Port | Connections | Status -------------------+-----------------+-------+-------------+-------------------- wbwsrep01 | 192.168.50.11 | 3306 | 78 | Slave, Synced, Running wbwsrep02 | 192.168.50.12 | 3306 | 3 | Slave, Synced, Running wbwsrep03 | 192.168.50.13 | 3306 | 12 | Master, Synced, Running -------------------+-----------------+-------+-------------+-------------------- MaxScale 2.0, Galera Monitor
  • 27. MaxScale 2.0, Galera Monitor • Adicionando novos nós no cluster e reloading MaxScale: • Provisione o novo nó com as configurações necessárias; • Inicie o novo nó e tenha certeza de que esteja como PRIMARY Component e em Synced status; • No arquivo de configuração do MaxScale 2.0: • Adicione o novo servidor à seção correta [servername] • Assegure que o servidor tenha sido adicionado à seção do Galera Monitor • Utilize o maxadmin para fazer o reload das configurações: #: tailing the log file after configurations and restart Server changed state: wbwsrep01[192.168.50.11:3306]: new_slave. [Running] -> [Slave, Synced, Running] Server changed state: wbwsrep02[192.168.50.12:3306]: new_slave. [Running] -> [Slave, Synced, Running] Server changed state: wbwsrep03[192.168.50.13:3306]: new_master. [Running] -> [Master, Synced, Running] Server changed state: wbwsrep04[192.168.50.14:3306]: new_slave. [Running] -> [Slave, Synced, Running]