SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
Mysql Replication


                                          André Herculano
                                      andresilveirah@gmail.com
Thursday, December 13, 12
Contexto
                    • O objetivo:
                            • Migrar aplicações de um servidor para o
                              outro com o mínimo de downtime;

                    • O Problema:
                            • Interações com a base de dados durante
                              o processo de migração poderiam levar a
                              base a um estado inconsistente;


Thursday, December 13, 12
Soluções
                  XtraBackup
          Ferramenta open source para
        backup de servidores MySql com
                engine InnoDB;

                     Prós:
        Realiza backup da base de dados
         sem a necessidade de lock nas
                    tabelas.




Thursday, December 13, 12
Soluções
          MySQL Replication + Mysqldump
          Feito através do já implementado
          processo de Master - Slave e dump
                    via Mysqldump

                             Prós:
                    Simples de implementar;
                       Nativo do banco;
                      Bem documentado;

                       Contra:
           Dump via myslqdump exige o read
                   lock das tabelas;


Thursday, December 13, 12
MySql Master- Slave




       • Toda operação que acontece no servidor master é replicado
          para os slaves. O contrário não é verdadeiro.

       • Comunicação se dá via TCP;
       • Dowtime só é necessário, caso o servidor master não tenha
          sido preparado préviamente para ser master;

Thursday, December 13, 12
#Comofas
                      1. Preparar o servidor Master para ser master (my.cnf):

                        [mysqld]
                        log-bin=mysql-bin
                        server-id=1
                        bind-address = 0.0.0.0 #ou ip do slave
                        binlog-do-db = <database1> # bancos a serem replicados
                        binlog-do-db = <database2> # bancos a serem replicados
                        binlog-ignore-db = mysql




                      2. Dar permissões para o usuário que fará a replicação

                        mysql> GRANT REPLICATION SLAVE ON *.* TO 'user'@'<ip do
                        slave>' IDENTIFIED BY 'password';




Thursday, December 13, 12
#Comofas
                      3. Obter um snapshot do master

              mysql> FLUSH TABLES WITH READ LOCK;

              # em outra sessão do mysql

              mysql > SHOW MASTER STATUS;
              +------------------+----------+--------------+------------------+
              | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
              +------------------+----------+--------------+------------------+
              | mysql-bin.000001 | 106      | db1          | mysql            |
              +------------------+----------+--------------+------------------+

              # caso o slave esteja vazio, realizar o dump do banco ainda com as
              # tabelas em lock (vide ultimo slide)

              mysql > UNLOCK TABLES;



                      Essas informações serão necessárias para a configuração do
                      slave.

Thursday, December 13, 12
#Comofas
                      4. Configurar o Slave (my.cnf):

              [mysqld]
              server-id=2
              replicate-do-db= <database1>
              replicate-do-db= <database2>

              # caso queira preparar o slave para ser um futuro master também
              log-bin=mysql-bin
              bind-address = 0.0.0.0 # ou ip do slave
              binlog-do-db = <database1> # bancos a serem replicados
              binlog-do-db = <database2> # bancos a serem replicados
              binlog-ignore-db = mysql




                      ps: para que as configurações do mysql sejam aplicadas o
                      serviço deve ser reiniciado.

                      $ sudo service mysql (ou mysqld) restart

Thursday, December 13, 12
#Comofas
                      5. Apontar o slave para o Master:

              mysql> CHANGE MASTER TO
                  ->     MASTER_HOST='master_host', #ip ou nome do host
                  ->     MASTER_USER='replication_user_name',
                  ->     MASTER_PASSWORD='replication_password',
                  ->     MASTER_LOG_FILE='recorded_log_file_name',
                  ->     MASTER_LOG_POS=recorded_log_position;



                     Aqui usamos as informações obtidas no snapshot do passo 4

                      6. Apontar o slave para o Master:

              mysql> START SLAVE;




Thursday, December 13, 12
#Comofas
                      7. Sabendo se está tudo certo:
              mysql> show slave statusG;
              ...
                              Last_IO_Errno: 0
                              Last_IO_Error:
                             Last_SQL_Errno: 0
                             Last_SQL_Error:
                Replicate_Ignore_Server_Ids:
                           Master_Server_Id: 1


                    Observar o ‘Last_IO_Error’.
                    Um erro comum é o Access Denied

                    • Verificar via telnet se a porta 3306 está aberta;
                    • Verificar os previlégios do usuário escolhido para a
                            replicação;

                    • Tentar conectar no mysql do master via terminal pelo
                            slave;

