Share via


DBA-Befehle für Azure Managed Instance for Apache Cassandra

Azure Managed Instance for Apache Cassandra ist ein vollständig verwalteter Service für reine Open-Source Apache Cassandra-Cluster. Der Dienst ermöglicht auch das Überschreiben von Konfigurationen, je nach den spezifischen Anforderungen der einzelnen Workloads, und bietet so ein Höchstmaß an Flexibilität und Kontrolle, wo dies erforderlich ist. In diesem Artikel wird beschrieben, wie DBA-Befehle bei Bedarf manuell ausgeführt werden.

Wichtig

Nodetool- und sstable-Befehle befinden sich in der öffentlichen Vorschauphase. Dieses Feature wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

DBA-Befehlsunterstützung

Azure Managed Instance for Apache Cassandra ermöglicht Ihnen das Ausführen von nodetool- und sstable-Befehlen über die Azure CLI für die routinemäßige DBA-Verwaltung. Nicht alle Befehle werden unterstützt, und es gibt einige Einschränkungen. Informationen zu den unterstützten Befehlen finden Sie in den folgenden Abschnitten.

Warnung

Einige dieser Befehle können den Cassandra-Cluster destabilisieren und sollten in Nicht-Produktionsumgebungen nur mit Sorgfalt und nach dem Testen ausgeführt werden. Nach Möglichkeit sollte zuerst eine Option vom Typ --dry-run bereitgestellt werden. Microsoft kann keine SLA oder Unterstützung bei Problemen mit der Ausführung von Befehlen anbieten, die die Standardkonfiguration der Datenbank und/oder Tabellen ändern.

Vorgehensweise: Ausführen eines nodetool-Befehls

Azure Managed Instance for Apache Cassandra bietet den folgenden Azure CLI-Befehl zum Ausführen von DBA-Befehlen:

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

Der entsprechende Unterbefehl muss sich im Abschnitt --arguments mit einem leeren Wert befinden. Nodetool-Flags ohne Wert haben das Format "<flag>"="". Wenn das Flag über einen Wert verfügt, hat es das folgende Format: "<flag>"="value".

Hier sehen Sie ein Beispiel für die Ausführung eines nodetool-Befehls ohne Flags. In diesem Fall handelt es sich um den nodetool status-Befehl:

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

Hier sehen Sie ein Beispiel für die Ausführung eines nodetool-Befehls mit einem Flag. In diesem Fall handelt es sich um den nodetool compact-Befehl:

    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 geben einen JSON-Code im folgenden Format zurück:

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

In den meisten Fällen benötigen Sie nur „commandOutput“ oder „exitCode“. Hier folgt ein Beispiel dafür, wie Sie nur „commandOutput“ abrufen:

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

Vorgehensweise: Ausführen eines sstable-Befehls

Die sstable-Befehle erfordern Lese-/Schreibzugriff auf das Cassandra-Datenverzeichnis und die Cassandra-Datenbank, die beendet werden soll. Um dies zu berücksichtigen, müssen zwei zusätzliche Parameter --cassandra-stop-start true und --readwrite true angegeben werden:

    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
    }

Ausführen von anderen Befehlen

Mit dem Befehl cassandra-reset-password können Benutzer ihr Kennwort für den Cassandra-Benutzer ändern.

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

Wichtig

Das Kennwort ist URL-kodiert (UTF-8), wenn es an diesen Befehl übergeben wird, d.h. es gelten die folgenden Regeln:

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

Mit dem Befehl cassandra-reset-auth-replication können Benutzer ihr Schema für den Cassandra-Benutzer ändern. Trennen Sie die Namen von Rechenzentren mit Leerzeichen.

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

Wichtig

Die Rechenzentren sind URL-kodiert (UTF-8), wenn sie an diesen Befehl übergeben werden, d.h. es gelten die folgenden Regeln:

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

Mit dem Befehl sstable-tree können Benutzer ihre sstables anzeigen.

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

Mit dem Befehl sstable-delete können Benutzer ihre vor einem bestimmten Zeitpunkt erstellten sstables löschen.

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

Ein datetime-Argument muss wie oben dargestellt formatiert werden. Sie können auch „--dry-run=""“ als Argument hinzufügen, um zu sehen, welche Dateien gelöscht werden.

Liste unterstützter sstable-Befehle

Weitere Informationen zu den einzelnen Befehlen finden Sie unter https://cassandra.apache.org/doc/latest/cassandra/tools/sstable/index.html.

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

Liste unterstützter nodetool-Befehle

Weitere Informationen zu den einzelnen Befehlen finden Sie unter 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: Verwenden Sie für Argumente "keyspace"="table indexname...".
  • refresh
  • refreshsizeestimates
  • reloadlocalschema
  • replaybatchlog
  • resetlocalschema
  • resumehandoff
  • ring
  • scrub
  • setcachecapacity: Verwenden Sie für Argumente "key-cache-capacity" = "<row-cache-capacity> <counter-cache-capacity>".
  • setcachekeystosave: Verwenden Sie für Argumente "key-cache-keys-to-save":"<row-cache-keys-to-save> <counter-cache-keys-to-save>".
  • setcompactionthreshold: Verwenden Sie für Argumente "<keyspace>"="<table> <minthreshold> <maxthreshold>.
  • setcompactionthroughput
  • setconcurrentcompactors
  • sethintedhandoffthrottlekb
  • setinterdcstreamthroughput
  • setstreamthroughput
  • settimeout
  • settraceprobability
  • statusbackup
  • statusbinary
  • statusgossip
  • statushandoff
  • stop
  • tablehistograms
  • tablestats
  • toppartitions
  • tpstats
  • truncatehints
  • verify
  • version
  • viewbuildstatus

Nächste Schritte