clearJumboFlag
Definição
clearJumboFlag
Limpa o sinalizadorjumbo de um chunk. Para utilizar o comando, emita o comando
clearJumboFlag
em uma instância domongos
.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Importante
Este comando não é suportado em instâncias sem servidor. Para obter mais informações, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
O comando tem a seguinte sintaxe:
db.adminCommand( { clearJumboFlag: "<database>.<collection>", bounds: <array> } )
-OU-
// Cannot use for collections with hashed shard keys db.adminCommand( { clearJumboFlag: "<database>.<collection>", find: <query> } )
Campos de comando
O comando clearJumboFlag
usa os seguintes campos como argumentos:
Campo | Tipo | Descrição |
---|---|---|
string | ||
array | Os limites exatos de uma parte específica. A array deve consistir em dois documento que especificam os valores da chave de fragmento inferior e superior de uma parte a ser movida:
| |
documento | Uma chave de shard específica e seu valor contido no jumbo chunk.
|
Controle de acesso
Em sistemas executados com authorization
, o usuário deve ter as ações de privilégio clearJumboFlag
no recurso {
db: "", collection: "" }
.
O papel embutido clusterManager
fornece os privilégios apropriados.
Exemplo
Limpar bandeira jumbo para um bloco (chave de fragmento baseada em intervalo)
O sh.status()
inclui o seguinte sh.status.databases.<collection>.chunk-details
para a collection test.jumbo
.
... // Content omitted for brevity test.jumbo shard key: { "x" : 1 } unique: false balancing: true chunks: shardA 2 shardB 2 { "x" : { "$minKey" : 1 } } -->> { "x" : 1 } on : shardB Timestamp(3, 0) { "x" : 1 } -->> { "x" : 2 } on : shardA Timestamp(6, 1) jumbo { "x" : 2 } -->> { "x" : 3 } on : shardA Timestamp(5, 1) jumbo { "x" : 3 } -->> { "x" : { "$maxKey" : 1 } } on : shardB Timestamp(6, 0)
O seguinte comando clearJumboFlag
especifica os limites do chunk { "x" : 1 } -->> { "x" :
2 }
:
db.adminCommand( { clearJumboFlag: "test.jumbo", bounds: [{ "x" : 1 }, { "x" : 2 }] } )
Após o sucesso, o comando retorna "ok": 1
em sua saída:
{ "ok" : 1, "operationTime" : Timestamp(1580190080, 5), "$clusterTime" : { "clusterTime" : Timestamp(1580190080, 5), "signature" : { "hash" : BinData(0,"0cYT49s72MHUYV1F2WpoEwlyeVs="), "keyId" : NumberLong("6786859092951433239") } } }
O comando clearJumboFlag
a seguir especifica o campo de localização para localizar o chunk que contém a chave de shard { "x" : 2 }
:
db.adminCommand( { clearJumboFlag: "test.jumbo", find: { "x" : 2 } } )
Após o sucesso, o comando retorna "ok": 1
em sua saída:
{ "ok" : 1, "operationTime" : Timestamp(1580191819, 5), "$clusterTime" : { "clusterTime" : Timestamp(1580191819, 5), "signature" : { "hash" : BinData(0,"N6x6drN7HUq5MR5ezUJns1rfeqY="), "keyId" : NumberLong("6786859092951433239") } } }
Para verificar a operação, execute sh.status()
novamente. O sinalizador jumbo
não deve mais aparecer em sua saída.
... // Content omitted for brevity test.jumbo shard key: { "x" : 1 } unique: false balancing: true chunks: shardA 2 shardB 2 { "x" : { "$minKey" : 1 } } -->> { "x" : 1 } on : shardB Timestamp(3, 0) { "x" : 1 } -->> { "x" : 2 } on : shardA Timestamp(7, 0) { "x" : 2 } -->> { "x" : 3 } on : shardA Timestamp(8, 0) { "x" : 3 } -->> { "x" : { "$maxKey" : 1 } } on : shardB Timestamp(6, 0)
Limpar bandeira jumbo para uma parte (chave de fragmento com hash)
O sh.status()
inclui o seguinte sh.status.databases.<collection>.chunk-details
para a collection test.jumboHashed
. A collection usa uma chave de fragmento com hash.
... // Content omitted for brevity test.jumboHashed shard key: { "x" : "hashed" } unique: false balancing: true chunks: shardA 2 shardB 2 { "x" : { "$minKey" : 1 } } -->> { "x" : NumberLong(0) } on : shardA Timestamp(1, 0) { "x" : NumberLong(0) } -->> { "x" : NumberLong("848411777775835583") } on : shardA Timestamp(4, 0) { "x" : NumberLong("848411777775835583") } -->> { "x" : NumberLong("5902408780260971510") } on : shardB Timestamp(4, 1) jumbo { "x" : NumberLong("5902408780260971510") } -->> { "x" : { "$maxKey" : 1 } } on : shardB Timestamp(2, 2)
Para limpar o sinalizador jumbo
de um chunk se a collection usar uma hashed shard key, use clearJumboFlag
com o campo bounds :
db.adminCommand( { clearJumboFlag: "test.jumboHashed", bounds: [{ "x" : NumberLong("848411777775835583") }, { "x" : NumberLong("5902408780260971510") }] } )
Após o sucesso, o comando retorna "ok": 1
em sua saída:
{ "ok" : 1, "operationTime" : Timestamp(1580194290, 5), "$clusterTime" : { "clusterTime" : Timestamp(1580194290, 5), "signature" : { "hash" : BinData(0,"nWCqOYVrab7NEGHWoo2NYENqHR4="), "keyId" : NumberLong("6786875525496307742") } } }
Para verificar a operação, execute sh.status()
novamente. O sinalizador jumbo
não deve mais aparecer em sua saída.
... // Content omitted for brevity test.jumboHashed shard key: { "x" : "hashed" } unique: false balancing: true chunks: shardA 2 shardB 2 { "x" : { "$minKey" : 1 } } -->> { "x" : NumberLong(0) } on : shardA Timestamp(1, 0) { "x" : NumberLong(0) } -->> { "x" : NumberLong("848411777775835583") } on : shardA Timestamp(4, 0) { "x" : NumberLong("848411777775835583") } -->> { "x" : NumberLong("5902408780260971510") } on : shardB Timestamp(5, 0) { "x" : NumberLong("5902408780260971510") } -->> { "x" : { "$maxKey" : 1 } } on : shardB Timestamp(2, 2)