Thursday, December 13, 12
#Comofas
                      Importante:

                      Caso o Slave esteja vazio, o backup do master deve ser
                      restaurado no slave ANTES de a replicação Master - Slave
                      começar;
              # no master
              mysqldump -u username -p --databases db1 db2 db3 > dump.sql

              #no slave
              mysql -u username -p < dump.sql




Thursday, December 13, 12
Mais Materiais

                    •       http://www.percona.com/files/presentations/percona-live/dc-2012/
                            PLDC2012-introduction-to-mysql-replication.pdf

                    •       http://dev.mysql.com/doc/refman/5.0/en/replication.html

                    •       http://www.infobora.info/high-availability-with-a-masterslave-mysql-
                            configuration/

                    •       http://erlycoder.com/43/mysql-master-slave-and-master-master-replication-
                            step-by-step-configuration-instructions-




Thursday, December 13, 12
Obrigado


                                      André Herculano
                                  andresilveirah@gmail.com
Thursday, December 13, 12

Mais conteúdo relacionado

Mais procurados

Análise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDBAnálise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDBSaveincloud
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDFrederico Madeira
 
Oficina de Squid: Filtros Inteligentes
 Oficina de Squid: Filtros Inteligentes Oficina de Squid: Filtros Inteligentes
Oficina de Squid: Filtros InteligentesThiago Finardi
 
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)Wagner Bianchi
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanJuliano Atanazio
 
Cloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performanceCloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performanceSaveincloud
 
Escalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginxEscalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginxSaveincloud
 
MySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source ReplicationMySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source ReplicationWagner Bianchi
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveiselliando dias
 
UNIFAL - MySQL 5.6 - Replicação
UNIFAL - MySQL 5.6 - ReplicaçãoUNIFAL - MySQL 5.6 - Replicação
UNIFAL - MySQL 5.6 - ReplicaçãoWagner Bianchi
 
Percona XtraBackup
Percona XtraBackupPercona XtraBackup
Percona XtraBackupWebgoal
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdFrederico Madeira
 
Opennebula instalação
Opennebula instalaçãoOpennebula instalação
Opennebula instalaçãoLuís Eduardo
 
Linux Network Fault Tolerance
Linux Network Fault ToleranceLinux Network Fault Tolerance
Linux Network Fault ToleranceFrederico Madeira
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Felipe Blini
 
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto DesempenhoTDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto DesempenhoEiti Kimura
 

Mais procurados (20)

Análise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDBAnálise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDB
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBD
 
Oficina de Squid: Filtros Inteligentes
 Oficina de Squid: Filtros Inteligentes Oficina de Squid: Filtros Inteligentes
Oficina de Squid: Filtros Inteligentes
 
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarman
 
Servidor Proxy Squid
Servidor Proxy SquidServidor Proxy Squid
Servidor Proxy Squid
 
Cloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performanceCloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performance
 
Escalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginxEscalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginx
 
Servidor proxy Squid
Servidor proxy SquidServidor proxy Squid
Servidor proxy Squid
 
MySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source ReplicationMySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source Replication
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveis
 
UNIFAL - MySQL 5.6 - Replicação
UNIFAL - MySQL 5.6 - ReplicaçãoUNIFAL - MySQL 5.6 - Replicação
UNIFAL - MySQL 5.6 - Replicação
 
Percona XtraBackup
Percona XtraBackupPercona XtraBackup
Percona XtraBackup
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e Drbd
 
Opennebula instalação
Opennebula instalaçãoOpennebula instalação
Opennebula instalação
 
Linux Network Fault Tolerance
Linux Network Fault ToleranceLinux Network Fault Tolerance
Linux Network Fault Tolerance
 
Clusters
ClustersClusters
Clusters
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
 
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto DesempenhoTDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
 
Virtualização com Xen
Virtualização com XenVirtualização com Xen
Virtualização com Xen
 

Destaque

Tarea seminario 3
Tarea seminario 3Tarea seminario 3
Tarea seminario 3marleomor
 
2 osromanosnapeninsulaibérica
2 osromanosnapeninsulaibérica2 osromanosnapeninsulaibérica
2 osromanosnapeninsulaibéricaR C
 
Práctica enlaces quimicos
Práctica enlaces quimicosPráctica enlaces quimicos
Práctica enlaces quimicosroxicam
 
