Você pode verificar a sincronização comparando5 hashes MD de coleções sincronizadas do cluster de origem com o cluster de destino. Enquanto a comparação de hash garante que o cluster de destino recebeu todas as alterações da origem, o comando bloqueia o cluster, evitando gravações adicionais até que ele seja concluído. Esse processo também pode ser muito mais lento do que a verificação dbHash usando contagens de documento .
Sobre esta tarefa
A comparação de hash não é possível com clusters fragmentados.
Se você precisar sincronizar um cluster fragmentado ou uma versão mais antiga do MongoDB, ou se os bloqueios forem inaceitáveis para o volume de trabalho do aplicativo, use um método de verificação diferente.
O comando dbHash faz hash de collections somente no banco de dados atual, e o campo collections aceita nomes de collections simples. Se você incluir o nome do banco de dados em um nome de collection, como accounts.us_accounts, dbHash não encontrará nenhuma collection correspondente e retornará o hash de uma entrada vazia em ambos os clusters. Para hash de coleções em mais de um banco de dados, alterne para cada banco de dados por sua vez, execute o comando uma vez por banco de dados e compare os valores md5 para cada banco de dados separadamente.
Passos
Recuperar o hash de origem
Alterne para o banco de dados que contém as coleções sincronizadas e, em seguida, execute o comando dbHash no cluster de origem. No campocollections, liste cada collection incluída na sincronização por nome, sem o prefixo do banco de dados . Em seguida, retorne o campo de saída md5:
use accounts db.runCommand({ dbHash: 1, collections: [ "us_accounts", "eu_accounts", ... ]}).md5
9a1e4b7c2f8d3056ae91cbd4f72608b3
Ao executar este comando, recupere o hash de destino.
Recuperar o hash de destino
Alterne para o banco de dados que contém as coleções sincronizadas e execute o comando dbHash no cluster de destino. No campocollections, liste cada collection incluída na sincronização por nome, sem o prefixo do banco de dados . Em seguida, retorne o campo de saída md5:
use accounts db.runCommand({ dbHash: 1, collections: [ "us_accounts", "eu_accounts", ... ]}).md5
9a1e4b7c2f8d3056ae91cbd4f72608b3
Observe o hash.