Команды 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

Следующие шаги