AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 73940
Accepted
Mike Purcell
Mike Purcell
Asked: 2014-08-14 14:06:27 +0800 CST2014-08-14 14:06:27 +0800 CST 2014-08-14 14:06:27 +0800 CST

Replicação do MySQL - mestre mestre - gravação de mestre único

  • 772

Estou procurando melhorar nossa tolerância a falhas para nosso armazenamento persistente. Depois de ler vários documentos on-line sobre como configurar a replicação master <> master, ainda gostaria de perguntar aos especialistas sobre a ordem de configuração, para garantir que não perca nada importante.

Nossa configuração será um mestre <> mestre, no entanto, apenas um mestre será gravado por vez. Isso será controlado via "ip flutuante", que pode ser configurado para apontar para o mestre secundário, se o mestre primário falhar.

  1. Com uma única configuração mestre de gravação <> mestre, não preciso me preocupar em definir a configuração auto_increment_offsetcorreta?

  2. O MySQL replica todos os bancos de dados por padrão ou preciso identificá-los explicitamente por meio de binlog-do-db?

  3. Preciso fazer uma exportação do master1 e importar para o master2, antes de iniciar a replicação, ou posso iniciar o master 2 para coletar todas as transações dos últimos meses?

  4. Só para esclarecer, preciso configurar um usuário "replicador" (com permissões de replicação) em master1 e master2?

-- Atualização 15/08/2014 --

Este é o guia que segui para minha configuração inicial


Para responder à pergunta nº 2 , fiz o seguinte:

Observe que tenho uma performance_schematabela, porque estou usando o Percona MySQL. Pela edição de Rolando, o seguinte não é necessário se você deseja replicar TODOS os bancos de dados, no entanto, estou deixando aqui para a posteridade mostrar aos outros como eles podem especificar vários bancos de dados, se não quiserem exportar todos.

binlog_do_db = information_schema
binlog_do_db = mysql
binlog_do_db = performance_schema
binlog_do_db = example_blog
binlog_do_db = example_core
binlog_do_db = example_log

Para responder à pergunta nº 3 , acabei criando um instantâneo do Master1 emitindo o seguinte comando:

mysqldump -h localhost -p -u root --opt --all-databases --single-transaction --master-data  > /tmp/example_snapshot_`date +%Y_%m_%d__%H_%M_%S`.sql

Observe o --master-dataparâmetro, de acordo com a documentação do mysql, isso nos permite criar um instantâneo sem precisar criar uma nova sessão e lidar com o bloqueio da tabela. No entanto, adiciona uma linha extra ao .sqlarquivo resultante:

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000029', MASTER_LOG_POS=107;

Eu removi esta linha porque queria fazer essa alteração manualmente, em cada mestre.


Fico feliz em informar que a replicação parece estar funcionando. Obrigado Rolando!

mysql replication
  • 1 1 respostas
  • 527 Views

1 respostas

  • Voted
  1. Best Answer
    RolandoMySQLDBA
    2014-08-14T19:48:38+08:002014-08-14T19:48:38+08:00

    Com uma única configuração mestre de gravação <> mestre, não preciso me preocupar em definir o auto_increment_offset correto?

    Sim você está certo. Eu configurei configurações Master-Master por anos com um Write Master. Eu nunca toquei nas opções auto_increment. Nunca teve um incidente.

    O MySQL replica todos os bancos de dados por padrão ou preciso identificá-los explicitamente via binlog-do-db?

    Sim, é por padrão. Embora o binlog-do-db exista, eu não o recomendaria, pois você está fazendo Master-Master. Se você tiver escravos adicionais, é melhor configurar a filtragem no escravo. Dessa forma, você tem todos os eventos binlog para recuperação pontual e outros incidentes. Esses incidentes podem incluir topologias em estrela (que apresentam mestres de distribuição, um mestre que não hospeda nenhum dado, apenas binlogs. Esses binlogs podem ser filtrados com binlog_do_db para reduzir o tráfego de binlog para escravos).

    Preciso fazer uma exportação de master1 e importar para master2, antes de iniciar a replicação?

    Você precisa exportar de master1 e importar para master2.

    posso iniciar o mestre 2 para coletar todas as transações dos últimos meses?

    A única maneira de fazer isso é se você tiver todos os binlogs desde que carregou o master1 e nunca apagou nenhum dos binlogs. A maioria das pessoas gira seus binlogs, tornando isso impossível.

    Preciso configurar um usuário "replicador" (com permissões de replicação) em master1 e master2?

    Sim

    EPÍLOGO

    Eu configurei o ucarp ao longo dos anos como o mecanismo de failover para o IP flutuante. A maioria usa Linux Heartbeat, Pacemaker e outros. Então, você está no estádio do que precisa ser feito.

    • 1

relate perguntas

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve