Conectar dois clusters auto-managed
O utilitáriomongosync cria uma conexão entre clusters MongoDB . O 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 Cluster-to-Cluster Sync.
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]]
Especifique os nomes de host das instâncias do mongod
da mesma forma que elas estão listadas na configuração do conjunto de réplicas.
Para clusters fragmentados, especifique os nomes de host das instâncias mongos
em vez das instâncias mongod
.
Observação
mongosync
não requer a opção replicaSet
.
mongosync
requer a read preference primary
para se conectar aos clusters de origem e destino. Para obter mais informações, consulte Opções de preferência de leitura.
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 modificar as configurações de bloqueio de escrita ou 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 | ||
Bloqueio duplo de gravação | ||
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.
Para atualizar permissões de usuário, consulte: grantRolesToUser
.
Comportamento
Hospedagem
O utilitário mongosync
pode ser hospedado em seu próprio hardware próximo ao cluster de origem ou de destino. Ele não precisa ser hospedado no mesmo servidor que uma das instâncias mongod
ou mongos
no cluster. Essa flexibilidade permite que você envie ou extraia dados para o cluster de destino com impacto mínimo nas instâncias mongod
ou mongos
execução lá.
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"
Você também pode usar connection strings mongodb+srv
com mongosync
. Você não precisa adicionar a opção tls=true
a uma string de conexão mongodb+srv
. Por exemplo:
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.