Pe 121021160140-phpapp0214-150228204609-conversion-gate01
Pe 121021160140-phpapp0214-150228204609-conversion-gate01Pe 121021160140-phpapp0214-150228204609-conversion-gate01
Pe 121021160140-phpapp0214-150228204609-conversion-gate01JORGE VICTORIA
 
Día del planeta tierra
Día del planeta tierraDía del planeta tierra
Día del planeta tierra980507273
 
Bases Legales - Vinilo Battle 2015
Bases Legales - Vinilo Battle 2015Bases Legales - Vinilo Battle 2015
Bases Legales - Vinilo Battle 2015ViniloBattle
 
Proyecto de vida
Proyecto de vida Proyecto de vida
Proyecto de vida Unigarro
 
Manual twitter 2011
Manual twitter 2011Manual twitter 2011
Manual twitter 2011fernandomns
 
maria fernanda medina
maria fernanda medinamaria fernanda medina
maria fernanda medinamadreteamo
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosDesaOrtega
 
Visita a la planta de agua de mesa final (1)
Visita a la planta de agua de mesa final (1)Visita a la planta de agua de mesa final (1)
Visita a la planta de agua de mesa final (1)roxicam
 
FGV / IBRE - Infraestrutura e Construção Pesada no Brasil
FGV / IBRE - Infraestrutura e Construção Pesada no BrasilFGV / IBRE - Infraestrutura e Construção Pesada no Brasil
FGV / IBRE - Infraestrutura e Construção Pesada no BrasilFGV | Fundação Getulio Vargas
 
Estudios de casos
Estudios de casosEstudios de casos
Estudios de casosmatecal
 
Deputada Federal Erika Kokay e o debate do Estatuto da Família
Deputada Federal Erika Kokay e o debate do Estatuto da FamíliaDeputada Federal Erika Kokay e o debate do Estatuto da Família
Deputada Federal Erika Kokay e o debate do Estatuto da FamíliaHelena Simões
 

Destaque (20)

Tarea seminario 3
Tarea seminario 3Tarea seminario 3
Tarea seminario 3
 
2 osromanosnapeninsulaibérica
2 osromanosnapeninsulaibérica2 osromanosnapeninsulaibérica
2 osromanosnapeninsulaibérica
 
Práctica enlaces quimicos
Práctica enlaces quimicosPráctica enlaces quimicos
Práctica enlaces quimicos
 
Presentacion ERUM
Presentacion ERUMPresentacion ERUM
Presentacion ERUM
 
Mamiferos
MamiferosMamiferos
Mamiferos
 
Proyecto
ProyectoProyecto
Proyecto
 
O relogio
O relogioO relogio
O relogio
 
Tarea física
Tarea   físicaTarea   física
Tarea física
 
Pe 121021160140-phpapp0214-150228204609-conversion-gate01
Pe 121021160140-phpapp0214-150228204609-conversion-gate01Pe 121021160140-phpapp0214-150228204609-conversion-gate01
Pe 121021160140-phpapp0214-150228204609-conversion-gate01
 
Día del planeta tierra
Día del planeta tierraDía del planeta tierra
Día del planeta tierra
 
Bases Legales - Vinilo Battle 2015
Bases Legales - Vinilo Battle 2015Bases Legales - Vinilo Battle 2015
Bases Legales - Vinilo Battle 2015
 
Proyecto de vida
Proyecto de vida Proyecto de vida
Proyecto de vida
 
Manual twitter 2011
Manual twitter 2011Manual twitter 2011
Manual twitter 2011
 
maria fernanda medina
maria fernanda medinamaria fernanda medina
maria fernanda medina
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Mate tarea - 2º
Mate   tarea - 2ºMate   tarea - 2º
Mate tarea - 2º
 
Visita a la planta de agua de mesa final (1)
Visita a la planta de agua de mesa final (1)Visita a la planta de agua de mesa final (1)
Visita a la planta de agua de mesa final (1)
 
FGV / IBRE - Infraestrutura e Construção Pesada no Brasil
FGV / IBRE - Infraestrutura e Construção Pesada no BrasilFGV / IBRE - Infraestrutura e Construção Pesada no Brasil
FGV / IBRE - Infraestrutura e Construção Pesada no Brasil
 
Estudios de casos
Estudios de casosEstudios de casos
Estudios de casos
 
Deputada Federal Erika Kokay e o debate do Estatuto da Família
Deputada Federal Erika Kokay e o debate do Estatuto da FamíliaDeputada Federal Erika Kokay e o debate do Estatuto da Família
Deputada Federal Erika Kokay e o debate do Estatuto da Família
 

