Replicação em banco de dados MySQL

Este artigo nos mostra como configurar dois servidores com MySQL atuando como master e slave para replicação de banco de dados. Em outras palavras, tudo o que acontece no servidor MySQL master acontecerá no MySQL slave.

[ Hits: 105.771 ]

Por: Marcelo Santos Araujo em 23/02/2004


Configuração do my.cnf no servidor



Com o MySQL daemon instalado (mysqld) e o respectivo cliente, copie o arquivo de configuração do MySQL que por padrão fica localizado em /usr/share/mysql.

Suponha que sua máquina suporte uma configuração média, então copie o my-medium.cnf para o diretório /etc/ renomeando o arquivo para my.cnf.

Caso sua máquina não suporte uma configuração média, então copie o arquivo my-small.cnf para o /etc. Você deverá ter o arquivo my.cnf no /etc.

Nesta parte, iremos configurar o servidor master. Pare o servidor mysqld, pois você estará alterando o seu arquivo de configuração:

# service mysql stop
ou
# /etc/init.d/mysql stop

Abra o arquivo my.cnf em qualquer editor de texto:

# jed my.cnf

Descomente as linhas dos logs ou então acrescente as seguintes palavras-chaves na seção "[mysqld]"

[mysqld]

log-bin
log
log-slow
log-slave-updates

Isso irá habilitar os logs binários e os demais, além dos logs de atualização. Salve o arquivo.

Agora inicie o MySQL daemon (mysqld):

# service mysql start
ou
# /etc/init.d/mysql start

    Próxima página

Páginas do artigo
   1. Configuração do my.cnf no servidor
   2. Criando um usuário slave
   3. Configuração do my.cnf slave
   4. Processo de replicação
Outros artigos deste autor

Expressões regulares no PHP

Leitura recomendada

SQL Dicas & Truques (versão 0.1)

Blindando o MySQL: Configurações de segurança

Store Procedures com Transaction no MySQL

OcoMon 2.0RC6 no OpenSUSE 11.2 com PHP5 + MySQL5 + Apache2 com correção de acentuação

Configurando Apache + MySQL + PHP no Slackware

  
Comentários
[1] Comentário enviado por gustavo_marcon em 23/02/2004 - 15:10h

Muito bom este artigo. Só fiquei c/ uma dúvida, todos os bancos de dados registrados no servidor A serão automaticamente replicados na máquina B?

[2] Comentário enviado por fabio em 23/02/2004 - 15:24h

Bom, me intrometendo, há como você escolhor no slave quais databases serão replicadas, para isso basta definir o parâmetro replicate-do-db na seção [mysqld] do my.conf slave:

replicate-do-db=meu_database1

Se quiser mais de um, basta ir adicionando as demais databases separadas por vírgula.

[]'s

[3] Comentário enviado por wilbil em 23/02/2004 - 17:05h

e bom lembrar que nao he pq vc tem um banco de dados replicado
que vc tem um sistema HA

lembrese se cair o serv A
o B so sera os backups sua rede contunuara sem mysql

tome cuidado na hora de implementar isso e sempre bom aprender como vc pode

transformar seu servidor slave em master
depois que vc arrumas o master o que vai acontecer quando entrarem os dois ao mesmo tempo

replicacao nao he HA

[4] Comentário enviado por mrluk em 23/02/2004 - 18:31h

o q eh HA, wilbil?

[5] Comentário enviado por jeffestanislau em 26/02/2004 - 18:55h

fiquei na dúvida como o mrluk, diz aí wilbil?

[6] Comentário enviado por wilbil em 22/09/2004 - 00:30h

HA = hight aplication

quando o mysql servidor cair o slave nao se inicia sozinho
e ocupa seu lugar

[7] Comentário enviado por alphainfo em 08/10/2004 - 00:41h

Ow galera,

o ponto levantado pelo wilbil é mto interessante! Esse esquema de replicar bancos confunde mto a galera, pq a primeira vista pensamos que o slave irá assumir na queda do master.

Estamos tentando implementar uma solução de Master/Slave aliada a solução de Alta disponibilidade (HA).

Assim que conseguirmos, postarei aqui no VOL um artigo sobre.

[]'s

Daniel Freire

[8] Comentário enviado por guigol em 23/05/2006 - 11:21h

Pessoal depois de muitas tentativas com o Slackware 10.2 descobri que no /etc/rc.d/rc.mysqld ele inicia por padrão com a opção:

SKIP="--skip-networking"

Resultando em não abrir a porta 3306 para acesso externo e/ou replicação das bases. É só tirar esta opção que ele abre as portas.

T+

Guilherme Guerreiro


[9] Comentário enviado por marcosge em 12/06/2006 - 00:01h

Bom pessoal, teoricamente eu consegui fazer tudo q se pede nesse artigo, mas eu não consigo ver as bases do master, estranho é que eu dou um show slave status no slave e ele me mostra os 2 yes. O que vocês poderiam me dizer?? será que estou esquecendo de algo??

Lembrando que criei o usuário slave, alterei os dois my.cnf..

Abraços,
Marcos Echevarria

[10] Comentário enviado por rhowmert em 27/07/2006 - 09:43h

Opa! Blz galera? Bom gente minha duvida é a seguinte. esta replicação pode até funcionar no caso do servidor travar ou sua conexão cair. Agora vamos supor que meu hd esteja com pau e esteja gravando na dados corrompidos. Esses dados serão replicados assim?
Tipo assim, teoricamente o mysql deveria armazenar em uma memória RAM e depois gravar os dados nos discos tanto dos master qto do slave.
Mas será que isso acontece? ou ele grava em um disco e depois copia pro outro?

[11] Comentário enviado por removido em 17/11/2008 - 09:29h

Bom dia gatecrasher! Eu gostaria de saber se essa replicação é feita em todas as databases do mysql ou apenas uma. Caso seja em apenas uma, sabe me dizer como posso fazer em várias?

[12] Comentário enviado por franciney em 15/10/2012 - 16:42h

Ola ,meu caro , neceesito de sua ajuda , andei verificando no mysqle vi os seguintes arquivos de configuração no /usr/share/mysqld :
config.hug.ini
config.medium.ini
config.small.ini

Gostaria de saber se é destes arquivos que vc esta falando , e tambem gostaria de saber se relmente tenho de leva-los para o /etc , pois o arquivo my.cnf esta no /etc/mysql ?


Att : Franciney Souza


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts