Sincronize dois bancos de dados MySQL em dois locais diferentes


19

Eu tenho dois bancos de dados MySQL idênticos, um em um servidor interno e outro em um servidor de hospedagem na web. Quero atualizar o banco de dados no host todos os dias com o banco de dados no servidor interno. Existe uma maneira de automatizar esse processo também como posso fazer isso manualmente? Se devo fazer isso manualmente, é necessário obter um dump SQL do banco de dados no servidor interno e importá-lo no banco de dados no host da web? Alguém pode conselhos por favor.


Você pode consultar existente resposta postada aqui no StackOverflow stackoverflow.com/questions/52583/...
Mahesh Patil

sobre # 2, se eu fizer o dump completo do interno e importar na produção, ele substituirá o banco de dados on-line, quero dizer que tenho compradores on-line no banco de dados hospedado na web e quero migrar as compras do banco de dados interno para o live, você pode esclarecer a BTW acontecer com aumentos automáticos entre dois, se os dois estavam reservando o mesmo id, será uma bagunça!
shareef

Respostas:


20

Você tem poucas opções:

  1. Configure a replicação do MySQL entre os servidores. Seu servidor interno pode atuar como mestre e o servidor host como escravo. Quaisquer atualizações realizadas no mestre serão replicadas para o escravo imediatamente (assumindo uma conexão ativa). Esta provavelmente será a opção mais fácil e eficaz de escolher. Para usar a replicação, seu banco de dados interno precisa estar acessível na rede a partir do host da web.

    Você pode ler mais sobre replicação aqui .

  2. Todos os dias, você pode executar um mysqldump no servidor interno, fazer upload do arquivo de despejo no host e importar os dados. Como esse é um dump completo, se você tiver um banco de dados muito grande, isso pode não ser viável. Se você preferir, esse procedimento pode ser potencialmente script para evitar a necessidade de fazê-lo manualmente.

  3. Você pode configurar o log binário no servidor interno. Em seguida, você pode enviar os logs binários para o host da Web e aplicá-los ao banco de dados, reproduzindo efetivamente todas as transações que ocorreram naquele dia para o servidor da Web. De fato, é o que acontece com a replicação de qualquer maneira, então você quase sempre acompanha a replicação configurada em vez dessa opção.

Se não houver conexão entre os dois bancos de dados, usar o mysqldumps a cada dia será o caminho mais fácil.


sobre # 2, se eu fizer o dump completo do interno e importar na produção, ele substituirá o banco de dados on-line, quero dizer que tenho compradores on-line no banco de dados hospedado na web e quero migrar as compras do banco de dados interno para o live, você pode esclarecer a BTW acontecer com aumentos automáticos entre dois, se os dois estavam reservando o mesmo id, será uma bagunça!
shareef

4

Você também pode usar opções como symmetricDS, que podem ajudar na sincronização de dois bancos de dados. Com isso, você poderá selecionar as tabelas que precisam ser sincronizadas para economizar a largura de banda da Internet. Isso também seria adequado no cenário em que há falta de conectividade entre dois locais.


2

Como configurar a replicação de banco de dados com o MariaDB: https://www.techrepublic.com/article/how-to-set-up-database-replication-with-mariadb/


11
Bem-vindo ao DBA.SE. Agradecemos sua contribuição / participação. No entanto, a comunidade espera uma certa qualidade nas respostas postadas. Por favor, considere ler o seguinte artigo: Como escrevo uma boa resposta? (Central de Ajuda) Na seção Responda à pergunta há uma frase curta que diz: Links para recursos externos são incentivados, mas adicione contexto ao redor do link para que seus colegas usuários tenham uma idéia do que é e por que está lá
John aka hot2use 10/09/18

0

Você poderia usar o Navicat . É basicamente um gerenciador de banco de dados, mas possui a funcionalidade de transferência e sincronização de dados, além de um agendador para que você possa automatizar. Não é gratuito, mas há um teste completo de 30 funções.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.