Semelhante a Mysql Replication

Fundamentos Replicação MySQL
Fundamentos Replicação MySQLFundamentos Replicação MySQL
Fundamentos Replicação MySQLAlexandre Almeida
 
Tutorial Replicação Slony
Tutorial Replicação SlonyTutorial Replicação Slony
Tutorial Replicação SlonySofia Trindade
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLJohnes Castro
 
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Aécio Pires
 
MySQL + Java - Manuel Contreras
MySQL + Java - Manuel ContrerasMySQL + Java - Manuel Contreras
MySQL + Java - Manuel ContrerasMySQL Brasil
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dadosSuissa
 
Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -MySQL Brasil
 
PDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTOPDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTOPerla Coutinho Barbosa
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Brasil
 
Instalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosInstalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosAlexandre Almeida
 
ZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLgsroma
 
Utilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web JavaUtilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web JavaAdriel Viana
 
Mysql cluster quick start webinar
Mysql cluster quick start webinarMysql cluster quick start webinar
Mysql cluster quick start webinarhenriquesidney
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Brasil
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceSaveincloud
 
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.3Wagner Bianchi
 

Semelhante a Mysql Replication (20)

Fundamentos Replicação MySQL
Fundamentos Replicação MySQLFundamentos Replicação MySQL
Fundamentos Replicação MySQL
 
Tutorial Replicação Slony
Tutorial Replicação SlonyTutorial Replicação Slony
Tutorial Replicação Slony
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQL
 
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
 
MySQL + Java - Manuel Contreras
MySQL + Java - Manuel ContrerasMySQL + Java - Manuel Contreras
MySQL + Java - Manuel Contreras
 
MySQL - the database
MySQL - the databaseMySQL - the database
MySQL - the database
 
Criando sua própria nuvem com Raspberry Pi
Criando sua própria nuvem com Raspberry PiCriando sua própria nuvem com Raspberry Pi
Criando sua própria nuvem com Raspberry Pi
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dados
 
Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -
 
PDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTOPDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTO
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
Instalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosInstalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutos
 
ZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQL
 
Utilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web JavaUtilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web Java
 
Mysql cluster quick start webinar
Mysql cluster quick start webinarMysql cluster quick start webinar
Mysql cluster quick start webinar
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
Mysql for IBMers
Mysql for IBMersMysql for IBMers
Mysql for IBMers
 
Roteiro samba
Roteiro sambaRoteiro samba
Roteiro samba
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performance
 
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
 

Último

PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...Priscila Ribeiro Chagas
 
TI EXAMES - NIST Cybersecurity Framework.pdf
TI EXAMES - NIST Cybersecurity Framework.pdfTI EXAMES - NIST Cybersecurity Framework.pdf
TI EXAMES - NIST Cybersecurity Framework.pdfRodrigoMori7
 
Knowtree - Extração de Dados com o KAPE.
Knowtree - Extração de Dados com o KAPE.Knowtree - Extração de Dados com o KAPE.
Knowtree - Extração de Dados com o KAPE.Thiago lindolfo
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Dirceu Resende
 
O papel da automação de processos no mundo do trabalho pós-moderno
O papel da automação de processos no mundo do trabalho pós-modernoO papel da automação de processos no mundo do trabalho pós-moderno
O papel da automação de processos no mundo do trabalho pós-modernoDenis Pereira Raymundo
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Dirceu Resende
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Dirceu Resende
 

Último (7)

PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...
PRODUCT OPS - COMO APROVEITAR O MÁXIMO DESTA NOVA TENDÊNCIA - Priscila Chagas...
 
TI EXAMES - NIST Cybersecurity Framework.pdf
TI EXAMES - NIST Cybersecurity Framework.pdfTI EXAMES - NIST Cybersecurity Framework.pdf
TI EXAMES - NIST Cybersecurity Framework.pdf
 
Knowtree - Extração de Dados com o KAPE.
Knowtree - Extração de Dados com o KAPE.Knowtree - Extração de Dados com o KAPE.
Knowtree - Extração de Dados com o KAPE.
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
O papel da automação de processos no mundo do trabalho pós-moderno
O papel da automação de processos no mundo do trabalho pós-modernoO papel da automação de processos no mundo do trabalho pós-moderno
O papel da automação de processos no mundo do trabalho pós-moderno
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 

