Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Управляемый экземпляр для Apache Cassandra — это полностью управляемая служба для чистых кластеров Apache Cassandra с открытым кодом. Служба также позволяет переопределить конфигурации в зависимости от конкретных потребностей каждой рабочей нагрузки. Эта функция обеспечивает максимальную гибкость и контроль, где это необходимо. В этой статье описывается, как запускать команды администратора базы данных (DBA) вручную при необходимости.
Внимание
Команды nodetool и sstable находятся в общедоступном предварительном просмотре.
Эта функция предоставляется без соглашения об уровне обслуживания (SLA). Мы не рекомендуем использовать эту возможность для производственных рабочих нагрузок. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
Поддержка команд DBA
С помощью Управляемого экземпляра Azure для Apache Cassandra можно выполнять команды nodetool и sstable с помощью 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>"
Пароль закодирован (UTF-8) в этой команде, что означает, что применяются следующие правила:
- Буквенно-цифровые символы
aчерезz,AчерезZ, и0через9остаются неизменными. - Специальные символы
.,-*и_остаются неизменными. - Символ пробела преобразуется в знак плюса (
+). - Все остальные символы небезопасны и сначала преобразуются в одну или несколько байт с помощью некоторой схемы кодирования. Строка
%xyс тремя символами представляет каждый байт, гдеxyпредставляет собой шестнадцатеричное двухзначное представление байта.
Эта 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) при передаче в эту команду, что означает, что применяются следующие правила:
- Буквенно-цифровые символы с
aпоz, сAпоZи с0по9остаются одинаковыми. - Специальные символы
.,-*и_остаются неизменными. - Символ пробела преобразуется в знак плюса (
+). - Все остальные символы небезопасны и сначала преобразуются в одну или несколько байт с помощью некоторой схемы кодирования. Строка
%xyс тремя символами представляет каждый байт, гдеxyпредставляет собой шестнадцатеричное двухзначное представление байта.
Команда sstable-tree позволяет пользователю просматривать свои SSTables.
az managed-cassandra cluster invoke-command --resource-group <rg> --cluster-name <cluster> \
--host <ip of data node> --command-name sstable-tree
Команда sstable-delete позволяет пользователю удалять SSTables, созданные до определенного времени.
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
Дополнительные сведения о каждой команде см. в средствах SSTable.
sstableverifysstablescrubsstablemetadatasstablelevelresetsstableutilsstablesplitsstablerepairedsetsstableofflinerelevelsstableexpiredblockers
Список поддерживаемых команд nodetool
Дополнительные сведения о каждой команде см. в разделе "Использование nodetool".
statuscleanupclearsnapshotcompactcompactionhistorycompactionstatsdescribeclusterdescriberingdisableautocompactiondisablehandoffdisablehintsfordcdrainenableautocompactionenablehandoffenablehintsfordcfailuredetectorflushgarbagecollectgcstatsgetcompactionthresholdgetcompactionthroughputgetconcurrentcompactorsgetendpointsgetinterdcstreamthroughputgetlogginglevelsgetsstablesgetstreamthroughputgettimeoutgettraceprobabilitygossipinfoinfoinvalidatecountercacheinvalidatekeycacheinvalidaterowcachelistsnapshotsnetstatspausehandoffproxyhistogramsrangekeysamplerebuild-
rebuild_index: для аргументов используйте"keyspace"="table indexname...". refreshrefreshsizeestimatesreloadlocalschemareplaybatchlogresetlocalschemaresumehandoffringscrub-
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>. setcompactionthroughputsetconcurrentcompactorssethintedhandoffthrottlekbsetinterdcstreamthroughputsetstreamthroughputsettimeoutsettraceprobabilitystatusbackupstatusbinarystatusgossipstatushandoffstoptablehistogramstablestatstoppartitionstpstatstruncatehintsverifyversionviewbuildstatus