Partilhar via


Comandos DBA para Instância Gerenciada do Azure para Apache Cassandra

A Instância Gerenciada do Azure para Apache Cassandra é um serviço totalmente gerenciado para clusters Apache Cassandra de código aberto puro. O serviço também permite que as configurações sejam substituídas, dependendo das necessidades específicas de cada carga de trabalho. Este recurso permite a máxima flexibilidade e controle onde necessário. Este artigo descreve como executar comandos do administrador de banco de dados (DBA) manualmente quando necessário.

Importante

Os nodetool comandos e sstable estão em pré-visualização pública.

Esse recurso é fornecido sem um contrato de nível de serviço (SLA). Não recomendamos esse recurso para cargas de trabalho de produção. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Suporte a comandos DBA

Com a Instância Gerenciada do Azure para Apache Cassandra, pode executar os comandos nodetool e sstable usando a Azure CLI para administração rotineira do administrador de banco de dados. Nem todos os comandos são suportados e existem algumas limitações. Para obter comandos suportados, consulte as seções a seguir.

Aviso

Alguns desses comandos podem desestabilizar o cluster Cassandra. Use esses comandos apenas com cuidado e após testes em ambientes que não sejam de produção. Sempre que possível, implante uma --dry-run opção primeiro. A Microsoft não oferece nenhum SLA ou suporte em problemas decorrentes da execução de comandos que alteram a configuração ou as tabelas padrão do banco de dados.

Executar um comando nodetool

A Instância Gerenciada do Azure para Apache Cassandra fornece o seguinte comando da CLI do Azure para executar comandos DBA:

az managed-cassandra cluster invoke-command --resource-group <rg> \
  --cluster-name <cluster> --host <ip of data node> --command-name nodetool \
  --arguments "<nodetool-subcommand>"="" "paramerter1"="" 

O subcomando precisa estar na --arguments seção com um valor vazio. As nodetool bandeiras sem um valor estão na forma <flag>"=". Se a bandeira tem um valor, ele está na forma <flag>"="value.

Este exemplo mostra como executar um nodetool comando sem sinalizadores. Neste caso, é o nodetool status comando:

az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> \
  --host <ip of data node> --command-name nodetool --arguments "status"="" 

Este exemplo mostra como executar um nodetool comando com um sinalizador. Neste caso, é o nodetool compact comando:

az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> \
  --host <ip of data node> --command-name nodetool --arguments "compact"="" "-st"="65678794" 

Ambos retornam JSON da seguinte forma:

{
    "commandErrorOutput": "",
    "commandOutput": "<result>",
    "exitCode": 0
}

Na maioria dos casos, você precisa apenas commandOutput ou exitCode. Este exemplo mostra como obter apenas commandOutput:

az managed-cassandra cluster invoke-command --query "commandOutput" --resource-group $resourceGroupName \
  --cluster-name $clusterName --host $host --command-name nodetool --arguments getstreamthroughput=""

Executar um comando sstable

Os sstable comandos requerem acesso de leitura/gravação ao diretório de dados Cassandra e ao banco de dados Cassandra para serem interrompidos. Para acomodar esse requisito, especifique estes dois parâmetros: --cassandra-stop-start true e --readwrite true.

az managed-cassandra cluster invoke-command --resource-group <test-rg> \
  --cluster-name <test-cluster> --host <ip> --cassandra-stop-start true --readwrite true \
  --command-name sstableutil --arguments "system"="peers"
{
"commandErrorOutput": "",
"commandOutput": "Listing files...\n/var/lib/cassandra/data/system/peers-37f71aca7dc2383ba70672528af04d4f/me-1-big-CompressionInfo.db\n/var/lib/cassandra/data/system/peers-37f71aca7dc2383ba70672528af04d4f/me-1-big-Data.db\n/var/lib/cassandra/data/system/peers-37f71aca7dc2383ba70672528af04d4f/me-1-big-Digest.crc32\n/var/lib/cassandra/data/system/peers-37f71aca7dc2383ba70672528af04d4f/me-1-big-Filter.db\n/var/lib/cassandra/data/system/peers-37f71aca7dc2383ba70672528af04d4f/me-1-big-Index.db\n/var/lib/cassandra/data/system/peers-37f71aca7dc2383ba70672528af04d4f/me-1-big-Statistics.db\n/var/lib/cassandra/data/system/peers-37f71aca7dc2383ba70672528af04d4f/me-1-big-Summary.db\n/var/lib/cassandra/data/system/peers-37f71aca7dc2383ba70672528af04d4f/me-1-big-TOC.txt\n",
"exitCode": 0
}

Executar outros comandos

