Partager via


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

Étapes suivantes