Converter um mongod autônomo autogerenciado em um conjunto de réplicas
Uma instância autônoma mongod
é útil para teste e desenvolvimento. Uma instância autônoma não é uma boa opção para uma implantação de produção porque pode ser um ponto único de falha. Um conjunto de réplicas, também conhecido como cluster, fornece redundância e disponibilidade. Sempre use um conjunto de réplicas na produção.
Se você tiver um servidor independente com dados que deseja utilizar na produção, converta o servidor independente em um conjunto de réplica primeiro.
Importante
Se você converter um servidor de desenvolvimento em um conjunto de réplica para uso de produção, consulte a lista de verificação de segurança antes de expor seu cluster à Internet.
Você pode migrar facilmente de um servidor autônomo para um cluster do MongoDB Atlas . MongoDB Atlas é o serviço totalmente gerenciado para implementações MongoDB na nuvem. Para saber mais, consulte Migrar ou importar dados na documentação do MongoDB Atlas .
Antes de começar
Tipo de cluster
Antes de converter sua instância standalone, considere se um conjunto de réplica ou um aglomerado compartilhado é mais apropriado para sua carga de trabalho.
Um cluster fragmentado é um tipo especial de cluster. Um cluster fragmentado oferece redundância e disponibilidade; ele também distribui dados entre os fragmentos. Os fragmentos geralmente são hospedados em vários servidores e permitem o dimensionamento horizontal.
Autorização
Para usar a autorização com um conjunto de réplicas, você também deve configurar os membros do conjunto de réplicas para usar certificados X.509 ou arquivos-chave para executar a autenticação interna.
Para mais informações, veja:
Procedimento
Desligue a instância independente.
Use mongosh
para se conectar à sua instância mongod
.
mongosh
Alterne para o banco de dados admin
e execute shutdown
.
use admin db.adminCommand( { shutdown: 1, comment: "Convert to cluster" } )
Configurar membros do conjunto de réplicas
Atualize o arquivo de configuração em cada servidor e defina a configuração replSetName
.
replication: replSetName: "rs0"
Configurar autenticação de membro
Configure a autenticação de membros para cada servidor no conjunto de réplicas.
Configure o conjunto de réplicas para usar certificados X.509 para autenticação interna de membro.
Contexto | Opção | Descrição |
---|---|---|
Define o modo TLS a ser usado na autenticação. Para configurar o servidor para exigir autenticação de certificado X.509 , defina essa opção como requireTLS . | ||
Define o caminho para o arquivo .pem que contém o certificado TLS para conexões de cliente. | ||
Define o caminho para o arquivo que contém a cadeia de certificados raiz para a Autoridade de Certificação (CA). | ||
Defina o caminho para o arquivo .pem que contém o certificado TLS para conexões de membro do cluster. | ||
Defina o modo usado para autenticar membros de cluster. Para usar a autenticação X.509 , defina esta opção como x509 . |
Por exemplo:
replication: replSetName: "rs0" security: clusterAuthMode: x509 net: tls: mode: requireTLS certificateKeyFile: /etc/mongodb/client.pem CAFile: /etc/mongodb/ca.pem clusterFile: /etc/mongodb/member.pem
Configure o conjunto de réplicas para usar keyfiles para autenticação interna de membros. Para autenticar, cada membro deve ter uma cópia do mesmo arquivo de chaves.
Contexto | Opção | Descrição |
---|---|---|
Define o caminho para o arquivo-chave do conjunto de réplicas. |
Por exemplo:
replication: replSetName: "rs0" security: keyFile: /etc/mongodb/keyfile
Configura um conjunto de réplicas sem autorização.
Aviso
Você só deve usar essa configuração para conjuntos de réplicas internas que não sejam acessíveis pela rede.
Contexto | Opção | Descrição |
---|---|---|
Define os nomes de host ou endereços IP que o MongoDB escuta para conexões de clientes. Para bloquear o acesso da rede ao servidor, defina esta opção como localhost . |
Por exemplo:
replication: replSetName: "rs0" net: bindIp: localhost
Inicie o MongoDB.
Comece mongod
para cada membro.
Inicialize o conjunto de réplicas.
Para inicializar o conjunto de réplica, utilize o mongosh
para reconectar à sua instância do servidor. Em seguida, execute rs.initiate()
.
rs.initiate()
Você só precisa iniciar o conjunto de réplicas uma vez.
Para visualizar a configuração do conjunto de réplica, utilize rs.conf()
.
Para verificar o status do conjunto de réplicas, use rs.status()
.
Adicione nós ao conjunto de réplicas.
O novo conjunto de réplicas tem um único nó primário. A próxima etapa é adicionar novos nós ao conjunto de réplica. Revise a documentação em clusters antes de adicionar nós adicionais:
Quando estiver pronto para adicionar nós, use rs.add()
.