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 / 19546
Accepted
ledy
ledy
Asked: 2012-06-21 00:30:10 +0800 CST2012-06-21 00:30:10 +0800 CST 2012-06-21 00:30:10 +0800 CST

MongoDB: conjunto de réplicas - mestre x escravo

  • 772

Pensamos em passar de mestre-escravos para MongoDBcom replica-set. Agora eu me pergunto se MongoDBas réplicas também são configuradas como read-only slavesou se cada uma mongosé capaz de escrever e sincronizar as outras como um farm mestre-mestre?

Isso pode reduzir a fonte única de erro ( master down) e também equilibrar o write-loadescalonamento com melhor desempenho (não apenas para leitura, mas também gravação...).

mongodb replication
  • 3 3 respostas
  • 14420 Views

3 respostas

  • Voted
  1. Best Answer
    Asya Kamsky
    2012-06-21T03:25:19+08:002012-06-21T03:25:19+08:00

    Um conjunto de réplicas pode ter apenas um primário em um determinado momento (um mestre) com os outros nós sendo secundários (escravos) e, portanto, eles não são nada como a replicação mestre-mestre (ou seja, vários mestres).

    Definitivamente, você deve mudar para um conjunto de réplicas da configuração mestre/escravo porque essa é a maneira preferida e recomendada de replicar. Dos documentos do MongoDB: "conjuntos de réplicas são um superconjunto funcional de mestre/escravo e um código mais novo e robusto".

    Quando um primário falha, um dos secundários será automaticamente eleito como um novo primário (você pode ver os documentos para ver os detalhes de como isso acontece).

    Você não pode obter balanceamento de gravação por ter um conjunto de réplicas - você só pode distribuir gravações fragmentando no MongoDB.

    • 6
  2. Md Haidar Ali Khan
    2018-02-12T04:45:42+08:002018-02-12T04:45:42+08:00

    Em primeiro lugar, não estou descartando nada de @Asya Kamsky. Mas eu gostaria de escrever algo sobre a réplica Set: Mater vs Slave .

    De acordo com a fonte documentada do MongoDB, a replicação mestre-escravo é o modo de replicação mais geral suportado pelo . Este modo é muito flexível e pode ser usado para , , . A configuração básica é iniciar um e um ou mais , cada um dos quais conhece o endereço do arquivo . Para iniciar o , execute . Para iniciar um , execute , onde é o endereço do que acabou de iniciar.MongoDB the Definite Guide MongoDBbackupfailoverread scalingmaster node slave nodesmastermastermongod --masterslavemongod --slave --source master_addressmaster_addressmaster node

    Suponha que, primeiro, crie um diretório para masterarmazenar os dados e escolha um port( 10000):

    $ mkdir -p ~/dbs/master
    $ ./mongod --dbpath ~/dbs/master --port 10000 --master
    

    Agora configure o slave, escolhendo um diretório de dados e uma porta diferentes. Para um escravo, você também precisa dizer quem é seu mestre com a --sourceopção:

    $ mkdir -p ~/dbs/slave
    $ ./mongod --dbpath ~/dbs/slave --port 10001 --slave --source localhost:10000
    

    All slaves must be replicated from a master node. Não há atualmente nenhum mecanismo para replicar a partir de um escravo ( encadeamento em série ) , porque os escravos não mantêm os seus próprios oplog .

    Não há limite explícito para o número de slavesem um cluster, mas ter mil escravos consultando um único mestre provavelmente sobrecarregará o nó mestre .

    Observação: se você tiver dois masters diferentesslave com as mesmas coleções, tentará mesclá -los, mas isso não é garantido. Se você estiver usando um único escravo com vários mestres diferentes, é melhor garantir que os mestres usem arquivos .MongoDB namespaces

    A replica seté basicamente um master-slavecluster com arquivos failover. A maior diferença entre um cluster mestre-escravo e um conjunto de réplicas é que um conjunto de réplicas não possui um único mestre: um é eleito pelo cluster e pode mudar para outro nó se o mestre atual cair. No entanto, eles são muito semelhantes: um conjunto de réplicas sempre tem um single master node(chamado primário ) e um ou mais escravos (chamados secondaries).

    Observação: quando o servidor principal fica inativo, o servidor secundário se torna master.

    O registro de operações mantido pelo mestre é chamado de oplog , abreviação de log de operação. O oplogé armazenado em um banco de dados especial chamado local, na oplog.$maincoleção. Cada documento no oplogrepresenta uma única operação executada no servidor mestre .

    No mestre-escravo na réplica definida no cenário de failover e eleição primária depende da condição e configuração entre mestre e escravo assim

    1. Quando o primaryservidor for down, o secondaryservidor se tornará master.
    2. Se primarycair, os highest-priorityservidores irão comparar como up-to-dateestão.
    3. Se o Primary Servercair entre os secundários, a prioridade mais alta most-up-to-date serverse tornará o arquivo new primary.

    Usar slavespara escalar reads é que a MongoDBreplicação é asynchronous. Isso significa que quando os dados são inseridos ou atualizados no master, os dados no slaveserão out-of-datemomentâneos. É importante considerar isso se você estiver atendendo a algumas solicitações usando consultas para slaves.

    Nota: você deve ter certeza de nunca acessar writenenhum banco de dados no slaveque está sendo replicateddo master. O slavenão reverterá nada writespara corrigir corretamente mirroro arquivo master. O slavetambém não deve ter nenhum dos bancos de dados que estão sendo replicados quando inicializado . Se isso acontecer, esses bancos de dados nunca serão fully synced, mas apenas atualizados com new operations.

    • 1
  3. xxd
    2012-06-21T01:39:54+08:002012-06-21T01:39:54+08:00

    É muito parecido com "escrever e sincronizar os outros como uma fazenda mestre-mestre". como a documentação do MongoDB disse, "conjuntos de réplicas são uma forma de replicação mestre/escravo assíncrona, adicionando failover automático e recuperação automática de nós membros." Verifique http://www.mongodb.org/display/DOCS/Replica+Sets

    • 0

relate perguntas

  • Bons recursos para operar/administrar o MongoDB

  • É imprudente executar a replicação no mesmo servidor físico?

  • Existe uma maneira de medir o atraso de replicação no MySQL com uma resolução inferior a 1 segundo?

  • Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo

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

Sidebar

Stats

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

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 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

    Como selecionar a primeira linha de cada grupo?

    • 6 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
    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
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +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
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +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