As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Solução de problemas de índices
Os tópicos a seguir abordam o que fazer se a criação do índice ou índice em segundo plano falhar.
Tópicos
Criação de índice fracassa
O Amazon DocumentDB utiliza armazenamento local em uma instância como parte do processo de criação do índice. É possível monitorar o uso de disco usando o FreeLocalStorage CloudWatch metric (CloudWatch -> Metrics -> DocDB -> Instance Metrics). Quando a criação do índice consumia todo o disco local e falhar, você receberá um erro. Ao migrar dados para o Amazon DocumentDB, recomendamos que você crie índices primeiro e, depois, insira os dados. Para obter mais informações sobre estratégias de migração e criação de índices, consulte Migrar para o Amazon DocumentDB na documentação do Amazon DocumentDB e no blog: Migrar do MongoDB para o Amazon DocumentDB usando o método offline
Ao criar índices em um cluster existente, se a criação do índice estiver demorando mais do que o esperado ou falhando, recomendamos que você aumente a instância para criar o índice e, depois que o índice for criado, reduza novamente. O Amazon DocumentDB permite que você escale rapidamente os tamanhos das instâncias em minutos usando o Console de gerenciamento da AWS ou o. AWS CLI Para obter mais informações, consulte Gerenciar classes de instância. Com a definição de preço de instâncias por segundo, você paga apenas pelo recurso usado por segundo.
Problemas e falhas de latência de criação de índice em segundo plano
As compilações de índice em segundo plano no Amazon DocumentDB não são iniciadas até que todas as consultas na instância primária iniciadas antes do início da criação do índice sejam concluídas. Se houver uma consulta de longa duração, as compilações do índice em segundo plano serão bloqueadas até que a consulta seja concluída e, portanto, podem levar mais tempo do que o esperado para serem concluídas. Isso será verdadeiro mesmo que as coleções estejam vazias.
As compilações de índice em primeiro plano não exibem o mesmo comportamento de bloqueio. Em vez disso, as compilações de índice em primeiro plano têm um bloqueio exclusivo na coleção até que a construção do índice seja concluída. Portanto, para compilar índices em uma coleção vazia e evitar bloqueios em consultas de longa duração, sugerimos usar compilações de índice em primeiro plano.
nota
O Amazon DocumentDB permite que apenas uma compilação de índice de segundo plano ocorra em uma coleção em um determinado momento. Se as operações de DDL (Linguagem de definição de dados) como createIndex() ou dropIndex() ocorrerem na mesma coleção durante uma compilação de índice de segundo plano, essa compilação falhará.
Sobrecarga de índices de banco de dados
O Amazon DocumentDB usa controle de simultaneidade de várias versões (MVCC) para gerenciar transações simultâneas. Quando os documentos são excluídos ou atualizados, suas versões anteriores permanecem em coleções e índices como versões “inativas”. O processo de coleta de resíduos recupera automaticamente o espaço dessas versões inativas para futuras operações.
A sobrecarga de índices ocorre quando os índices de uma coleção se tornam maiores devido ao acúmulo de entradas de índice inativas ou obsoletas ou à fragmentação nas páginas. O percentual relatado representa a quantidade de espaço de índices que pode ser usada por futuras entradas de índice. Essa sobrecarga consome espaço no cache e no armazenamento do buffer. Se você quiser remover a sobrecarga, precisará reconstruir os índices.
exemplo Exemplo
Execute o comando apresentado a seguir para determinar o armazenamento não utilizado do seu índice:
db.coll.aggregate({$indexStats:{}});
O resultado deve ser semelhante a este:
{ "name" : "_id_", "key" : { "_id" : 1 }, "host" : "devbox-test.localhost.a2z.com:27317", "size" : NumberLong(827392), "accesses" : { "ops" : NumberLong(40000), "docsRead" : NumberLong(46049), "since" : ISODate("2025-04-03T21:44:51.251Z") }, "cacheStats" : { "blksRead" : NumberLong(264), "blksHit" : NumberLong(140190), "hitRatio" : 99.8121 }, "unusedStorageSize" : { "unusedSizeBytes" :409600, "unusedSizePercent" :49.51} }
É possível recriar índices sem tempo de inatividade usando o comando reIndex, que exige uma verificação de toda a coleção. Consulte Manutenção de índices usando reIndex.