Compartir a través de


Comandos DBA para Azure Managed Instance for Apache Cassandra

Azure Managed Instance for 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 de administrador de bases de datos (DBA) manualmente cuando sea necesario.

Importante

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

Esta característica se proporciona sin un acuerdo de nivel de servicio (SLA). 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

Con las instancias administradas de Azure para Apache Cassandra, puede ejecutar los comandos nodetool y sstable utilizando la CLI de Azure para la administración rutinaria de bases de datos. 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. Use 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 que surgen de la ejecución de comandos que modifican la configuración o las tablas predeterminadas de la base de datos.

Ejecución de 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. Las nodetool marcas sin un valor tienen el formato <flag>"=". Si la marca tiene un valor, tiene el formato <flag>"="value.

En este ejemplo se muestra cómo ejecutar un nodetool comando sin marcas. En este caso, es el nodetool status comando :

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

En este ejemplo se muestra cómo ejecutar un nodetool comando con una bandera. En este caso, es el nodetool compact comando :

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 JSON de la siguiente forma:

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

En la mayoría de los casos, solo necesita commandOutput o exitCode. En este ejemplo se muestra cómo obtener solo commandOutput:

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

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

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

  • Los caracteres alfanuméricos de a a z, de A a Z y de 0 a 9 permanecen iguales.
  • Los caracteres .especiales , -, *y _ siguen siendo los mismos.
  • El carácter de espacio se convierte en un signo más (+).
  • Todos los demás caracteres no son seguros y se convierten primero en uno o varios bytes mediante algún esquema de codificación. La cadena %xy de tres caracteres representa cada byte, donde xy es la representación hexadecimal de dos dígitos del 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>"

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:

  • Los caracteres alfanuméricos de a a z, de A a Z, y de 0 a 9 permanecen iguales.
  • Los caracteres .especiales , -, *y _ siguen siendo los mismos.
  • El carácter de espacio se convierte en un signo más (+) (+).
  • Todos los demás caracteres no son seguros y se convierten primero en uno o varios bytes mediante algún esquema de codificación. La cadena %xy de tres caracteres representa cada byte, donde xy es la representación hexadecimal de dos dígitos del byte.

El sstable-tree comando permite al usuario ver sus SSTables.

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 a un usuario eliminar sus SSTables que fueron creadas antes de un momento específico.

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 los argumentos, use "keyspace"="table indexname...".
  • refresh
  • refreshsizeestimates
  • reloadlocalschema
  • replaybatchlog
  • resetlocalschema
  • resumehandoff
  • ring
  • scrub
  • setcachecapacity: para los argumentos, use "key-cache-capacity" = "<row-cache-capacity> <counter-cache-capacity>".
  • setcachekeystosave: para los argumentos, use "key-cache-keys-to-save":"<row-cache-keys-to-save> <counter-cache-keys-to-save>".
  • setcompactionthreshold: para los argumentos, use "<keyspace>"="<table> <minthreshold> <maxthreshold>.
  • setcompactionthroughput
  • setconcurrentcompactors
  • sethintedhandoffthrottlekb
  • setinterdcstreamthroughput
  • setstreamthroughput
  • settimeout
  • settraceprobability
  • statusbackup
  • statusbinary
  • statusgossip
  • statushandoff
  • stop
  • tablehistograms
  • tablestats
  • toppartitions
  • tpstats
  • truncatehints
  • verify
  • version
  • viewbuildstatus