你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 Azure Managed Instance for Apache Cassandra 的 DBA 命令
Azure Managed Instance for Apache Cassandra 是针对纯开源 Apache Cassandra 群集的完全托管服务。 该服务还允许根据每个工作负载的具体需求来替代配置,从而在需要时实现最大的灵活性和控制。 本文介绍了如何在需要时手动运行 DBA 命令。
重要
Nodetool 和 sstable 命令处于公共预览状态。 此功能不附带服务级别协议,不建议将其用于生产工作负载。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。
DBA 命令支持
借助 Azure Managed Instance for Apache Cassandra,可以通过 Azure CLI 运行 nodetool
和 sstable
命令以进行常规 DBA 管理。 并非所有命令都受支持,存在一些限制。 有关受支持的命令,请参阅以下各部分。
警告
其中的某些命令可能会导致 cassandra 群集不稳定,只应在非生产环境中仔细运行和测试。 如果可以,应首先部署 --dry-run
选项。 对于更改默认数据库配置和/或表的运行命令出现的问题,Microsoft 无法提供任何 SLA 或支持。
如何运行 nodetool
命令
Azure Managed Instance for 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
命令允许用户查看其 sstable。
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>"
日期/时间参数的格式必须如上所示。 还可以添加 --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