Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

clearJumboFlag

Nesta página

  • Definição
  • Compatibilidade
  • Sintaxe
  • Controle de acesso
  • Exemplo
clearJumboFlag

Limpa o sinalizadorjumbo de um chunk. Para utilizar o comando, emita o comando clearJumboFlag mongos em uma instância do.

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

clearJumboFlag tem as seguintes sintaxes:

db.adminCommand( {
clearJumboFlag: "<database>.<collection>",
bounds : <array>
} )

-OU-

// Cannot use for collections with hashed shard keys
db.adminCommand( {
clearJumboFlag: "<database>.<collection>",
find : <query>
} )

O comando clearJumboFlag usa os seguintes campos como argumentos:

Campo
Tipo
Descrição

string

O namespace da coleção fragmentada com o(s) jumbo chunk(s).

Especifique o namespace completo da collection, incluindo o nome do reconhecimento de data center (ou seja, "<database>.<collection>")

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:

[ { <shardKey> : <minValue> },{ <shardKey> : <maxValue> } ]

documento

Uma chave de shard específica e seu valor contido no jumbo chunk.

{ <shardKey> : <value> }

  • Especifique o campo limites ou o find campo mas não ambos.

  • Se a collection usar uma chave de fragmento com hash ,não use o campo find . Em vez disso, use limites.

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.

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)

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)

Dica

Veja também:

Voltar

balancerStop