Partager via


Commandes DBA pour Azure Managed Instance pour Apache Cassandra

Azure Managed Instance pour Apache Cassandra est un service complètement managé pour les clusters Apache Cassandra open source purs. Le service permet également aux configurations d’être remplacées, en fonction des besoins spécifiques de chaque charge de travail. Cette fonctionnalité permet une flexibilité et un contrôle maximals si nécessaire. Cet article explique comment exécuter manuellement des commandes d’administrateur de base de données (DBA) si nécessaire.

Important

Les commandes nodetool et sstable sont en préversion publique.

Cette fonctionnalité est fournie sans contrat de niveau de service (SLA). Nous vous déconseillons cette fonctionnalité 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

Avec Azure Managed Instance pour Apache Cassandra, vous pouvez exécuter nodetool et sstable commandes à l’aide d’Azure CLI pour l’administration de base de données courante. Toutes les commandes ne sont pas prises en charge et certaines limitations sont présentes. Pour connaître les commandes prises en charge, consultez les sections suivantes.

Avertissement

Certaines de ces commandes peuvent déstabiliser le cluster Cassandra. Utilisez uniquement ces commandes avec soin et après les tests dans des environnements hors production. Si possible, déployez d’abord une --dry-run option. Microsoft n’offre pas de contrat SLA ou de prise en charge sur les problèmes liés à l’exécution de commandes qui modifient la configuration ou les tables de base de données par défaut.

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 doit se trouver dans la --arguments section avec une valeur vide. Les nodetool indicateurs sans valeur sont au format <flag>"=". Si l’indicateur a une valeur, il est au format <flag>"="value.

Cet exemple montre comment exécuter une nodetool commande sans indicateurs. Dans ce cas, il s’agit de la nodetool status commande :

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

Cet exemple montre comment exécuter une nodetool commande avec un indicateur. Dans ce cas, il s’agit de la nodetool compact commande :

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 retournent JSON sous la forme suivante :

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

Dans la plupart des cas, vous n’avez besoin que commandOutput ou exitCode. Cet exemple montre comment obtenir uniquement commandOutput:

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

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 répondre à cette exigence, spécifiez ces deux paramètres : --cassandra-stop-start true et --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
}

Exécuter d’autres commandes

La cassandra-reset-password commande permet à un utilisateur de modifier son mot de passe pour 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>"

Le mot de passe est codé en URL (UTF-8) dans cette commande, ce qui signifie que les règles suivantes s’appliquent :

  • Les caractères a alphanumériques à travers z, A à travers Zet 0 à travers 9 restent les mêmes.
  • Les caractères .spéciaux , -, *et _ restent les mêmes.
  • Le caractère d’espace est converti en signe plus (+).
  • Tous les autres caractères sont non sécurisés et sont d’abord convertis en un ou plusieurs octets à l’aide d’un schéma d’encodage. La chaîne %xy à trois caractères représente chaque octet, où xy est la représentation hexadécimale à deux chiffres de l’octet.

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

Les centres de données sont codés en URL (UTF-8) lorsqu’ils sont passés à cette commande, ce qui signifie que les règles suivantes s’appliquent :

  • Les caractères a alphanumériques à travers z, A à travers Zet 0 à travers 9 restent les mêmes.
  • Les caractères .spéciaux , -, *et _ restent les mêmes.
  • Le caractère d’espace est converti en signe plus (+).
  • Tous les autres caractères sont non sécurisés et sont d’abord convertis en un ou plusieurs octets à l’aide d’un schéma d’encodage. La chaîne %xy à trois caractères représente chaque octet, où xy est la représentation hexadécimale à deux chiffres de l’octet.

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éées 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 datetime doit être mis en forme comme indiqué dans l’exemple. Vous pouvez également ajouter --dry-run="" en tant qu’argument pour voir quels fichiers la commande supprime.

Liste des commandes sstable prises en charge

Pour plus d’informations sur chaque commande, consultez les outils SSTable.

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

Liste des commandes nodetool prises en charge

Pour plus d’informations sur chaque commande, consultez Utiliser nodetool.

  • 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