O cassandra-reset-password comando permite que um usuário altere sua senha para Cassandra.

az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> \
  --host <ip of data node> --command-name cassandra-reset-password --arguments password="<password>"

A senha é codificada por URL (UTF-8) neste comando, o que significa que as seguintes regras se aplicam:

  • Os caracteres alfanuméricos a até z, A até Z e 0 até 9 permanecem os mesmos.
  • Os caracteres .especiais , -, *, e _ permanecem os mesmos.
  • O caractere de espaço é convertido em um sinal de mais (+).
  • Todos os outros caracteres não são seguros e são primeiro convertidos em um ou mais bytes usando algum esquema de codificação. A cadeia %xy de três caracteres representa cada byte, onde xy é a representação hexadecimal de dois dígitos do byte.

O cassandra-reset-auth-replication comando permite que um usuário altere seu esquema para o usuário Cassandra. Separe os nomes do datacenter por espaço.

az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> \
  --host <ip of data node> --command-name cassandra-reset-auth-replication \
  --arguments password="<datacenters>"

Os datacenters são codificados por URL (UTF-8) quando são passados para este comando, o que significa que as seguintes regras se aplicam:

  • Os caracteres alfanuméricos de a até z, de A até Z e de 0 até 9 permanecem os mesmos.
  • Os caracteres .especiais , -, *, e _ permanecem os mesmos.
  • O caractere de espaço é convertido num sinal de adição (+).
  • Todos os outros caracteres não são seguros e são primeiro convertidos em um ou mais bytes usando algum esquema de codificação. A cadeia %xy de três caracteres representa cada byte, onde xy é a representação hexadecimal de dois dígitos do byte.

O sstable-tree comando permite que um usuário veja seus SSTables.

az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> \
  --host <ip of data node> --command-name sstable-tree

O sstable-delete comando permite que um utilizador apague os seus SSTables que foram criados anteriormente a uma data específica.

az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> \
  --host <ip of data node> --command-name sstable-delete --arguments datetime="<YYYY-MM-DD hh:mm:ss>"

O datetime argumento deve ser formatado como mostrado no exemplo. Você também pode adicionar --dry-run="" como um argumento para ver quais arquivos o comando exclui.

Lista de comandos sstable suportados

Para obter mais informações sobre cada comando, consulte Ferramentas SSTable.

  • sstableverify
  • sstablescrub
  • sstablemetadata
  • sstablelevelreset
  • sstableutil
  • sstablesplit
  • sstablerepairedset
  • sstableofflinerelevel
  • sstableexpiredblockers

Lista de comandos nodetool suportados

Para obter mais informações sobre cada comando, consulte Usar nodetool.

  • status
  • cleanup
  • clearsnapshot
  • compact
  • compactionhistory
  • compactionstats
  • describecluster
  • describering
  • disableautocompaction
  • disablehandoff
  • disablehintsfordc
  • drain
  • enableautocompaction
  • enablehandoff
  • enablehintsfordc
  • failuredetector
  • flush
  • garbagecollect
  • gcstats
  • getcompactionthreshold
  • getcompactionthroughput
  • getconcurrentcompactors
  • getendpoints
  • getinterdcstreamthroughput
  • getlogginglevels
  • getsstables
  • getstreamthroughput
  • gettimeout
  • gettraceprobability
  • gossipinfo
  • info
  • invalidatecountercache
  • invalidatekeycache
  • invalidaterowcache
  • listsnapshots
  • netstats
  • pausehandoff
  • proxyhistograms
  • rangekeysample
  • rebuild
  • rebuild_index: Para argumentos, use "keyspace"="table indexname...".
  • refresh
  • refreshsizeestimates
  • reloadlocalschema
  • replaybatchlog
  • resetlocalschema
  • resumehandoff
  • ring
  • scrub
  • setcachecapacity: Para argumentos, use "key-cache-capacity" = "<row-cache-capacity> <counter-cache-capacity>".
  • setcachekeystosave: Para argumentos, use "key-cache-keys-to-save":"<row-cache-keys-to-save> <counter-cache-keys-to-save>".
  • setcompactionthreshold: Para argumentos, use "<keyspace>"="<table> <minthreshold> <maxthreshold>.
  • setcompactionthroughput
  • setconcurrentcompactors
  • sethintedhandoffthrottlekb
  • setinterdcstreamthroughput
  • setstreamthroughput
  • settimeout
  • settraceprobability
  • statusbackup
  • statusbinary
  • statusgossip
  • statushandoff
  • stop
  • tablehistograms
  • tablestats
  • toppartitions
  • tpstats
  • truncatehints
  • verify
  • version
  • viewbuildstatus