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