Команды DBA для Azure Управляемый экземпляр для Apache Cassandra
Azure Управляемый экземпляр для Apache Cassandra — это полностью управляемая служба для чистых кластеров Apache Cassandra с открытым кодом. Служба также позволяет переопределить конфигурации в зависимости от конкретных потребностей каждой рабочей нагрузки, что позволяет обеспечить максимальную гибкость и контроль при необходимости. В этой статье описывается, как вручную запускать команды DBA при возникновении необходимости.
Внимание
Команды Nodetool и sstable находятся в общедоступной предварительной версии. Эта функция предоставляется без соглашения об уровне обслуживания и не рекомендуется для использования в рабочей среде. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
Поддержка команд DBA
Azure Управляемый экземпляр для Apache Cassandra позволяет выполнять и sstable
выполнять nodetool
команды с помощью Azure CLI для обычного администрирования DBA. Не все команды поддерживаются и существуют некоторые ограничения. Поддерживаемые команды см. в разделах ниже.
Предупреждение
Некоторые из этих команд могут дестабилизировать кластер cassandra и выполняться тщательно и после тестирования в непроизводственных средах. Когда это возможно --dry-run
, сначала следует развернуть. Корпорация Майкрософт не может предлагать соглашение об уровне обслуживания или поддержку при выполнении команд, которые изменяют конфигурацию базы данных по умолчанию и (или) таблицы.
Выполнение nodetool
команды
Azure Управляемый экземпляр для Apache Cassandra предоставляет следующую команду Azure CLI для выполнения команд 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"=""
Конкретная подкоманда должна находиться в --arguments
разделе с пустым значением. Nodetool
флаги без значения находятся в форме: "<flag>"=""
Если флаг имеет значение, он находится в форме: "<flag>"="value"
Ниже приведен пример выполнения nodetool
команды без флагов. В этом случае nodetool status
команда:
az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> --host <ip of data node> --command-name nodetool --arguments "status"=""
Ниже приведен пример выполнения nodetool
команды с флагом в данном случае 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"
Оба возвращают json следующей формы:
{
"commandErrorOutput": "",
"commandOutput": "<result>",
"exitCode": 0
}
В большинстве случаев может потребоваться только commandOutput или exitCode. Ниже приведен пример для получения только команды CommandOutput:
az managed-cassandra cluster invoke-command --query "commandOutput" --resource-group $resourceGroupName --cluster-name $clusterName --host $host --command-name nodetool --arguments getstreamthroughput=""
Выполнение sstable
команды
Для sstable
команд требуется доступ на чтение и запись к каталогу данных Cassandra и базе данных Cassandra. Для этого необходимо указать два дополнительных параметра--cassandra-stop-start true
:--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
}
Выполнение других команд
Эта cassandra-reset-password
команда позволяет пользователю изменить пароль для пользователя 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>"
Внимание
Пароль закодирован url-адресом (UTF-8), когда он передается в эту команду, то есть применяются следующие правила:
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.
Эта cassandra-reset-auth-replication
команда позволяет пользователю изменять схему для пользователя Cassandra. Разделите имена центров обработки данных по пробелам.
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>"
Внимание
Центры обработки данных кодируются URL-адресом (UTF-8) при передаче в эту команду, то есть применяются следующие правила:
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.
Команда sstable-tree
позволяет пользователю видеть свои метки.
az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> --host <ip of data node> --command-name sstable-tree
Эта sstable-delete
команда позволяет пользователю удалять свои метки до определенного времени.
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>"
Аргумент Datetime должен быть отформатирован, как показано выше. Вы также можете добавить --dry-run="" в качестве аргумента, чтобы увидеть, какие файлы будут удалены.
Список поддерживаемых sstable
команд
Дополнительные сведения о каждой команде см. в разделе https://cassandra.apache.org/doc/latest/cassandra/tools/sstable/index.html
sstableverify
sstablescrub
sstablemetadata
sstablelevelreset
sstableutil
sstablesplit
sstablerepairedset
sstableofflinerelevel
sstableexpiredblockers
Список поддерживаемых nodetool
команд
Дополнительные сведения о каждой команде см. в разделе 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
— для аргументов, используемых"keyspace"="table indexname..."
refresh
refreshsizeestimates
reloadlocalschema
replaybatchlog
resetlocalschema
resumehandoff
ring
scrub
setcachecapacity
— для аргументов, используемых"key-cache-capacity" = "<row-cache-capacity> <counter-cache-capacity>"
setcachekeystosave
— для аргументов, используемых"key-cache-keys-to-save":"<row-cache-keys-to-save> <counter-cache-keys-to-save>"
setcompactionthreshold
— для аргументов, используемых"<keyspace>"="<table> <minthreshold> <maxthreshold>
setcompactionthroughput
setconcurrentcompactors
sethintedhandoffthrottlekb
setinterdcstreamthroughput
setstreamthroughput
settimeout
settraceprobability
statusbackup
statusbinary
statusgossip
statushandoff
stop
tablehistograms
tablestats
toppartitions
tpstats
truncatehints
verify
version
viewbuildstatus