Criação de banco de dados MySQL replicação

É sempre sobre dados. Qual é a utilização de qualquer sistema sem os dados que depende?

Criação de uma replicação de banco de dados é um dos muitos passos que devem ser tomadas a fim de preservar os dados, evitando qualquer perda e recuperação de desastres tornando mais fácil.

Felizmente, é fácil com o MySQL. Então vamos supor que temos dois servidores rodando MySQL, um chamado host1 e host2 outros.
Replicação pode ser mestre-mestre ou mestre-escravo. Com uma replicação mestre-escravo, o escravo sempre replica o que o banco de dados mestre é execução. Em master-mestre replicação, dois bancos de dados sincronizar uns com os outros.

Para os fins deste tutorial, um mestre-escravo (aqui host1 e host2 respectivamente) cenário é examinado.

Primeiro de tudo, abra o arquivo de configuração do mysql no host1 (geralmente encontrado em / etc / my.cnf no linux e c: \ windows \ my.ini no Windows), e descomentar (remover o hash) a seguinte linha:

# Skip-networking

Em segundo lugar, você precisa especificar o arquivo onde o mestre (host1) deve registrar (gravar) as consultas é a execução. Isso permitirá que o escravo (host2) para ler essas consultas e executá-los também. Como tal, adicione uma linha como:

log-bin = / caminho / para / mysql-bin.log

onde o valor acima é o caminho para o arquivo onde o MySQL deve fazer o registro. Você pode muito bem criar um diretório separado ou use o padrão diretório de instalação do mysql (como C: \ Arquivos de programas \ mysql \ no Windows ou / var / lib / mysql no linux)

Então, você precisa especificar o nome do banco de dados em questão. Então, se você estiver configurando a replicação de um dos seus bancos de dados MySQL chamado 'work_data', então, esta é a linha que você precisa para adicionar à sua configuração MySQL:

binlog-do-db = work_data

Finalmente, você precisa especificar um ID do servidor, que diz que este é o servidor mestre

server-id = 1

Salve o arquivo de configuração e sair.
Agora você precisa dar a permissão host2 para replicar os dados. Como tal, uma consulta MySQL precisa ser executado no master.

Assim por diante host1, acesse o prompt do MySQL (mysql-u root-pyour_root_password) (ou PHPMyAdmin, etc ... o que você usa), e emitir a seguinte declaração:

conceder slave de replicação em *.* para ''@'%' nome de usuário identificado por' password ';

Certifique-se de substituir o nome de usuário e senha com uma credencial de sua escolha. Mantenha as aspas simples no entanto.
O sinal% significa que o escravo pode se conectar de qualquer host. Se você quer que ele seja mais seguro, que substitua com host2 (do escravo hostname).

Depois de todos os acima é feito, reinicie o serviço MySQL (service mysqld restart (linux) ou, net stop mysql, net start mysql (no Windows)).

Se o banco de dados anteriores tinha, certifique-se despejá-lo e carregá-lo no escravo antes de fazer qualquer um dos acima. Extraindo dados é fácil e pode ser feito por cd'ing para o diretório bin MySQL e emissão:

mysqldump-Q-u root-pyour_root_password databasename> database_dump.sql

(Substitua a palavra-passe e nome do banco com o login correto). O banco de dados inteiro será agora em um arquivo chamado database_dump.sql

Para importá-lo em host2 cd, para o diretório bin mysql e execute:

mysql-u root-databasename pyour_root_password </ caminho / para / o / arquivo / database_dump.sql

O arquivo de configuração do MySQL em host2 deve ter as seguintes linhas:

server-id = 2
master-host = host1
mestre do usuário-username =
mestre senha password =
master-port = 3306

host1 onde é o mestre do hostname / IP, nome de usuário e e senha são as credenciais que você usou ao concederem o acesso de replicação alguns passos acima. 3306 é o MySQL está em execução no porto (que é o padrão)

Em seguida, iniciar o processo de escravo na host2 emitindo no prompt do MySQL:

começar a escravo;

Para fazer a replicação se está trabalhando, a questão seguinte consulta SQL em host1:

SHOW SLAVE STATUS \ G

(Slave_SQL_Running e Slave_IO_Running deve reportar 'Sim')

Boa sorte

6 Comentários

Robert 17 setembro, 2008 às 10:49

Grande, apenas o que eu precisava. Agora ... É possível definir vários dispositivos mestre para replicar em apenas um servidor Slave?. Estou perguntando isso porque estou tentando configurar uma topologia Active-Standby em que, se um dos Mestres falha poderia ser substituir temporariamente pelo servidor Slave. Obrigado

administrador 17 setembro, 2008 às 11:25

Caro Robert,
O que sobre a execução de vários serviços MySQL no host escravo? Cada uma delas seria executado em uma porta diferente e seria dependente de um mestre diferente.

Robert 23 de setembro de 2008 às 13:44

Thats Genius! , Embora eu vou ter que mudar a maneira como os usuários se conecta ao banco de dados a fim de fazer uma transição tranqüila em caso de um fracasso.

administrador 23 de setembro de 2008 às 16:58

Você pode configurar um serviço DNS local, e fazer os usuários utilizam um nome de host (em casos normais apontando para o mestre) para acessar o seu serviço.
Em caso de falha, basta alterar o registro DNS de que hostname para apontar para a máquina slave.
Usuários não notaria a mudança se você alterar o IP que resolve hostname para.

host2 1 de abril de 2010 às 08:02

[...] Torna possível adicionar ou remover nós do cluster sem a necessidade de reconfigurar clients.Tips e Truques Criação de banco de dados MySQL replicationSo vamos supor que temos dois servidores rodando MySQL, um chamado host1 e host2 outros. ... Se você [...]

suppliments naturais 29 de dezembro de 2011 às 05:56

Tenho lido alguns dos artigos em seu site agora, e eu realmente gosto de seu estilo de blogging. Eu adicionei aos meus lista de sites favoritos do blog e será a verificação de volta em breve. Veja o meu site, bem e deixe-me saber o que pensa.

suppliments naturais

Deixe um comentário

O seu comentário