Quando uma instância do ApsaraDB for MongoDB esgota o espaço em disco, seu status muda para Locked. Uma instância bloqueada impede operações de gravação e exclusão. Este tópico explica como solucionar e resolver falhas de gravação causadas pelo esgotamento do espaço em disco.
Sintomas
Sua aplicação não consegue mais gravar dados no banco de dados, mas ainda consegue ler.
-
Quando um administrador conecta ao banco de dados via mongo shell para solucionar o problema e tenta gravar um documento, uma mensagem de erro é retornada:
not authorized on xxxx to execute command. Um exemplo é exibido abaixo:db.customer.insert({"name":"zhangsan"}) WriteCommandError({ "operationTime" : Timestamp(1563437183, 1), "ok" : 0, "errmsg" : "not authorized on db1 to execute command { insert: \"customer\", ordered: true, lsid: { id: UUID(\"8d43461c-5c51-49ef-b9b3-9xxxxxxxxf\") }, $clusterTime: { clusterTime: Timestamp(1563437183, 1), signature: { hash: BinData(0, 0C3FAAE747xxxxxx), keyId: 668293399xxxxxx } }, $db: \"db1\" }", "code" : 13, "codeName" : "Unauthorized", "$clusterTime" : { "clusterTime" : Timestamp(1563437183, 1), "signature" : { "hash" : BinData(0,"DD+q50dPTuIQKTzytT5SiTPYX4Q="), "keyId" : NumberLong("66xxxxxxxx") } } }) -
No console do ApsaraDB for MongoDB, o status da instância é Locked.
NotaDevido à sua arquitetura, instâncias de sharded cluster não entram no estado Locked quando o espaço em disco é esgotado.
Verificar o uso do espaço em disco
Faça login no console do ApsaraDB for MongoDB.
No canto superior esquerdo da página, selecione o grupo de recursos e a região aos quais a instância pertence.
No painel de navegação à esquerda, clique em Replica Set Instances ou Sharded Cluster Instance de acordo com o tipo da instância.
Na página exibida, localize a instância que deseja gerencie e clique em seu id.
-
Os próximos passos dependem da arquitetura da sua instância.
NotaOs dados de uso do espaço em disco são coletados em intervalos de 5 minutos.
-
Instância standalone ou replica set
Na página Basic Information, verifique o status da instância e o uso do espaço em disco. Neste exemplo, o status é Locked e o uso do disco ultrapassa 100%, o que indica que o espaço em disco foi esgotado.
-
Instância de sharded cluster
No painel de navegação à esquerda, clique em Monitoring Data.
-
Na página Monitoring Data, selecione o nó shard na lista suspensa de instâncias no canto superior direito.
NotaIDs de nó que começam com
dsão nós shard, e IDs de nó que começam comssão nós mongos. Verifique o uso do espaço em disco. Neste exemplo, o uso do disco do nó shard ultrapassa 100%, o que indica que o espaço em disco foi esgotado.

-
Soluções
-
Altere a configuração da instância para aumentar o espaço de armazenamento.
NotaO espaço máximo em disco disponível varia conforme o tipo de instância. Para mais informações, consulte Tipos de instância.
-
A capacidade máxima de armazenamento de uma instância replica set é de 3.000 GB. Se você prevê que suas necessidades de armazenamento ultrapassarão esse limite, recomendamos utilizar uma instância de sharded cluster. É possível escalar horizontalmente o armazenamento de uma instância de sharded cluster até 96.000 GB adicionando nós shard.
NotaVocê pode usar o Data Transmission Service (DTS) para migrar dados da instância replica set de source para a nova instância de sharded cluster. Para mais informações, consulte Migrar dados de uma instância replica set do MongoDB para uma instância de sharded cluster.
Recomendações
Se você excluiu uma grande quantidade de dados da sua instância usando o comando db.collection.remove, ou se ainda não desfragmentou a instância, você pode recuperar fragmentos de disco para melhorar a utilização do armazenamento.