Příkazy DBA pro spravovanou instanci Azure pro Apache Cassandra

Azure Managed Instance for Apache Cassandra je plně spravovaná služba pro čistě opensourcové clustery Apache Cassandra. Služba také umožňuje přepsání konfigurací v závislosti na konkrétních potřebách jednotlivých úloh, což umožňuje maximální flexibilitu a kontrolu tam, kde je to potřeba. Tento článek popisuje, jak spustit příkazy DBA ručně, když nastane potřeba.

Důležité

Nodetool a příkazy sstable jsou ve verzi Public Preview. Tato funkce je poskytována bez smlouvy o úrovni služeb a nedoporučuje se pro produkční úlohy. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Podpora příkazů DBA

Azure Managed Instance for Apache Cassandra umožňuje spouštět nodetool a sstable příkazy prostřednictvím Azure CLI pro rutinní správu DBA. Ne všechny příkazy jsou podporované a existují určitá omezení. Podporované příkazy najdete v následujících částech.

Upozorňující

Některé z těchto příkazů mohou cluster Cassandra stabilizovat a měly by být spouštěny opatrně a po otestování v neprodukčním prostředí. Pokud je to možné, --dry-run měla by se nejprve nasadit možnost. Microsoft nemůže nabídnout žádnou smlouvu SLA ani podporu problémů se spouštěním příkazů, které mění výchozí konfiguraci databáze nebo tabulky.

nodetool Spuštění příkazu

Azure Managed Instance for Apache Cassandra poskytuje následující příkaz Azure CLI pro spouštění příkazů 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"="" 

Konkrétní podpříkaz musí být v oddílu --arguments s prázdnou hodnotou. Nodetool příznaky bez hodnoty jsou ve formátu: "<flag>"="". Pokud má příznak hodnotu, je ve formuláři: "<flag>"="value".

Tady je příklad nodetool spuštění příkazu bez příznaků v tomto případě nodetool status :

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

Tady je příklad nodetool spuštění příkazu s příznakem v tomto případě 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" 

Oba vrátí json z následujícího formuláře:

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

Ve většině případů možná budete potřebovat jenom příkazOutput nebo exitCode. Tady je příklad pouze pro získání příkazuOutput:

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

sstable Spuštění příkazu

Příkazy sstable vyžadují přístup pro čtení a zápis k datovému adresáři Cassandra a k zastavení databáze Cassandra. Aby bylo možné tuto možnost přizpůsobit, je třeba zadat dva další parametry --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
    }

Jak spustit další příkazy

Příkaz cassandra-reset-password umožňuje uživateli změnit heslo pro uživatele 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>"

Důležité

Heslo je kódováno adresou URL (UTF-8), když je předáno do tohoto příkazu, což znamená, že platí následující pravidla:

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

Příkaz cassandra-reset-auth-replication umožňuje uživateli změnit schéma pro uživatele Cassandra. Názvy datacentra oddělte mezerou.

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

Důležité

Datacentra jsou při předání do tohoto příkazu kódovaná adresou URL (UTF-8), což znamená, že platí následující pravidla:

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

Příkaz sstable-tree umožňuje uživateli zobrazit jejich tabulky.

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

Příkaz sstable-delete umožňuje uživateli odstranit své sstables provedené před určitým časem.

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

Argument Datetime musí být formátovaný, jak je znázorněno výše. Můžete také přidat --dry-run="" jako argument, abyste viděli, které soubory budou odstraněny.

Seznam podporovaných sstable příkazů

Další informace o jednotlivých příkazech najdete v tématu https://cassandra.apache.org/doc/latest/cassandra/tools/sstable/index.html

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

Seznam podporovaných nodetool příkazů

Další informace o jednotlivých příkazech najdete v tématu 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 – pro použití argumentů "keyspace"="table indexname..."
  • refresh
  • refreshsizeestimates
  • reloadlocalschema
  • replaybatchlog
  • resetlocalschema
  • resumehandoff
  • ring
  • scrub
  • setcachecapacity – pro použití argumentů "key-cache-capacity" = "<row-cache-capacity> <counter-cache-capacity>"
  • setcachekeystosave – pro použití argumentů "key-cache-keys-to-save":"<row-cache-keys-to-save> <counter-cache-keys-to-save>"
  • setcompactionthreshold – pro použití argumentů "<keyspace>"="<table> <minthreshold> <maxthreshold>
  • setcompactionthroughput
  • setconcurrentcompactors
  • sethintedhandoffthrottlekb
  • setinterdcstreamthroughput
  • setstreamthroughput
  • settimeout
  • settraceprobability
  • statusbackup
  • statusbinary
  • statusgossip
  • statushandoff
  • stop
  • tablehistograms
  • tablestats
  • toppartitions
  • tpstats
  • truncatehints
  • verify
  • version
  • viewbuildstatus

Další kroky