Aracılığıyla paylaş


Apache Cassandra için Azure Yönetilen Örneği için DBA komutları

Apache Cassandra için Azure Yönetilen Örneği, saf açık kaynak Apache Cassandra kümeleri için tam olarak yönetilen bir hizmettir. Hizmet, her iş yükünün belirli ihtiyaçlarına bağlı olarak yapılandırmaların geçersiz kılınmasına da olanak tanır. Bu özellik gerektiğinde maksimum esneklik ve denetim sağlar. Bu makalede, gerektiğinde veritabanı yöneticisi (DBA) komutlarının el ile nasıl çalıştırıldığı açıklanmaktadır.

Önemli

nodetool ve sstable komutları genel önizleme aşamasındadır.

Bu özellik, hizmet düzeyi sözleşmesi (SLA) olmadan sağlanır. Bu özelliği üretim iş yükleri için önermiyoruz. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.

DBA komut desteği

Apache Cassandra için Azure Yönetilen Örneği ile, rutin DBA yönetimi için Azure CLI'yı kullanarak nodetool ve sstable komutlarını çalıştırabilirsiniz. Tüm komutlar desteklenmez ve bazı sınırlamalar vardır. Desteklenen komutlar için aşağıdaki bölümlere bakın.

Uyarı

Bu komutlardan bazıları Cassandra kümesinin istikrarını bozabilir. Bu komutları yalnızca üretim dışı ortamlarda test ettikten sonra dikkatli bir şekilde kullanın. Mümkünse, önce bir --dry-run seçenek dağıtın. Microsoft, varsayılan veritabanı yapılandırmasını veya tablolarını değiştiren çalıştırma komutlarından kaynaklanan sorunlarda SLA veya destek sunmaz.

Nodetool komutu çalıştırma

Apache Cassandra için Azure Yönetilen Örneği, DBA komutlarını çalıştırmak için aşağıdaki Azure CLI komutunu sağlar:

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

Alt komutun boş bir değerle --arguments bölümünde olması gerekir. Değeri nodetool olmayan bayraklar biçimindedir <flag>"=". Bayrağın bir değeri varsa, biçimindedir <flag>"="value.

Bu örnekte, bayraklar olmadan bir nodetool komutun nasıl çalıştırılma işlemi gösterilmektedir. Bu durumda, komut şu şekildedir nodetool status :

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

Bu örnek, bayrağı ile bir nodetool komutunun nasıl çalıştırılacağını göstermektedir. Bu durumda, komut şu şekildedir 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" 

Her ikisi de aşağıdaki formda JSON döndürür:

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

Çoğu durumda yalnızca commandOutput veya exitCodegerekir. Bu örnekte yalnızca commandOutputalma yöntemi gösterilmektedir:

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

Sstable komutu çalıştırma

Komutlar sstable Cassandra veri dizinine ve Cassandra veritabanına okuma/yazma erişiminin durdurulmasını gerektirir. Bu gereksinimi karşılamak için şu iki parametreyi belirtin: --cassandra-stop-start true ve --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
}

Diğer komutları çalıştırma

komutu cassandra-reset-password kullanıcının Cassandra parolasını değiştirmesine olanak tanır.

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

Parola, bu komutta URL ile kodlanmış (UTF-8) olduğundan aşağıdaki kurallar geçerlidir:

  • Alfasayısal karakterler a ile z, A ile Z, ve 0 ile 9 arasında aynı kalır.
  • Özel karakterler ., -, * ve _ aynı kalır.
  • Boşluk karakteri artı işaretine (+ ) dönüştürülür.
  • Diğer tüm karakterler güvenli değildir ve önce bazı kodlama düzenleri kullanılarak bir veya daha fazla bayta dönüştürülür. Üç karakterli string %xy, her baytı temsil etmektedir; burada xy, baytın iki basamaklı onaltılık ifadesidir.

komutu cassandra-reset-auth-replication , kullanıcının Cassandra kullanıcısının şemasını değiştirmesine olanak tanır. Veri merkezi adlarını alana göre ayırın.

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

Veri merkezleri, bu komuta geçirildiğinde URL kodlanmış (UTF-8) olur ve bu da aşağıdaki kuralların geçerli olduğu anlamına gelir:

  • Karakterler a ile z arası, A ile Z arası ve 0 ile 9 arası alfasayısal olarak aynı kalır.
  • Özel karakterler ., -, * ve _ aynı kalır.
  • Boşluk karakteri artı işaretine (+ ) dönüştürülür.
  • Diğer tüm karakterler güvenli değildir ve önce bazı kodlama düzenleri kullanılarak bir veya daha fazla bayta dönüştürülür. Üç karakterli dizin %xy her baytı temsil eder, burada xy baytın iki basamaklı onaltılık gösterimini temsil eder.

komutu sstable-tree , kullanıcının SSTable'larını görmesini sağlar.

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

komutu sstable-delete , kullanıcının belirli bir süreden önce yapılmış olan SSTable'larını silmesini sağlar.

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 argümanı, örnekte gösterildiği gibi biçimlendirilmelidir. Komutun hangi dosyaları sildiğine bakmak için bağımsız değişken olarak da ekleyebilirsiniz --dry-run="" .

Desteklenen sstable komutlarının listesi

Her komut hakkında daha fazla bilgi için bkz. SSTable araçları.

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

Desteklenen nodetool komutlarının listesi

Her komut hakkında daha fazla bilgi için bkz. Nodetool kullanma.

  • 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: Bağımsız değişkenler için kullanın "keyspace"="table indexname...".
  • refresh
  • refreshsizeestimates
  • reloadlocalschema
  • replaybatchlog
  • resetlocalschema
  • resumehandoff
  • ring
  • scrub
  • setcachecapacity: Bağımsız değişkenler için "key-cache-capacity" = "<row-cache-capacity> <counter-cache-capacity>" kullanın.
  • setcachekeystosave: Parametre olarak "key-cache-keys-to-save":"<row-cache-keys-to-save> <counter-cache-keys-to-save>" kullanın.
  • setcompactionthreshold: "<keyspace>"="<table> <minthreshold> <maxthreshold> kullanarak bağımsız değişkenleri belirtin.
  • setcompactionthroughput
  • setconcurrentcompactors
  • sethintedhandoffthrottlekb
  • setinterdcstreamthroughput
  • setstreamthroughput
  • settimeout
  • settraceprobability
  • statusbackup
  • statusbinary
  • statusgossip
  • statushandoff
  • stop
  • tablehistograms
  • tablestats
  • toppartitions
  • tpstats
  • truncatehints
  • verify
  • version
  • viewbuildstatus