DBA-kommandon för Azure Managed Instance för Apache Cassandra
Azure Managed Instance för Apache Cassandra är en fullständigt hanterad tjänst för rena Apache Cassandra-kluster med öppen källkod. Tjänsten tillåter också att konfigurationer åsidosätts, beroende på de specifika behoven för varje arbetsbelastning, vilket ger maximal flexibilitet och kontroll där det behövs. I den här artikeln beskrivs hur du kör DBA-kommandon manuellt när behovet uppstår.
Viktigt!
Nodetool- och sstable-kommandon finns i offentlig förhandsversion. Den här funktionen tillhandahålls utan ett serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Stöd för DBA-kommandon
Med Azure Managed Instance för Apache Cassandra kan du köra nodetool
och sstable
kommandon via Azure CLI för rutinmässig DBA-administration. Alla kommandon stöds inte och det finns vissa begränsningar. För kommandon som stöds, se avsnitten nedan.
Varning
Vissa av dessa kommandon kan destabilisera cassandra-klustret och bör endast köras noggrant och efter att ha testats i icke-produktionsmiljöer. Om möjligt bör ett --dry-run
alternativ distribueras först. Microsoft kan inte erbjuda något serviceavtal eller stöd för problem med att köra kommandon som ändrar standarddatabaskonfigurationen och/eller tabellerna.
Så här kör du ett nodetool
kommando
Azure Managed Instance för Apache Cassandra innehåller följande Azure CLI-kommando för att köra DBA-kommandon:
az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> --host <ip of data node> --command-name nodetool --arguments "<nodetool-subcommand>"="" "paramerter1"=""
Den specifika underkommandot måste finnas i avsnittet --arguments
med ett tomt värde. Nodetool
flaggor utan värde finns i formuläret: "<flag>"=""
. Om flaggan har ett värde är den i formuläret : "<flag>"="value"
.
Här är ett exempel på hur du kör ett nodetool
kommando utan flaggor, i det här fallet nodetool status
kommandot:
az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> --host <ip of data node> --command-name nodetool --arguments "status"=""
Här är ett exempel på hur du kör ett nodetool
kommando med en flagga, i det här fallet nodetool compact
kommandot:
az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> --host <ip of data node> --command-name nodetool --arguments "compact"="" "-st"="65678794"
Båda returnerar en json av följande formulär:
{
"commandErrorOutput": "",
"commandOutput": "<result>",
"exitCode": 0
}
I de flesta fall kanske du bara behöver kommandotOutput eller exitCode. Här är ett exempel på hur du bara hämtar kommandotOutput:
az managed-cassandra cluster invoke-command --query "commandOutput" --resource-group $resourceGroupName --cluster-name $clusterName --host $host --command-name nodetool --arguments getstreamthroughput=""
Så här kör du ett sstable
kommando
Kommandona sstable
kräver läs-/skrivåtkomst till Cassandra-datakatalogen och Cassandra-databasen ska stoppas. För att hantera detta måste två extra parametrar --cassandra-stop-start true
--readwrite true
anges:
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
}
Så här kör du andra kommandon
Med cassandra-reset-password
kommandot kan en användare ändra sitt lösenord för Cassandra-användaren.
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>"
Viktigt!
Lösenordet är URL-kodat (UTF-8) när det skickas till det här kommandot, vilket innebär att följande regler gäller:
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.
Med cassandra-reset-auth-replication
kommandot kan en användare ändra sitt schema för Cassandra-användaren. Avgränsa datacenternamnen efter blanksteg.
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>"
Viktigt!
Datacenter är URL-kodade (UTF-8) när de skickas till det här kommandot, vilket innebär att följande regler gäller:
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.
Med sstable-tree
kommandot kan en användare se sina sstables.
az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> --host <ip of data node> --command-name sstable-tree
Med sstable-delete
kommandot kan en användare ta bort sina sstables som gjorts före en viss tid.
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>"
Datetime-argumentet måste formateras enligt ovan. Du kan också lägga till --dry-run="" som ett argument för att se vilka filer som ska tas bort.
Lista över kommandon som stöds sstable
Mer information om varje kommando finns i https://cassandra.apache.org/doc/latest/cassandra/tools/sstable/index.html
sstableverify
sstablescrub
sstablemetadata
sstablelevelreset
sstableutil
sstablesplit
sstablerepairedset
sstableofflinerelevel
sstableexpiredblockers
Lista över kommandon som stöds nodetool
Mer information om varje kommando finns i 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
- för argumentanvändning"keyspace"="table indexname..."
refresh
refreshsizeestimates
reloadlocalschema
replaybatchlog
resetlocalschema
resumehandoff
ring
scrub
setcachecapacity
- för argumentanvändning"key-cache-capacity" = "<row-cache-capacity> <counter-cache-capacity>"
setcachekeystosave
- för argumentanvändning"key-cache-keys-to-save":"<row-cache-keys-to-save> <counter-cache-keys-to-save>"
setcompactionthreshold
- för argumentanvändning"<keyspace>"="<table> <minthreshold> <maxthreshold>
setcompactionthroughput
setconcurrentcompactors
sethintedhandoffthrottlekb
setinterdcstreamthroughput
setstreamthroughput
settimeout
settraceprobability
statusbackup
statusbinary
statusgossip
statushandoff
stop
tablehistograms
tablestats
toppartitions
tpstats
truncatehints
verify
version
viewbuildstatus