Converter um mongod autogerenciado independente em um conjunto de réplicas
Uma instância standalone mongod
é útil para teste e desenvolvimento. Uma instância standalone não é uma boa opção para uma implantação de produção, pois 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 standalone 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
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.
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" } )
Dê um nome ao conjunto de réplicas.
Se você configurar sua instância do mongod
a partir da linha de comando, utilize a opção --replSet
para configurar um nome para seu conjunto de réplica.
Uma invocação típica da linha de comando pode incluir:
Propósito | Opção |
---|---|
Nome do cluster | |
Detalhes da rede | |
Caminho de dados | |
Detalhes de autenticação |
Atualize o código de exemplo com as configurações para sua implantação.
mongod --replSet rs0 \ --port 27017 \ --dbpath /path/to/your/mongodb/dataDirectory \ --authenticationDatabase "admin" \ --username "adminUserName" \ --password
Se você utilizar um arquivo de configuração para iniciar o mongodb
, adicione uma seção replication
no seu arquivo de configuração. Edite o valor de replSetName
para definir o nome do seu conjunto de réplicas.
replication: replSetName: rs0
Observação
Opcional
Você pode especificar o diretório de dados, nome do conjunto de réplica e a ligação de IP no mongod.conf
arquivo de configuração, e iniciar o mongod
com o seguinte comando:
mongod --config /etc/mongod.conf
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()
.
Atualize a string de conexão do seu aplicativo.
Depois de converter o mongod em um conjunto de réplicas, atualize a connection string usada pelos aplicativos para a connection string do conjunto de réplicas. Em seguida, reinicie seus aplicativos.