Você pode verificar a sincronização comparando hashes MD5 de coleções sincronizadas do cluster de 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 dbHash 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 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 aplica hash apenas às coleções no banco de dados atual, e o campo collections aceita nomes de coleção simples. Se você incluir o nome do banco de dados em um nome de coleção, como accounts.us_accounts, dbHash não encontrará nenhuma coleção correspondente e retornará o hash de uma entrada vazia em ambos os clusters. Para aplicar hash a coleções em mais de um banco de dados, mude para cada banco de dados por vez, execute o comando uma vez por banco de dados e compare os valores de md5 para cada banco de dados separadamente.
Passos
Recuperar o hash de origem
Mude para o banco de dados que contém as coleção sincronizadas e, em seguida, execute o comando dbHash no cluster de origem. No campo collections, liste cada coleção 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
Mude para o banco de dados que contém as coleções de sincronização e, em seguida, execute o comando dbHash no cluster de destino. No campo collections, liste cada coleção 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.