Dela via


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. Den här funktionen ger maximal flexibilitet och kontroll där det behövs. I den här artikeln beskrivs hur du kör databasadministratörskommandon (DBA) manuellt vid behov.

Viktigt!

Kommandona nodetool och sstable finns i offentlig förhandsversion.

Den här funktionen tillhandahålls utan ett serviceavtal (SLA). Vi rekommenderar inte den här funktionen 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 med hjälp av Azure CLI för rutinmässig DBA-administration. Alla kommandon stöds inte och det finns vissa begränsningar. Mer information om kommandon som stöds finns i följande avsnitt.

Varning

Vissa av dessa kommandon kan destabilisera Cassandra-klustret. Använd endast dessa kommandon noggrant och efter testning i icke-produktionsmiljöer. Om möjligt distribuerar du ett --dry-run alternativ först. Microsoft erbjuder inget serviceavtal eller stöd för problem som uppstår vid körning av kommandon som ändrar standarddatabaskonfigurationen eller tabellerna.

Kör 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"="" 

Underkommandot måste finnas i avsnittet --arguments med ett tomt värde. Flaggorna nodetool utan värde finns i formuläret <flag>"=". Om flaggan har ett värde är den i formen <flag>"="value.

Det här exemplet visar hur du kör ett nodetool kommando utan flaggor. I det här fallet är nodetool status det kommandot:

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

Det här exemplet visar hur du kör ett nodetool kommando med en flagga. I det här fallet är nodetool compact det 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 JSON i följande form:

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

I de flesta fall behöver du bara commandOutput eller exitCode. Det här exemplet visar hur du hämtar bara commandOutput:

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

Kör ett sstable-kommando

Kommandona sstable kräver läs-/skrivåtkomst till Cassandra-datakatalogen och Cassandra-databasen ska stoppas. För att tillgodose detta krav anger du följande två parametrar: --cassandra-stop-start true och --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
}

Köra andra kommandon

Med cassandra-reset-password kommandot kan en användare ändra sitt lösenord för 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>"

Lösenordet är URL-kodat (UTF-8) i det här kommandot, vilket innebär att följande regler gäller:

  • De alfanumeriska tecknen a till z, A till Z, och 0 till 9 förblir desamma.
  • Specialtecken ., -, *och _ förblir desamma.
  • Blankstegstecknet konverteras till ett plustecken (+).
  • Alla andra tecken är osäkra och konverteras först till en eller flera byte med hjälp av ett kodningsschema. Strängen med tre tecken %xy representerar varje byte, där xy är den tvåsiffriga hexadecimala representationen av bytet.

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>"

Datacenter är URL-kodade (UTF-8) när de skickas till det här kommandot, vilket innebär att följande regler gäller:

  • De alfanumeriska tecknen a genom z, A genom Z, och 0 genom 9 förblir desamma.
  • Specialtecken ., -, *och _ förblir desamma.
  • Blankstegstecknet konverteras till ett plustecken (+).
  • Alla andra tecken är osäkra och konverteras först till en eller flera byte med hjälp av ett kodningsschema. Strängen med tre tecken %xy representerar varje byte, där xy är den tvåsiffriga hexadecimala representationen av bytet.

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 gjordes 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>"

Argumentet datetime måste formateras enligt exemplet. Du kan också lägga till --dry-run="" som ett argument för att se vilka filer kommandot tar bort.

Lista över sstable-kommandon som stöds

Mer information om varje kommando finns i SSTable-verktyg.

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

Lista över nodetool-kommandon som stöds

Mer information om varje kommando finns i Använda 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: För argument använder du "keyspace"="table indexname...".
  • refresh
  • refreshsizeestimates
  • reloadlocalschema
  • replaybatchlog
  • resetlocalschema
  • resumehandoff
  • ring
  • scrub
  • setcachecapacity: För argument använder du "key-cache-capacity" = "<row-cache-capacity> <counter-cache-capacity>".
  • setcachekeystosave: För argument använder du "key-cache-keys-to-save":"<row-cache-keys-to-save> <counter-cache-keys-to-save>".
  • setcompactionthreshold: För argument använder du "<keyspace>"="<table> <minthreshold> <maxthreshold>.
  • setcompactionthroughput
  • setconcurrentcompactors
  • sethintedhandoffthrottlekb
  • setinterdcstreamthroughput
  • setstreamthroughput
  • settimeout
  • settraceprobability
  • statusbackup
  • statusbinary
  • statusgossip
  • statushandoff
  • stop
  • tablehistograms
  • tablestats
  • toppartitions
  • tpstats
  • truncatehints
  • verify
  • version
  • viewbuildstatus