Compartir a través de


Comandos DBA para Azure Managed Instance for Apache Cassandra

Azure Managed Instance para Apache Cassandra es un servicio totalmente administrado para clústeres de Apache Cassandra de código abierto puros. El servicio también permite invalidar las configuraciones, en función de las necesidades específicas de cada carga de trabajo. Esta característica permite la máxima flexibilidad y control cuando sea necesario. En este artículo se describe cómo ejecutar comandos DBA manualmente cuando surge la necesidad.

Importante

Nodetool y sstable comandos están en versión preliminar pública.

Esta característica se proporciona sin un Acuerdo de Nivel de Servicio. No se recomienda esta característica para cargas de trabajo de producción. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

Compatibilidad con comandos DBA

Azure Managed Instance de Apache Cassandra permite ejecutar comandos nodetool y sstable mediante Azure CLI para la administración rutinaria de DBA. No se admiten todos los comandos y hay algunas limitaciones. Para ver los comandos admitidos, consulte las secciones siguientes.

Advertencia

Algunos de estos comandos pueden desestabilizar el clúster de Cassandra. Solo debe usar estos comandos cuidadosamente y después de realizar pruebas en entornos que no sean de producción. Siempre que sea posible, implemente primero una --dry-run opción. Microsoft no ofrece ningún Acuerdo de Nivel de Servicio ni compatibilidad con problemas con la ejecución de comandos que modifican la configuración predeterminada de la base de datos o las tablas.

Procedimiento para ejecutar un comando nodetool

Azure Managed Instance for Apache Cassandra proporciona el siguiente comando de CLI de Azure para ejecutar comandos 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"="" 

El subcomando debe estar en la --arguments sección con un valor vacío. Nodetool las marcas sin valor tienen el formato: "<flag>"="". Si la marca tiene un valor, tiene el formato : "<flag>"="value".

Este es un ejemplo de cómo ejecutar un comando nodetool sin marcas, en este caso el comando nodetool status:

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

Este es un ejemplo de cómo ejecutar un comando nodetool sin marcas, en este caso el comando 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" 

Ambos devuelven un json de la forma siguiente:

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

En la mayoría de los casos, solo necesita el commandOutput o el exitCode. Este es un ejemplo para obtener solo : commandOutput

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

Procedimiento para ejecutar un comando sstable

Los comandos sstable requieren acceso de lectura y escritura al directorio de datos de Cassandra y a la base de datos de Cassandra que se va a detener. Para dar cabida a este requisito, especifique estos dos parámetros: --cassandra-stop-start true y --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
}

Ejecución de otros comandos

El comando cassandra-reset-password permite al usuario cambiar su contraseña para el usuario de 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>"

Importante

La contraseña tiene codificación URL (UTF-8) en este comando, lo que significa que se aplican las reglas siguientes:

  • 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.

El comando cassandra-reset-auth-replication permite al usuario cambiar su esquema para el usuario de Cassandra. Separe los nombres del centro de datos por espacio.

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

Importante

Los centros de datos tienen codificación URL (UTF-8) cuando se pasan a este comando, lo que significa que se aplican las reglas siguientes:

  • 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.

El comando sstable-tree permite a un usuario ver sus inestables.

az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> \
  --host <ip of data node> --command-name sstable-tree

El comando sstable-delete permite que un usuario elimine sus inestables realizados antes de un tiempo determinado.

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

El datetime argumento debe tener el formato tal como se muestra en el ejemplo. También puede agregar --dry-run="" como argumento para ver qué archivos elimina el comando.

Lista de comandos sstable admitidos

Para obtener más información sobre cada comando, consulte Herramientas de SSTable.

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

Lista de comandos nodetool admitidos

Para obtener más información sobre cada comando, vea Usar 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 - para el uso de argumentos "keyspace"="table indexname..."
  • refresh
  • refreshsizeestimates
  • reloadlocalschema
  • replaybatchlog
  • resetlocalschema
  • resumehandoff
  • ring
  • scrub
  • setcachecapacity - para el uso de argumentos "key-cache-capacity" = "<row-cache-capacity> <counter-cache-capacity>"
  • setcachekeystosave - para el uso de argumentos "key-cache-keys-to-save":"<row-cache-keys-to-save> <counter-cache-keys-to-save>"
  • setcompactionthreshold - para el uso de argumentos "<keyspace>"="<table> <minthreshold> <maxthreshold>
  • setcompactionthroughput
  • setconcurrentcompactors
  • sethintedhandoffthrottlekb
  • setinterdcstreamthroughput
  • setstreamthroughput
  • settimeout
  • settraceprobability
  • statusbackup
  • statusbinary
  • statusgossip
  • statushandoff
  • stop
  • tablehistograms
  • tablestats
  • toppartitions
  • tpstats
  • truncatehints
  • verify
  • version
  • viewbuildstatus

Pasos siguientes