Mysql Replication                                          André Herculano                                      andresilve...
Contexto                    • O objetivo:                            • Migrar aplicações de um servidor para o            ...
Soluções                  XtraBackup          Ferramenta open source para        backup de servidores MySql com           ...
Soluções          MySQL Replication + Mysqldump          Feito através do já implementado          processo de Master - Sl...
MySql Master- Slave       • Toda operação que acontece no servidor master é replicado          para os slaves. O contrário...
#Comofas                      1. Preparar o servidor Master para ser master (my.cnf):                        [mysqld]     ...
#Comofas                      3. Obter um snapshot do master              mysql> FLUSH TABLES WITH READ LOCK;             ...
#Comofas                      4. Configurar o Slave (my.cnf):              [mysqld]              server-id=2              r...
#Comofas                      5. Apontar o slave para o Master:              mysql> CHANGE MASTER TO                  ->  ...
#Comofas                      7. Sabendo se está tudo certo:              mysql> show slave statusG;              ...     ...
#Comofas                      Importante:                      Caso o Slave esteja vazio, o backup do master deve ser     ...
Mais Materiais                    •       http://www.percona.com/files/presentations/percona-live/dc-2012/                 ...
Obrigado                                      André Herculano                                  andresilveirah@gmail.comThu...
Upcoming SlideShare
Loading in …5
×

Mysql Replication

621 views
551 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
621
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mysql Replication

  1. 1. Mysql Replication André Herculano andresilveirah@gmail.comThursday, December 13, 12
  2. 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. 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. 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. 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. 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. 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. 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) restartThursday, December 13, 12
  9. 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. 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. 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.sqlThursday, December 13, 12
  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. 13. Obrigado André Herculano andresilveirah@gmail.comThursday, December 13, 12

×