Mysql Replication

  • 1. Mysql Replication André Herculano andresilveirah@gmail.com Thursday, December 13, 12
  • 2. Contexto • O objetivo: • Migrar aplicações de um servidor para o outro com o mínimo de downtime; • O Problema: • Interações com a base de dados durante o processo de migração poderiam levar a base a um estado inconsistente; Thursday, December 13, 12
  • 3. Soluções XtraBackup Ferramenta open source para backup de servidores MySql com engine InnoDB; Prós: Realiza backup da base de dados sem a necessidade de lock nas tabelas. Thursday, December 13, 12
  • 4. Soluções MySQL Replication + Mysqldump Feito através do já implementado processo de Master - Slave e dump via Mysqldump Prós: Simples de implementar; Nativo do banco; Bem documentado; Contra: Dump via myslqdump exige o read lock das tabelas; Thursday, December 13, 12
  • 5. MySql Master- Slave • Toda operação que acontece no servidor master é replicado para os slaves. O contrário não é verdadeiro. • Comunicação se dá via TCP; • Dowtime só é necessário, caso o servidor master não tenha sido preparado préviamente para ser master; Thursday, December 13, 12
  • 6. #Comofas 1. Preparar o servidor Master para ser master (my.cnf): [mysqld] log-bin=mysql-bin server-id=1 bind-address = 0.0.0.0 #ou ip do slave binlog-do-db = <database1> # bancos a serem replicados binlog-do-db = <database2> # bancos a serem replicados binlog-ignore-db = mysql 2. Dar permissões para o usuário que fará a replicação mysql> GRANT REPLICATION SLAVE ON *.* TO 'user'@'<ip do slave>' IDENTIFIED BY 'password'; Thursday, December 13, 12
  • 7. #Comofas 3. Obter um snapshot do master mysql> FLUSH TABLES WITH READ LOCK; # em outra sessão do mysql mysql > SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 106 | db1 | mysql | +------------------+----------+--------------+------------------+ # caso o slave esteja vazio, realizar o dump do banco ainda com as # tabelas em lock (vide ultimo slide) mysql > UNLOCK TABLES; Essas informações serão necessárias para a configuração do slave. Thursday, December 13, 12
  • 8. #Comofas 4. Configurar o Slave (my.cnf): [mysqld] server-id=2 replicate-do-db= <database1> replicate-do-db= <database2> # caso queira preparar o slave para ser um futuro master também log-bin=mysql-bin bind-address = 0.0.0.0 # ou ip do slave binlog-do-db = <database1> # bancos a serem replicados binlog-do-db = <database2> # bancos a serem replicados binlog-ignore-db = mysql ps: para que as configurações do mysql sejam aplicadas o serviço deve ser reiniciado. $ sudo service mysql (ou mysqld) restart Thursday, December 13, 12
  • 9. #Comofas 5. Apontar o slave para o Master: mysql> CHANGE MASTER TO -> MASTER_HOST='master_host', #ip ou nome do host -> MASTER_USER='replication_user_name', -> MASTER_PASSWORD='replication_password', -> MASTER_LOG_FILE='recorded_log_file_name', -> MASTER_LOG_POS=recorded_log_position; Aqui usamos as informações obtidas no snapshot do passo 4 6. Apontar o slave para o Master: mysql> START SLAVE; Thursday, December 13, 12
  • 10. #Comofas 7. Sabendo se está tudo certo: mysql> show slave statusG; ... Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1 Observar o ‘Last_IO_Error’. Um erro comum é o Access Denied • Verificar via telnet se a porta 3306 está aberta; • Verificar os previlégios do usuário escolhido para a replicação; • Tentar conectar no mysql do master via terminal pelo slave; Thursday, December 13, 12
  • 11. #Comofas Importante: Caso o Slave esteja vazio, o backup do master deve ser restaurado no slave ANTES de a replicação Master - Slave começar; # no master mysqldump -u username -p --databases db1 db2 db3 > dump.sql #no slave mysql -u username -p < dump.sql Thursday, December 13, 12
  • 12. Mais Materiais • http://www.percona.com/files/presentations/percona-live/dc-2012/ PLDC2012-introduction-to-mysql-replication.pdf • http://dev.mysql.com/doc/refman/5.0/en/replication.html • http://www.infobora.info/high-availability-with-a-masterslave-mysql- configuration/ • http://erlycoder.com/43/mysql-master-slave-and-master-master-replication- step-by-step-configuration-instructions- Thursday, December 13, 12
  • 13. Obrigado André Herculano andresilveirah@gmail.com Thursday, December 13, 12