Semente com mongorestore
Você pode usar mongodump
e mongorestore
para popular o cluster do MongoDB Atlas com dados de um conjunto de réplicas ou autônomo do MongoDB existente. Para obter orientação sobre como popular dados de um cluster fragmentado do MongoDB existente, entre em contato com o suporte do Atlas:
No Atlas, acesse a página Project Support.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Ao lado do menu Projects, expanda o menu Options e clique em Project Support.
A página Suporte ao Projeto é exibida.
Além de poder dimensionar um cluster de camada grátis para um M0
M10+
cluster pago do usando a UI do Atlas, você também pode usar os processos mongodump
do e nesta seção para copiar dados de um mongorestore
M0
cluster de camada grátis do para um M10+
cluster do.
Considerações
Versão recomendada do mongodump
e do mongorestore
Use a versão estável mais recente do mongodump
e mongorestore
para este procedimento.
Tempo de inatividade exigido
Para garantir uma migração atualizada, agende uma janela de manutenção na qual você possa interromper todas as gravações em seu cluster de origem. Todas as operações de gravação emitidas para o cluster de origem após a conclusão da parte mongodump
do procedimento não são migradas para o cluster de destino.
Depois que mongorestore
concluir a restauração dos dados, você deverá transferir seus aplicativos para o cluster de destino do Atlas antes de retomar as operações de gravação. Para se conectar a um cluster do Atlas, consulte Conectar-se a um cluster.
O tempo total de inatividade exigido depende de fatores como o tamanho dos dados que estão sendo migrados e a conexão de rede entre seu cluster de origem e o Atlas. Se você tiver dúvidas sobre tempo de inatividade prolongado, entre em contato com o suporte do Atlas:
No Atlas, acesse a página Project Support.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Ao lado do menu Projects, expanda o menu Options e clique em Project Support.
A página Suporte ao Projeto é exibida.
Para obter um procedimento de migração de indisponibilidade mínima guiada para versões do MongoDB anteriores 6.0 a, consulte migração em produção do conjunto de réplicas.
Segurança de cluster
O Atlas gerencia a criação de usuários do banco de dados. Se o cluster de origem impuser autenticação:
Permitir acesso de leitura ao primário.
Para usar
mongorestore
com a opção--oplogReplay
, você deve excluir os diretóriosadmin
econfig
do diretóriodump
quemongodump
cria. Os diretóriosadmin
econfig
contêm informações do usuário do banco de dados que você não pode adicionar a um Atlas cluster commongorestore
. Use omongorestore
--nsExclude
para excluir o namespaceadmin.system.*
.
Você não pode migrar nenhuma informação de usuário ou função existente para o Atlas. Para o cluster Atlas de destino, crie os devidos usuários do banco de dados para viabilizarem os padrões de uso do seu aplicativo. Atualize seus aplicativos como parte do procedimento de corte para usar os novos usuários do banco de dados. Para saber mais, consulte Configurar usuários do banco de dados.
Desempenho
Este processo requer a execução mongodump
e mongorestore
em um host no cluster de origem. Esses programas consomem recursos do sistema, como CPU e memória, e podem afetar o desempenho do host.
Execute este procedimento durante o uso do sistema sem pico ou durante uma janela de manutenção programada. Se a origem for um conjunto de réplicas, você poderá executar esse procedimento no host de um membro secundário. Depois de interromper as gravações no cluster, permita que o secundário alcance o primário antes de iniciar esse procedimento.
Comportamento de pipe
Este procedimento utiliza pipes do Linux para transmitir a saída de mongodump
para mongorestore
. Se o processo mongorestore
não conseguir acompanhar o processo mongodump
, você poderá ver erros de pipes quebradas.
Para obter orientação sobre como lidar com erros persistentes de pipe quebrado, entre em contato com o suporte do Atlas:
No Atlas, acesse a página Project Support.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Ao lado do menu Projects, expanda o menu Options e clique em Project Support.
A página Suporte ao Projeto é exibida.
Procedimento
O seguinte tutorial utiliza mongodump
e mongorestore
para transferir dados de um MongoDB cluster para um cluster Atlas :
Crie um usuário do banco de dados no conjunto de réplicas de origem.
Importante
Opcional
Se o cluster de origem não impuser autenticação, pule esta etapa.
Se o sistema de origem impuser autenticação, você deverá fornecer um utilizador de banco de dados com privilégios para ler qualquer banco de dados como parte desse procedimento. Para saber mais sobre privilégios de usuário do banco de dados, consulte Controle de acesso baseado em funções do MongoDB.
Se esse usuário não existir, crie um usuário em seu conjunto de réplicas de origem do MongoDB com a role de backup no banco de dados admin
.
Exemplo
Monte o comando mongodump
.
Com base no tipo de cadeia de conexão que você usa, copie um dos seguintes modelos para o seu editor de texto:
Observação
Para se conectar aos clusters do Atlas, recomendamos se conectar com uma cadeia de conexão de lista de sementes de DNS usando a opção --uri
.
mongodump --uri "mongodb://username:password@mongodb0.example.com:<Port>,mongodb1.example.com:<Port1>,mongodb2.example.com:<Port2>/?replicaSet=<ReplicaSetName>&authSource=admin" \ --archive
Substitua os exemplos de host pelas informações dos seus nós do conjunto de réplicas. Substitua <ReplicaSetName>
pelo nome do conjunto de réplicas de origem.
Para sistema standalone, exclua replicaSet=<ReplicaSetName>
e especifique o nome de host somente do sistema standalone. Por exemplo, --uri "mongodb://standalone-mongod.example.net:27017"
mongodump --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" \ --archive
Observação
Se estiver usando mongodump
ou mongorestore
no Ubuntu 18.04, você poderá enfrentar uma mensagem de erro cannot unmarshal DNS
ao usar connection strings SRV (no formato mongodb+srv://
) com a opção --uri
. Nesse caso, use uma das seguintes opções:
a opção
--uri
com uma connection string não SRV (no formatomongodb://
)a opção
--host
para especificar o host para conectar diretamente
Observação
Se sua senha contiver caracteres especiais, ela deverá ser codificada por porcentagem.
Não execute este comando ainda. Prossiga para a próxima etapa depois de modificar o modelo.
Configure o usuário de banco de dados no Atlas cluster de destino.
Para executar o mongorestore
em um Atlas cluster, você deve especificar um usuário do banco de dados no Atlas cluster que tenha o papel Atlas admin
.
Se esse usuário não existir, crie o usuário:
No Atlas, acesse a página Organization Access Manager.
Se ainda não estiver exibido, selecione sua organização desejada no Menu Organizations na barra de navegação.
Execute uma das seguintes etapas:
Selecione Organization Access no menu Access Manager na barra de navegação.
Clique em Access Manager na barra lateral.
A página Organization Access Manager é exibida.
Clique em Add New Database User.
Adicione um usuário Atlas admin .
Para saber mais sobre o gerenciamento de usuários, consulte Configurar usuários do banco de dados.
No Atlas, váGo para a Clusters página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Se ainda não estiver exibido, clique em Clusters na barra lateral.
A página Clusters é exibida.
Recupere e modifique o modelo de conexão do mongorestore
.
A seção Binary Import and Export Tools da aba Command Line Tools exibe um modelo copiável com as opções mínimas exigidas para conectar o mongorestore
ao seu Atlas cluster.
O modelo inclui valores de espaço reservado para determinadas opções. Copie e cole o modelo no editor de texto da sua preferência e faça as seguintes modificações:
password
: substitua pela senha de usuário especificada emusername
. O modelo inclui um usuário de banco de dados do projeto como ousername
. Para fazer a autenticação com outro usuário, substitua ousername
e a senha para este usuário nopassword
.Adicione
--nsExclude
e configure o valor em"admin.system.*"
.Adicione
--archive
.
Com base no tipo de cadeia de conexão usado, seu modelo deve ser semelhante a um dos seguintes comandos:
mongorestore --uri "mongodb+srv://username:password@cluster1.example.mongodb.net" \ --archive \ --nsExclude "admin.system.*"
Execute o mongodump
e o mongorestore
.
Importante
Certifique-se de que o host em que você está executando mongodump
e mongorestore
esteja na lista de acesso IP do projeto.
Para revisar sua lista de acesso IP do projeto, clique em Network Access na seção Security na barra lateral. A aba IP Access List será exibida. Para saber mais, consulte Lista de acesso IP.
No seu editor de texto, use o operador de pipe |
para separar os comandos mongodump
e mongorestore
. Com base no tipo de connection string usado, o comando final deve ser semelhante a um dos seguintes:
mongodump --uri "mongodb://username:password@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=sourceRS&authSource=admin" \ --archive \ | \ mongorestore --uri "mongodb://username:password@00.foo.mongodb.net:27017,01.foo.mongodb.net:27017,02.foo.mongodb.net:27017/?replicaSet=myAtlasRS&authSource=admin" \ --archive \ --ssl \ --nsExclude "admin.system.*"
mongodump --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" \ --archive \ | \ mongorestore --uri "mongodb+srv://username:password@cluster1.example.mongodb.net" \ --archive \ --nsExclude "admin.system.*"
Execute o comando completo a partir de um terminal ou shell conectado a uma máquina hospedeira no cluster de origem.
Após a conclusão do procedimento, conecte-se ao cluster do Atlas usando mongosh
e verifique o resultado do procedimento. Para saber como, consulte Conectar via mongosh
.
Você deve atualizar seus aplicativos para apontarem para o cluster Atlas antes de retomar as operações de gravação. Para saber como conectar aplicativos ao Atlas, consulte Conectar por meio de drivers.