Comandi DBA per Azure Istanza gestita per Apache Cassandra
Istanza gestita di Azure per Apache Cassandra è un servizio completamente gestito per cluster Apache Cassandra open source puri. Il servizio consente anche di eseguire l'override delle configurazioni, a seconda delle esigenze specifiche di ogni carico di lavoro, consentendo la massima flessibilità e controllo dove necessario. Questo articolo descrive come eseguire manualmente i comandi DBA in caso di necessità.
Importante
I comandi Nodetool e sstable sono disponibili in anteprima pubblica. Questa funzionalità viene messa a disposizione senza contratto di servizio e non è consigliata per i carichi di lavoro di produzione. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.
Supporto dei comandi DBA
Azure Istanza gestita per Apache Cassandra consente di eseguire nodetool
comandi e sstable
tramite l'interfaccia della riga di comando di Azure per l'amministrazione di routine dell'amministratore di database. Non tutti i comandi sono supportati e esistono alcune limitazioni. Per i comandi supportati, vedere le sezioni seguenti.
Avviso
Alcuni di questi comandi possono destabilizzare il cluster cassandra, quindi devono essere eseguiti con attenzione e solo dopo essere stati testati in ambienti non di produzione. Se possibile, è necessario distribuire prima un'opzione --dry-run
. Microsoft non può offrire alcun contratto di servizio o supporto per problemi relativi all'esecuzione di comandi che modificano la configurazione e/o le tabelle predefinite del database.
Come eseguire un nodetool
comando
Azure Istanza gestita per Apache Cassandra fornisce il comando dell'interfaccia della riga di comando di Azure seguente per eseguire i comandi 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"=""
Il sottocomando specifico deve trovarsi nella --arguments
sezione con un valore vuoto. Nodetool
i flag senza un valore sono nel formato : "<flag>"=""
. Se il flag ha un valore, si trova nel formato : "<flag>"="value"
.
Ecco un esempio di come eseguire un nodetool
comando senza flag, in questo caso il 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"=""
Ecco un esempio di come eseguire un nodetool
comando con un flag, in questo caso il 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"
Entrambi restituiranno un json del formato seguente:
{
"commandErrorOutput": "",
"commandOutput": "<result>",
"exitCode": 0
}
Nella maggior parte dei casi potrebbe essere necessario solo il comandoOutput o exitCode. Di seguito è riportato un esempio per ottenere solo il comandoOutput:
az managed-cassandra cluster invoke-command --query "commandOutput" --resource-group $resourceGroupName --cluster-name $clusterName --host $host --command-name nodetool --arguments getstreamthroughput=""
Come eseguire un sstable
comando
I sstable
comandi richiedono l'accesso in lettura/scrittura alla directory dei dati Cassandra e al database Cassandra da arrestare. Per soddisfare questo problema, è necessario specificare due parametri aggiuntivi --cassandra-stop-start true
--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
}
Come eseguire altri comandi
Il cassandra-reset-password
comando consente a un utente di modificare la password per l'utente 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
La password è con codifica URL (UTF-8) quando viene passata a questo comando, ovvero si applicano le regole seguenti:
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.
Il cassandra-reset-auth-replication
comando consente a un utente di modificare lo schema per l'utente Cassandra. Separare i nomi dei data center in base allo spazio.
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
I data center sono codificati con URL (UTF-8) quando vengono passati a questo comando, ovvero si applicano le regole seguenti:
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.
Il sstable-tree
comando consente a un utente di visualizzare gli instabili.
az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> --host <ip of data node> --command-name sstable-tree
Il sstable-delete
comando consente a un utente di eliminare gli instabili eseguiti prima di un determinato momento.
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>"
L'argomento Datetime deve essere formattato come illustrato in precedenza. È anche possibile aggiungere --dry-run="" come argomento per vedere quali file verranno eliminati.
Elenco dei comandi supportati sstable
Per altre informazioni su ogni comando, vedere https://cassandra.apache.org/doc/latest/cassandra/tools/sstable/index.html
sstableverify
sstablescrub
sstablemetadata
sstablelevelreset
sstableutil
sstablesplit
sstablerepairedset
sstableofflinerelevel
sstableexpiredblockers
Elenco dei comandi supportati nodetool
Per altre informazioni su ogni comando, vedere 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
- per gli argomenti usare"keyspace"="table indexname..."
refresh
refreshsizeestimates
reloadlocalschema
replaybatchlog
resetlocalschema
resumehandoff
ring
scrub
setcachecapacity
- per gli argomenti usare"key-cache-capacity" = "<row-cache-capacity> <counter-cache-capacity>"
setcachekeystosave
- per gli argomenti usare"key-cache-keys-to-save":"<row-cache-keys-to-save> <counter-cache-keys-to-save>"
setcompactionthreshold
- per gli argomenti usare"<keyspace>"="<table> <minthreshold> <maxthreshold>
setcompactionthroughput
setconcurrentcompactors
sethintedhandoffthrottlekb
setinterdcstreamthroughput
setstreamthroughput
settimeout
settraceprobability
statusbackup
statusbinary
statusgossip
statushandoff
stop
tablehistograms
tablestats
toppartitions
tpstats
truncatehints
verify
version
viewbuildstatus