Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 Arbeitsauslastungen. Dieses Feature ermöglicht maximale Flexibilität und Kontrolle bei Bedarf. In diesem Artikel wird beschrieben, wie Sie Datenbankadministratorbefehle (DBA) bei Bedarf manuell ausführen.
Wichtig
Die Befehle nodetool und sstable befinden sich in der Public Preview.
Diese Funktion wird ohne eine Vereinbarung über das Servicelevel (SLA) bereitgestellt. Wir empfehlen dieses Feature nicht für Produktionsworkloads. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
DBA-Befehlsunterstützung
Mit Azure Managed Instance für Apache Cassandra können Sie nodetool und sstable Befehle mithilfe der Azure CLI für die routinemäßige DBA-Verwaltung ausführen. Nicht alle Befehle werden unterstützt, und es gibt einige Einschränkungen. Unterstützte Befehle finden Sie in den folgenden Abschnitten.
Warnung
Einige dieser Befehle können den Cassandra-Cluster destabilisieren. Verwenden Sie diese Befehle nur sorgfältig und nach dem Testen in Nichtproduktionsumgebungen. Stellen Sie nach Möglichkeit zuerst eine --dry-run Option bereit. Microsoft bietet keine SLA oder Unterstützung für Probleme, die sich aus ausgeführten Befehlen ergeben, die die Standarddatenbankkonfiguration oder -tabellen ändern.
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 Unterbefehl muss im Abschnitt --arguments mit einem leeren Wert enthalten sein. Die nodetool Flags ohne Wert befinden sich im Formular <flag>"=". Wenn das Flag einen Wert aufweist, befindet es sich im Formular <flag>"="value.
In diesem Beispiel wird gezeigt, wie Sie einen nodetool Befehl ohne Kennzeichnungen ausführen. In diesem Fall ist dies der 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"=""
In diesem Beispiel wird gezeigt, wie Sie einen nodetool Befehl mit einer Kennzeichnung ausführen. In diesem Fall ist dies der 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 JSON in der folgenden Form zurück:
{
"commandErrorOutput": "",
"commandOutput": "<result>",
"exitCode": 0
}
In den meisten Fällen benötigen Sie nur commandOutput oder exitCode. In diesem Beispiel wird gezeigt, 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=""
Ausführen eines sstable-Befehls
Die sstable-Befehle erfordern Lese-/Schreibzugriff auf das Cassandra-Datenverzeichnis und die Cassandra-Datenbank, die beendet werden soll. Um diese Anforderung zu erfüllen, geben Sie die folgenden beiden Parameter an: --cassandra-stop-start true und --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
}
Ausführen anderer Befehle
Mit cassandra-reset-password dem Befehl kann ein Benutzer sein Kennwort für Cassandra ä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>"
Das Kennwort ist in diesem Befehl URL-codiert (UTF-8), was bedeutet, dass die folgenden Regeln gelten:
- Die alphanumerischen Zeichen
abisz,AbisZund0bis9bleiben unverändert. - Die Sonderzeichen
.,-,*und_bleiben identisch. - Das Leerzeichen wird in ein Pluszeichen (
+) konvertiert. - Alle anderen Zeichen sind unsicher und werden zunächst mithilfe eines Codierungsschemas in ein oder mehrere Bytes konvertiert. Die dreistellige Zeichenfolge
%xystellt jedes Byte dar, wobeixyes sich um die zweistellige hexadezimale Darstellung des Byte handelt.
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>"
Die Rechenzentren sind URL-codiert (UTF-8), wenn sie an diesen Befehl übergeben werden. Dies bedeutet, dass die folgenden Regeln gelten:
- Die alphanumerischen Zeichen
abisz,AbisZ, und0bis9bleiben unverändert. - Die Sonderzeichen
.,-,*und_bleiben identisch. - Das Leerzeichen wird in ein Pluszeichen (
+) konvertiert. - Alle anderen Zeichen sind unsicher und werden zunächst mithilfe eines Codierungsschemas in ein oder mehrere Bytes konvertiert. Die dreistellige Zeichenfolge
%xystellt jedes Byte dar, wobeixyes sich um die zweistellige hexadezimale Darstellung des Byte handelt.
Der Befehl sstable-tree ermöglicht es einem Benutzer, seine SSTables zu sehen.
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 kann ein Benutzer seine SSTables löschen, die vor einem bestimmten Zeitpunkt erstellt wurden.
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>"
Das datetime Argument muss wie im Beispiel dargestellt formatiert werden. Sie können auch als Argument hinzufügen --dry-run="" , um zu sehen, welche Dateien der Befehl löscht.
Liste der unterstützten sstable-Befehle
Weitere Informationen zu den einzelnen Befehlen finden Sie unter SSTable-Tools.
sstableverifysstablescrubsstablemetadatasstablelevelresetsstableutilsstablesplitsstablerepairedsetsstableofflinerelevelsstableexpiredblockers
Liste der unterstützten Nodetool-Befehle
Weitere Informationen zu den einzelnen Befehlen finden Sie unter "Verwenden von nodetool".
statuscleanupclearsnapshotcompactcompactionhistorycompactionstatsdescribeclusterdescriberingdisableautocompactiondisablehandoffdisablehintsfordcdrainenableautocompactionenablehandoffenablehintsfordcfailuredetectorflushgarbagecollectgcstatsgetcompactionthresholdgetcompactionthroughputgetconcurrentcompactorsgetendpointsgetinterdcstreamthroughputgetlogginglevelsgetsstablesgetstreamthroughputgettimeoutgettraceprobabilitygossipinfoinfoinvalidatecountercacheinvalidatekeycacheinvalidaterowcachelistsnapshotsnetstatspausehandoffproxyhistogramsrangekeysamplerebuildrebuild_index: Verwenden Sie"keyspace"="table indexname..."für Argumente .refreshrefreshsizeestimatesreloadlocalschemareplaybatchlogresetlocalschemaresumehandoffringscrubsetcachecapacity: Verwenden Sie"key-cache-capacity" = "<row-cache-capacity> <counter-cache-capacity>"für Argumente .setcachekeystosave: Verwenden Sie"key-cache-keys-to-save":"<row-cache-keys-to-save> <counter-cache-keys-to-save>"für Argumente .setcompactionthreshold: Verwenden Sie"<keyspace>"="<table> <minthreshold> <maxthreshold>für Argumente .setcompactionthroughputsetconcurrentcompactorssethintedhandoffthrottlekbsetinterdcstreamthroughputsetstreamthroughputsettimeoutsettraceprobabilitystatusbackupstatusbinarystatusgossipstatushandoffstoptablehistogramstablestatstoppartitionstpstatstruncatehintsverifyversionviewbuildstatus