O utilitário mongosync cria uma conexão entre Clusters MongoDB . mongosync pode se conectar a qualquer um dos seguintes clusters:
Clusters hospedados no MongoDB Atlas
um cluster autogerenciado e um cluster hospedado pelo Atlas
Esta página fornece instruções para conectar clusters autogerenciados usando o MongoDB Mongosync.
Observação
Para obter o melhor desempenho, atualize os clusters de origem e destino para a versão de patch mais recente do MongoDB Server antes da migração. Para obter mais informações, consulte Atualizar para a versão de patch autogerenciada mais recente do MongoDB.
Cadeias de conexão
mongosync usa uma string de conexão de URI MongoDB para conectar clusters:
O esquema de conexão SRV tem o formulário:
mongodb+srv://[username:password@][host.domain.TLD][:port][/defaultauthdb][?options] O esquema de conexão URI padrão tem o formulário:
mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
Specify the hostnames of the mongod instances the same way that they are listed in your replica set configuration.
For sharded clusters, specify the hostnames of the mongos instances instead of the mongod instances.
Observação
mongosync does not require the replicaSet option.
mongosync requires the primary read preference to connect to the source and destination clusters. For more information, see Read Preference Options.
Autenticação
Se o cluster de origem ou destino exigir autenticação, você deverá fornecer as credenciais corretas ao chamar o mongosync.
Funções
O usuário especificado na string de conexão mongosync deve ter as permissões necessárias nos clusters de origem e destino. As permissões variam dependendo do seu ambiente e se você deseja usar a sincronização reversa.
As permissões self-managed são:
Tipo de sincronização | Permissões de origem necessárias | Permissões de destino necessárias |
|---|---|---|
Default | ||
Reversão | ||
Múltiplas reversões |
Para obter detalhes sobre as funções do servidor , consulte: Controle de acesso baseado em funções em implementações autogerenciadas.
To update user permissions, see: grantRolesToUser.
Comportamento
Hospedagem
The mongosync utility can be hosted on its own hardware close to either the source or destination cluster. It does not have to be hosted on the same server as one of the mongod or mongos instances in the cluster. This flexibility allows you to push, or pull, data to the destination cluster with minimal impact on the mongod or mongos instances running there.
Estado inicial
Quando mongosync se conecta, ele está no estado IDLE . Você deve emitir o comando de inicialização para iniciar a sincronização.
Exemplo
Obter informações de conexão
O cluster de origem, cluster0, é hospedado nos seguintes servidores e portas:
clusterOne01.fancyCorp.com:20020
clusterOne02.fancyCorp.com:20020
clusterOne03.fancyCorp.com:20020
O cluster de destino, cluster1, é hospedado nos seguintes servidores e portas:
clusterTwis01.fancyCorp.com:20020
clusterTwis02.fancyCorp.com:20020
clusterTwi03.fancyCorp.com:20020
Há um usuário administrativo, clusterAdmin configurado em cada cluster com senha, superSecret.
Conecte os clusters de origem e destino com mongosync
O formato genérico da string de conexão é:
mongodb://<user>:<password>@<ip-address>:<port>,<ip-address>:<port>,<ip-address>:<port>
Use as informações de conexão coletadas para criar as string de conexão para cluster0 e cluster1:
cluster0: mongodb://clusterAdmin:superSecret@clusterOne01.fancyCorp.com:20020,clusterOne02.fancyCorp.com:20020,clusterOne03.fancyCorp.com:20020 cluster1: mongodb://clusterAdmin:superSecret@clusterTwo01.fancyCorp.com:20020,clusterTwo02.fancyCorp.com:20020,clusterTwo03.fancyCorp.com:20020
O layout de comando mongosync abaixo é modificado para exibição. Para conectar cluster0 a cluster1 com mongosync, digite o seguinte comando em uma linha:
mongosync \ --cluster0 "mongodb://clusterAdmin:superSecret@clusterOne01.fancyCorp.com:20020,clusterOne02.fancyCorp.com:20020,clusterOne03.fancyCorp.com:20020" \ --cluster1 "mongodb://clusterAdmin:superSecret@clusterTwo01.fancyCorp.com:20020,clusterTwo02.fancyCorp.com:20020,clusterTwo03.fancyCorp.com:20020"
You can also use mongodb+srv connection strings with mongosync. You do not need to add the tls=true option to a mongodb+srv connection string. For example:
mongosync \ --cluster0 "mongodb+srv://clusterAdmin:superSecret@clusterOne01.fancyCorp.com/" \ --cluster1 "mongodb+srv://clusterAdmin:superSecret@clusterTwo01.fancyCorp.com/"
Para obter mais detalhes sobre connection strings mongodb+srv , consulte Formato de conexão SRV.