Delen via


DBA-opdrachten voor Azure Managed Instance voor Apache Cassandra

Azure Managed Instance voor Apache Cassandra is een volledig beheerde service voor pure opensource Apache Cassandra-clusters. Met de service kunnen configuraties ook worden overschreven, afhankelijk van de specifieke behoeften van elke workload, waardoor de maximale flexibiliteit en controle waar nodig mogelijk zijn. In dit artikel wordt beschreven hoe u DBA-opdrachten handmatig uitvoert wanneer de noodzaak zich voordoet.

Belangrijk

Nodetool- en stable-opdrachten zijn beschikbaar als openbare preview. Deze functie wordt geleverd zonder service level agreement en wordt niet aanbevolen voor productieworkloads. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.

Ondersteuning voor DBA-opdrachten

Met Azure Managed Instance voor Apache Cassandra kunt u opdrachten uitvoeren en sstable opdrachten uitvoeren nodetool via Azure CLI, voor routine DBA-beheer. Niet alle opdrachten worden ondersteund en er zijn enkele beperkingen. Zie de onderstaande secties voor ondersteunde opdrachten.

Waarschuwing

Sommige van deze opdrachten kunnen het cassandra-cluster stabiliseren en moeten alleen zorgvuldig worden uitgevoerd en nadat ze zijn getest in niet-productieomgevingen. Waar mogelijk moet eerst een --dry-run optie worden geïmplementeerd. Microsoft kan geen SLA of ondersteuning bieden voor problemen met het uitvoeren van opdrachten die de standaarddatabaseconfiguratie en/of tabellen wijzigen.

Een opdracht uitvoeren nodetool

Azure Managed Instance voor Apache Cassandra biedt de volgende Azure CLI-opdracht voor het uitvoeren van DBA-opdrachten:

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

De specifieke subopdracht moet zich in de --arguments sectie bevinden met een lege waarde. Nodetool vlaggen zonder waarde zijn in de vorm: "<flag>"="". Als de vlag een waarde heeft, heeft deze de volgende notatie: "<flag>"="value".

Hier volgt een voorbeeld van het uitvoeren van een nodetool opdracht zonder vlaggen, in dit geval de nodetool status opdracht:

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

Hier volgt een voorbeeld van het uitvoeren van een nodetool opdracht met een vlag, in dit geval de nodetool compact opdracht:

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

Beide retourneren een json van het volgende formulier:

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

In de meeste gevallen hebt u mogelijk alleen de commandOutput of de exitCode nodig. Hier volgt een voorbeeld voor het alleen verkrijgen van de commandOutput:

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

Een opdracht uitvoeren sstable

De sstable opdrachten vereisen lees-/schrijftoegang tot de cassandra-gegevensmap en de Cassandra-database om te worden gestopt. Hiervoor moeten twee extra parameters --cassandra-stop-start true --readwrite true worden opgegeven:

    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
    }

Andere opdrachten uitvoeren

Met cassandra-reset-password de opdracht kan een gebruiker het wachtwoord voor de Cassandra-gebruiker wijzigen.

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

Belangrijk

Het wachtwoord is URL-gecodeerd (UTF-8) wanneer het wordt doorgegeven aan deze opdracht, wat betekent dat de volgende regels van toepassing zijn:

  • 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.

Met de cassandra-reset-auth-replication opdracht kan een gebruiker het schema voor de Cassandra-gebruiker wijzigen. Scheid de namen van het datacenter op afstand.

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

Belangrijk

De datacenters zijn URL-gecodeerd (UTF-8) wanneer ze worden doorgegeven aan deze opdracht, wat betekent dat de volgende regels van toepassing zijn:

  • 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.

Met de sstable-tree opdracht kunnen gebruikers hun sstables zien.

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

Met de sstable-delete opdracht kan een gebruiker de sstables verwijderen die vóór een bepaalde tijd zijn gemaakt.

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

Het argument Datum/tijd moet worden opgemaakt zoals hierboven wordt weergegeven. U kunt ook --dry-run="" toevoegen als argument om te zien welke bestanden worden verwijderd.

Lijst met ondersteunde sstable opdrachten

Zie voor meer informatie over elke opdracht https://cassandra.apache.org/doc/latest/cassandra/tools/sstable/index.html

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

Lijst met ondersteunde nodetool opdrachten

Zie voor meer informatie over elke opdracht 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 - voor argumenten gebruiken "keyspace"="table indexname..."
  • refresh
  • refreshsizeestimates
  • reloadlocalschema
  • replaybatchlog
  • resetlocalschema
  • resumehandoff
  • ring
  • scrub
  • setcachecapacity - voor argumenten gebruiken "key-cache-capacity" = "<row-cache-capacity> <counter-cache-capacity>"
  • setcachekeystosave - voor argumenten gebruiken "key-cache-keys-to-save":"<row-cache-keys-to-save> <counter-cache-keys-to-save>"
  • setcompactionthreshold - voor argumenten gebruiken "<keyspace>"="<table> <minthreshold> <maxthreshold>
  • setcompactionthroughput
  • setconcurrentcompactors
  • sethintedhandoffthrottlekb
  • setinterdcstreamthroughput
  • setstreamthroughput
  • settimeout
  • settraceprobability
  • statusbackup
  • statusbinary
  • statusgossip
  • statushandoff
  • stop
  • tablehistograms
  • tablestats
  • toppartitions
  • tpstats
  • truncatehints
  • verify
  • version
  • viewbuildstatus

Volgende stappen