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, permitindo a máxima flexibilidade e controle onde necessário. Este artigo descreve como executar comandos DBA manualmente quando necessário.
Importante
Os comandos Nodetool e sstable estão em visualização pública. Esse recurso é fornecido sem um contrato de nível de serviço e não é recomendado 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
A Instância Gerenciada do Azure para Apache Cassandra permite executar nodetool
comandos por sstable
meio da CLI do Azure, para administração de DBA de rotina. Nem todos os comandos são suportados e existem algumas limitações. Para obter os comandos suportados, consulte as seções abaixo.
Aviso
Alguns desses comandos podem desestabilizar o cluster cassandra e só devem ser executados com cuidado e depois de testados em ambientes que não sejam de produção. Sempre que possível, deve ser implantada --dry-run
uma opção em primeiro lugar. A Microsoft não pode oferecer qualquer SLA ou suporte em problemas com a execução de comandos que alteram a configuração padrão do banco de dados e/ou tabelas.
Como executar um nodetool
comando
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 específico precisa estar na --arguments
seção com um valor vazio. Nodetool
As bandeiras sem um valor estão na forma: "<flag>"=""
. Se a bandeira tem um valor, ele está na forma: "<flag>"="value"
.
Aqui está um exemplo de 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"=""
Aqui está um exemplo de 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 retornarão um json da seguinte forma:
{
"commandErrorOutput": "",
"commandOutput": "<result>",
"exitCode": 0
}
Na maioria dos casos, você pode precisar apenas do commandOutput ou do exitCode. Aqui está um exemplo para obter apenas o commandOutput:
az managed-cassandra cluster invoke-command --query "commandOutput" --resource-group $resourceGroupName --cluster-name $clusterName --host $host --command-name nodetool --arguments getstreamthroughput=""
Como executar um sstable
comando
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 isso, dois parâmetros extras --cassandra-stop-start true
e --readwrite true
precisam ser dados:
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
}
Como executar outros comandos
O cassandra-reset-password
comando permite que um usuário altere sua senha para o usuário 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>"
Importante
A senha é codificada por URL (UTF-8) quando é passada para este comando, o que significa que as seguintes regras se aplicam:
The alphanumeric characters "a" through "z", "A" through "Z" and "0" through "9" remain the same.
The special characters ".", "-", "*", and "_" remain the same.
The space character " " is converted into a plus sign "+".
All other characters are unsafe and are first converted into one or more bytes using some encoding scheme. Then each byte is represented by the 3-character string "%xy", where xy is the two-digit hexadecimal representation of the 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>"
Importante
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:
The alphanumeric characters "a" through "z", "A" through "Z" and "0" through "9" remain the same.
The special characters ".", "-", "*", and "_" remain the same.
The space character " " is converted into a plus sign "+".
All other characters are unsafe and are first converted into one or more bytes using some encoding scheme. Then each byte is represented by the 3-character string "%xy", where xy is the two-digit hexadecimal representation of the 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 usuário exclua seus sstables feitos antes de um determinado tempo.
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 argumento datetime deve ser formatado como mostrado acima. Você também pode adicionar --dry-run="" como um argumento para ver quais arquivos serão excluídos.
Lista de comandos suportados sstable
Para obter mais informações sobre cada comando, consulte https://cassandra.apache.org/doc/latest/cassandra/tools/sstable/index.html
sstableverify
sstablescrub
sstablemetadata
sstablelevelreset
sstableutil
sstablesplit
sstablerepairedset
sstableofflinerelevel
sstableexpiredblockers
Lista de comandos suportados nodetool
Para obter mais informações sobre cada comando, consulte https://cassandra.apache.org/doc/latest/cassandra/tools/nodetool/nodetool.html
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 uso de argumentos"keyspace"="table indexname..."
refresh
refreshsizeestimates
reloadlocalschema
replaybatchlog
resetlocalschema
resumehandoff
ring
scrub
setcachecapacity
- para uso de argumentos"key-cache-capacity" = "<row-cache-capacity> <counter-cache-capacity>"
setcachekeystosave
- para uso de argumentos"key-cache-keys-to-save":"<row-cache-keys-to-save> <counter-cache-keys-to-save>"
setcompactionthreshold
- para uso de argumentos"<keyspace>"="<table> <minthreshold> <maxthreshold>
setcompactionthroughput
setconcurrentcompactors
sethintedhandoffthrottlekb
setinterdcstreamthroughput
setstreamthroughput
settimeout
settraceprobability
statusbackup
statusbinary
statusgossip
statushandoff
stop
tablehistograms
tablestats
toppartitions
tpstats
truncatehints
verify
version
viewbuildstatus