Sdílet prostřednictvím


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řepis konfigurací v závislosti na konkrétních potřebách jednotlivých pracovních úloh. Tato funkce umožňuje maximální flexibilitu a kontrolu podle potřeby. Tento článek popisuje, jak v případě potřeby spouštět příkazy správce databáze (DBA).

Důležité

Příkazy nodetool a sstable jsou ve verzi Public Preview.

Tato funkce je poskytována bez smlouvy o úrovni služeb (SLA). Tuto funkci nedoporučujeme 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

Se službou Azure Managed Instance for Apache Cassandra můžete spouštět nodetool příkazy sstable pomocí 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ěcho příkazů mohou destabilizovat Cassandra cluster. Tyto příkazy používejte pečlivě a po testování v neprodukčních prostředích. Pokud je to možné, nejprve nasaďte --dry-run možnost. Microsoft nenabízí žádnou smlouvu SLA ani podporu problémů, které vznikají při spouštění příkazů, které mění výchozí konfiguraci nebo tabulky databáze.

Spuštění příkazu nodetool

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

Podpříkaz musí být v oddílu --arguments s prázdnou hodnotou. Příznaky nodetool bez hodnoty jsou ve formuláři <flag>"=". Pokud má příznak hodnotu, je ve formě <flag>"="value.

Tento příklad ukazuje, jak spustit nodetool příkaz bez příznaků. V tomto případě se jedná o nodetool status příkaz:

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

Tento příklad ukazuje, jak spustit nodetool příkaz s příznakem. V tomto případě se jedná o nodetool compact příkaz:

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 v následujícím formátu:

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

Ve většině případů potřebujete pouze commandOutput nebo exitCode. Tento příklad ukazuje, jak získat pouze commandOutput:

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

Spuštění příkazu sstable

Příkazy sstable vyžadují přístup pro čtení a zápis k datovému adresáři Cassandra a k zastavení databáze Cassandra. Chcete-li tento požadavek vyhovět, zadejte tyto dva parametry: --cassandra-stop-start true a --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
}

Spuštění dalších příkazů

Příkaz cassandra-reset-password umožňuje uživateli změnit heslo pro Cassandru.

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

Heslo je v tomto příkazu zakódované pomocí adresy URL (UTF-8), což znamená, že platí následující pravidla:

  • Alfanumerické znaky az, AZ a 09 zůstávají stejné.
  • Speciální znaky ., -, *a _ zůstávají stejné.
  • Znak mezery se převede na znaménko plus (+).
  • Všechny ostatní znaky jsou nebezpečné a nejprve se převedou na jeden nebo více bajtů pomocí některého schématu kódování. Řetězec se třemi znaky %xy představuje každý bajt, kde xy je dvouciferné šestnáctkové vyjádření bajtu.

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

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:

  • Alfanumerické znaky az, AZ a 09 zůstávají stejné.
  • Speciální znaky ., -, *a _ zůstávají stejné.
  • Znak mezery se převede na znaménko plus (+).
  • Všechny ostatní znaky jsou nebezpečné a nejprve se převedou na jeden nebo více bajtů pomocí některého schématu kódování. Řetězec se třemi znaky %xy představuje každý bajt, kde xy je dvouciferné šestnáctkové vyjádření bajtu.

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

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 SSTably, které byly vytvořeny 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 naformátovaný, jak je znázorněno v příkladu. Můžete také přidat --dry-run="" jako argument, abyste viděli, které soubory příkaz odstraní.

Seznam podporovaných příkazů sstable

Další informace o jednotlivých příkazech najdete v nástrojích SSTable.

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

Seznam podporovaných příkazů nodetool

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