Commandes DBA pour Azure Managed Instance pour Apache Cassandra
Azure Managed Instance pour Apache Cassandra est un service entièrement managé pour de purs clusters Apache Cassandra open source. Le service permet également de remplacer des configurations, en fonction des besoins spécifiques de chaque charge de travail, ce qui permet une flexibilité et un contrôle optimaux, le cas échéant. Cet article explique comment exécuter des commandes DBA manuellement en cas de besoin.
Important
Les commandes nodetool et sstable sont en préversion publique. Cette fonctionnalité est fournie sans contrat de niveau de service et est déconseillée pour les charges de travail de production. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.
Prise en charge des commandes DBA
L’Instance gérée Azure pour Apache Cassandra vous permet d’exécuter les commandes nodetool
et sstable
par le biais de l’interface de ligne de commande Azure, pour l’administration DBA de routine. Toutes les commandes ne sont pas prises en charge et il existe certaines limitations. Pour connaître les commandes prises en charge, consultez les sections ci-dessous.
Avertissement
Certaines de ces commandes peuvent déstabiliser le cluster Cassandra et ne doivent être exécutées qu’avec précaution et après avoir été testées dans des environnements hors production. Dans la mesure du possible, une option --dry-run
doit être déployée en premier. Microsoft ne peut proposer aucun Contrat de niveau de service ni support pour les problèmes liés à l’exécution de commandes qui modifient la configuration ou les tables de la base de données par défaut.
Comment exécuter une commande nodetool
Azure Managed Instance pour Apache Cassandra fournit la commande Azure CLI suivante pour exécuter les commandes DBA :
az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> --host <ip of data node> --command-name nodetool --arguments "<nodetool-subcommand>"="" "paramerter1"=""
La sous-commande particulière doit se trouver dans la section --arguments
avec une valeur vide. Les indicateurs Nodetool
sans valeur se présentent sous la forme : "<flag>"=""
. Si l’indicateur a une valeur, il se présente sous la forme : "<flag>"="value"
.
Voici un exemple d’exécution d’une commande nodetool
sans indicateurs, dans ce cas la commande nodetool status
:
az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> --host <ip of data node> --command-name nodetool --arguments "status"=""
Voici un exemple d’exécution d’une commande nodetool
avec un indicateur, dans ce cas la commande nodetool compact
:
az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> --host <ip of data node> --command-name nodetool --arguments "compact"="" "-st"="65678794"
Les deux renvoient un JSON de la forme suivante :
{
"commandErrorOutput": "",
"commandOutput": "<result>",
"exitCode": 0
}
Dans la plupart des cas, vous n’avez peut-être besoin que de commandOutput ou exitCode. Voici un exemple pour obtenir uniquement commandeOutput :
az managed-cassandra cluster invoke-command --query "commandOutput" --resource-group $resourceGroupName --cluster-name $clusterName --host $host --command-name nodetool --arguments getstreamthroughput=""
Comment exécuter une commande sstable
Les commandes sstable
nécessitent un accès en lecture/écriture au répertoire de données Cassandra et à la base de données Cassandra à arrêter. Pour ce faire, deux paramètres supplémentaires --cassandra-stop-start true
et --readwrite true
doivent être donnés :
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
}
Comment exécuter d’autres commandes
Les commandes cassandra-reset-password
permettent aux utilisateurs de changer leur mot de passe pour l’utilisateur 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>"
Important
Le mot de passe est codé comme une URL (UTF-8) lorsqu’il est passé dans cette commande, ce qui signifie que les règles suivantes s’appliquent :
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.
Les commandes cassandra-reset-auth-replication
permettent aux utilisateurs de changer leur schéma pour l’utilisateur Cassandra. Séparez les noms de centre de données par espace.
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>"
Important
Les centres de données sont codés comme une URL (UTF-8) lorsqu’ils sont passés à cette commande, ce qui signifie que les règles suivantes s’appliquent :
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.
La commande sstable-tree
permet à un utilisateur d’afficher ses sstables.
az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> --host <ip of data node> --command-name sstable-tree
La commande sstable-delete
permet à un utilisateur de supprimer ses sstables créés avant un certain moment.
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>"
L’argument DateHeure doit être mis en forme tel qu’indiqué ci-dessous. Vous pouvez également ajouter --dry-run="" comme argument pour voir les fichiers qui sont supprimés.
Liste des commandes sstable
prises en charge
Pour plus d’informations sur chaque commande, consultez https://cassandra.apache.org/doc/latest/cassandra/tools/sstable/index.html
sstableverify
sstablescrub
sstablemetadata
sstablelevelreset
sstableutil
sstablesplit
sstablerepairedset
sstableofflinerelevel
sstableexpiredblockers
Liste des commandes nodetool
prises en charge
Pour plus d’informations sur chaque commande, consultez 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
- pour les arguments, utilisez"keyspace"="table indexname..."
refresh
refreshsizeestimates
reloadlocalschema
replaybatchlog
resetlocalschema
resumehandoff
ring
scrub
setcachecapacity
- pour les arguments, utilisez"key-cache-capacity" = "<row-cache-capacity> <counter-cache-capacity>"
setcachekeystosave
- pour les arguments, utilisez"key-cache-keys-to-save":"<row-cache-keys-to-save> <counter-cache-keys-to-save>"
setcompactionthreshold
- pour les arguments, utilisez"<keyspace>"="<table> <minthreshold> <maxthreshold>
setcompactionthroughput
setconcurrentcompactors
sethintedhandoffthrottlekb
setinterdcstreamthroughput
setstreamthroughput
settimeout
settraceprobability
statusbackup
statusbinary
statusgossip
statushandoff
stop
tablehistograms
tablestats
toppartitions
tpstats
truncatehints
verify
version
viewbuildstatus