# 集群命令组 OBD 有多级命令,您可以在每个层级中使用 `-h/--help` 选项查看子命令的帮助信息。同样的,当各层级的子命令执行报错时,您亦可使用 `-v/--verbose` 查看命令的详细执行过程。 OBD 集群命令操作的最小单位为一个部署配置。部署配置是一份 `yaml` 文件,里面包含各个整个部署的全部配置信息,包括服务器登录信息、组件信息、组件配置信息和组件服务器列表等。 在使用 OBD 启动一个集群之前,您需要先注册这个集群的部署配置到 OBD 中。您可以使用 `obd cluster edit-config` 创建一个空的部署配置,或使用 `obd cluster deploy -c config` 导入一个部署配置。 ## obd cluster autodeploy 使用该命令可传入一个简易的配置文件,OBD 会根据目标机器资源自动生成最大规格的完整配置并部署启动集群。 ```shell obd cluster autodeploy -c [-f] [-U] [-A] [-s] # example obd cluster autodeploy test -c all-components.yaml ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 选项说明见下表: | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |-------------------------------|------|--------|-------|---------------------------------------------------------------------------------------------------------------------------------------------------------| | -c/--config | 是 | string | 无 | 指定所需 yaml 文件的路径。OBD 使用指定的 yaml 文件部署,并将部署配置注册到 OBD 中。当 `deploy name` 存在时,会判断其状态,如果旧配置尚未部署则覆盖,否则报错。 | | -f/--force | 否 | bool | false | 开启时,强制清空工作目录(`home_path`)。当组件要求工作目录为空且不使用该选项时,工作目录不为空会返回错误。 | | -C/--clean | 否 | bool | false | 开启时,会判断工作目录(`home_path`)是否属于当前操作用户,当该目录属于当前操作用户时会清空工作目录。 | | -U/--ulp/ --unuselibrepo | 否 | bool | false | 使用该选项将禁止 OBD 自动处理依赖。不开启的情况下,OBD 将在检查到缺失依赖时搜索相关的 libs 镜像并安装。
使用该选项将会在对应的配置文件中添加 `unuse_lib_repository: true`。也可以在配置文件中使用 `unuse_lib_repository: true` 开启。 | | -A/--act/--auto-create-tenant | 否 | bool | false | 开启该选项 OBD 将会在 bootstrap 阶段使用集群全部可用资源创建一个名为 `test` 的租户。
使用该选项将会在对应的配置文件中添加 `auto_create_tenant: true`。也可以在配置文件中使用 `auto_create_tenant: true` 开启。 | | -s/--strict-check | 否 | bool | false | 部分组件在启动前会做相关的检查,当检查不通过的时候会报警告,不会强制停止流程。
使用该选项可开启检查失败报错直接退出。建议开启,可以避免一些资源不足导致的启动失败。 | ## obd cluster edit-config 修改一个部署配置,当部署配置不存在时创建。 ```shell obd cluster edit-config # example obd cluster edit-config test ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 ## obd cluster deploy 使用该命令可以根据配置部署集群。 此命令会根据部署配置文件中组件的信息查找合适的镜像,并安装到本地仓库,此过程称为本地安装。再将本地仓库中存在合适版本的组件分发给目标服务器,此过程称为远程安装。 在本地安装和远程安装时都会检查服务器是否存在组件运行所需的依赖。此命令可以直接使用 OBD 中已注册的 `deploy name` 部署,也可以通过传入 `yaml` 的配置信息。 ```shell obd cluster deploy [-c ] [-f] [-U] [-A] # example obd cluster deploy test -c all-components-min.yaml ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 选项说明见下表: | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |-------------------------------|------|--------|-------|---------------------------------------------------------------------------------------------------------------------------------------------------------| | -c/--config | 否 | string | 无 | 指定所需 yaml 文件的路径。OBD 使用指定的 yaml 文件部署,并将部署配置注册到 OBD 中。当 `deploy name` 存在时覆盖配置。
如果不使用该选项,则会根据 `deploy name` 查找已注册到 OBD 中的配置信息。 | | -f/--force | 否 | bool | false | 开启时,强制清空工作目录。当组件要求工作目录为空且不使用该选项时,工作目录不为空会返回错误。 | | -C/--clean | 否 | bool | false | 开启时,会判断工作目录(`home_path`)是否属于当前操作用户,当该目录属于当前操作用户时会清空工作目录。 | | -U/--ulp/ --unuselibrepo | 否 | bool | false | 使用该选项将禁止 OBD 自动处理依赖。不开启的情况下,OBD 将在检查到缺失依赖时搜索相关的 libs 镜像并安装。
使用该选项将会在对应的配置文件中添加 `unuse_lib_repository: true`。也可以在配置文件中使用 `unuse_lib_repository: true` 开启。 | | -A/--act/--auto-create-tenant | 否 | bool | false | 开启该选项 OBD 将会在 bootstrap 阶段使用集群全部可用资源创建一个名为 `test` 的租户。
使用该选项将会在对应的配置文件中添加 `auto_create_tenant: true`。也可以在配置文件中使用 `auto_create_tenant: true` 开启。 | ## obd cluster start 启动已部署的集群,成功时打印集群状态。 ```shell obd cluster start [flags] # example obd cluster start test -S ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 选项说明见下表: | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |---------------------------|------|--------|-------|-----------------------------------------------------------------------------------------------------| | -s/--servers | 否 | string | 空 | 机器列表,后跟 `yaml` 文件中 `servers` 对应的 `name` 值,若 `servers` 后未配置 `name` 值,则使用 `ip` 值,用 `,` 间隔。用于指定需启动的机器。如果组件下的机器没有全部启动,则 start 不会执行 bootstrap。 | | -c/--components | 否 | string | 空 | 组件列表,用 `,` 间隔。用于指定需启动的组件。如果配置下的组件没有全部启动,该配置不会进入 running 状态。 | | --wop/--without-parameter | 否 | bool | false | 无参启动。开启时将不带参数启动已部署的集群。节点第一次的启动时,不响应此选项。 | | -S/--strict-check | 否 | bool | false | 部分组件在启动前会做相关的检查。检查不通过时,OBD 将发出告警,不会强制停止流程。
使用该选项可开启检查失败报错直接退出。建议开启,可以避免一些资源不足导致的启动失败。 | ## obd cluster list 显示当前 OBD 内注册的全部集群(deploy name)的状态。 ```shell obd cluster list ``` ## obd cluster display 展示指定集群的状态。 ```shell obd cluster display # example obd cluster display test ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 ## obd cluster reload 重载一个运行中集群。当您使用 `edit-config` 修改一个运行的集群的配置信息后,可以通过 `reload` 命令应用修改。

注意

并非全部的配置项都可以通过 reload 来应用。有些配置项需要重启集群,甚至是重新部署集群才能生效。请根据 edit-config 后返回的信息进行操作。

```shell obd cluster reload # example obd cluster reload test ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 ## obd cluster restart 重启一个运行中集群。重启默认是无参重启。当您使用 edit-config 修改一个运行的集群的配置信息后,可以通过 `obd cluster restart --wp` 命令应用修改。

注意

并非所有的配置项都可以通过 restart 来应用。有些配置项需要重部署集群才能生效。请根据 edit-config 后返回的信息进行操作。

```shell obd cluster restart # example obd cluster restart test -c obproxy-ce --wp ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 选项说明见下表: | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |-----------------------|------|--------|-------|------------------------------------------------------------| | -s/--servers | 否 | string | 空 | 机器列表,后跟 `yaml` 文件中 `servers` 对应的 `name` 值,若 `servers` 后未配置 `name` 值,则使用 `ip` 值,用 `,` 间隔,用于指定需要重启的机器。 | | -c/--components | 否 | string | 空 | 组件列表,用 `,` 间隔。用于指定需要重启的组件。如果配置下的组件没有全部启动,该配置不会进入 running 状态。 | | --wp/--with-parameter | 否 | bool | false | 带参重启。用于让重启生效的配置项生效。 | ## obd cluster redeploy 重启一个运行中集群。当您使用 `edit-config` 修改一个运行的集群的配置信息后,可以通过 `redeploy` 命令应用修改。

注意

该命令会销毁集群,重新部署,您集群中的数据会丢失,请先做好备份。

```shell obd cluster redeploy [-f] # example obd cluster redeploy test -f ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 OBD 执行重启命令前会检查是否还有进程在运行中。这些运行中的进程可能是 `start` 失败留下的,也可能是因为配置与其他集群重叠,进程是其他集群的。但无论是哪个原因导致工作目录下有进程未退出,OBD 都会直接停止执行 `obd cluster redeploy` 命令。 选项 `-f` 为 `--force-kill`。作用为:检查到工作目录下有运行中的进程时,强制停止进程。使用该选项会强制停止运行中的进程,强制执行 `obd cluster redeploy`,非必填项。数据类型为 `bool`。默认不开启。 ## obd cluster stop 停止一个运行中的集群。 ```shell obd cluster stop # example obd cluster stop test -s server1 ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 选项说明见下表: | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |-----------------|------|--------|-----|---------------------------------------------------------------| | -s/--servers | 否 | string | 空 | 机器列表,后跟 `yaml` 文件中 `servers` 对应的 `name` 值,若 `servers` 后未配置 `name` 值,则使用 `ip` 值,用 `,` 间隔。用于指定需要停止的机器。 | | -c/--components | 否 | string | 空 | 组件列表,用 `,` 间隔。用于指定需要停止的组件。如果配置下的组件没有全部停止,该配置不会进入 stopped 状态。 | ## obd cluster destroy 销毁已部署的集群。如果集群处于运行中的状态,该命令会先尝试执行 `stop`,成功后再执行 `destroy`。 ```shell obd cluster destroy [-f] # example obd cluster destroy test -f ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 OBD 执行销毁命令前会检查是否还有进程在运行中。这些运行中的进程可能是 `start` 失败留下的,也可能是因为配置与其他集群重叠,进程是其他集群的。但无论是哪个原因导致工作目录下有进程未退出,OBD 都会直接停止执行 `obd cluster destroy` 命令。 选项 `-f` 为 `--force-kill`。作用为:检查到工作目录下有运行中的进程时,强制停止进程。使用该选项会强制停止运行中的进程,强制执行 `obd cluster destroy`,非必填项。数据类型为 `bool`。默认不开启。 ## obd cluster upgrade 使用该命令可升级一个已经启动的组件。 ```shell obd cluster upgrade -c -V [tags] # example obd cluster upgrade test -c oceanbase-ce -V 4.0.0.0 --usable=c63bb73384b17d74299b34fe3aceb0ae310fd319d2ccdb1acd39f31ba6673198 ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |--------------------|------|--------|-----------------------|-----------------------------| | -c/--component | 是 | string | 空 | 需要升级的组件名。 | | -V/--version | 是 | string | 空 | 需要升级的组件的目标版本号。 | | --skip-check | 否 | bool | false | 跳过可以跳过的检查。 | | --usable | 否 | string | 空 | 升级中使用的镜像 hash 列表,用 `,` 间隔。 | | --disable | 否 | string | 空 | 升级中禁止使用的镜像 hash 列表,用 `,` 间隔。 | | -e/--executer-path | 否 | string | /usr/obd/lib/executer | 升级脚本使用的解释器所在路径。 | ## obd cluster reinstall 使用该命令可重新安装一个已部署的组件的仓库,新的仓库必须与当前仓库版本号相同。该命令在部署状态为 `running` 时,替换仓库后会使用无参启动,重新拉起组件。 ```shell obd cluster reinstall -c --hash [-f/--force] # example [admin@test ~]$ obd mirror list +------------------------------------------------------------------+ | Mirror Repository List | +----------------------------+--------+---------+------------------+ | SectionName | Type | Enabled | Update Time | +----------------------------+--------+---------+------------------+ | oceanbase.community.stable | remote | True | 2022-12-16 10:41 | | oceanbase.development-kit | remote | True | 2022-12-16 10:41 | | local | local | - | 2022-12-16 10:52 | +----------------------------+--------+---------+------------------+ Use `obd mirror list
` for more details [admin@test ~]$ obd mirror list oceanbase.community.stable | grep -e " oceanbase-ce " | grep -e " 4.0.0.0 " | oceanbase-ce | 4.0.0.0 | 100000272022110114.el7 | x86_64 | 759074414c7b7b723013855353f62a7ba0aae0f493216ef2511825850ce77b51 | | oceanbase-ce | 4.0.0.0 | 100000282022112511.el7 | x86_64 | debb18ab3c0b3d16f145c41cd21c30686863580b721d45ddaa068e6309e03b64 | | oceanbase-ce | 4.0.0.0 | 102000032022120718.el7 | x86_64 | c63bb73384b17d74299b34fe3aceb0ae310fd319d2ccdb1acd39f31ba6673198 | [admin@test ~]$ obd cluster reinstall test -c oceanbase-ce --hash=c63bb73384b17d74299b34fe3aceb0ae310fd319d2ccdb1acd39f31ba6673198 ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |------- | ------- | ------- |------- |-----| | -c/--component | 是 | string | 空 | 需要被替换的仓库的组件名。| | --hash | 是 | string | 空 | 目标仓库的 hash 值。目标仓库必须与当前仓库版本号相同。| | -f/--force | 否 | bool | false | 开启时,启动失败也强制替换。| ## obd cluster tenant create 创建租户。该命令仅对 OceanBase 数据库有效。该命令会自动创建资源单元和资源池,用户不需要手动创建。 ```shell obd cluster tenant create [-n ] [flags] # example obd cluster tenant create test -n obmysql --max-cpu=2 --memory-size=2G --log-disk-size=3G --max-iops=10000 --iops-weight=2 --unit-num=1 --charset=utf8 ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 选项说明见下表: | 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 | |-----------------------|------|--------|--------------------------|------------------------------------------------------------------------| | -t/-n/--tenant-name | 否 | string | test | 租户名。对应的资源单元和资源池根据租户名自动生成,并且避免重名。 | | --max-cpu | 否 | float | 0 | 租户可用最大 CPU 数。为 `0` 时使用集群剩余全部可用 CPU。 | | --min-cpu | 否 | float | 0 | 租户可用最小 CPU 数。为 `0` 时等同于 `--max-cpu`。 | | --max-memory | 否 | int | 0 | 租户可用最大内存。为 `0` 时使用集群剩余全部可用内存。实际值低于 `1G` 时报错。
OceanBase 数据库 V4.0.0.0 及以上版本不适用,可改用 `--memory-size`。
| | --min-memory | 否 | int | 0 | 租户可用最小内存。为 `0` 时等同于 `--max-memory`。
OceanBase 数据库 V4.0.0.0 及以上版本不适用,可改用 `--memory-size`。
| | --memory-size | 否 | int | 0 | 租户可用内存单元大小,仅支持 OceanBase 数据库 V4.0.0.0 及以上版本。 | | --max-disk-size | 否 | int | 0 | 租户可用最大磁盘空间。为 `0` 时使用集群全部可用空间。实际值低于 `512M` 时报错。
OceanBase 数据库 V4.0.0.0 及以上版本不适用。
| | --log-disk-size | 否 | int | 0 | 指定租户的 Unit 日志盘大小。默认值为 3 倍的内存规格值。最小值为 `2G`。 | | --max-iops | 否 | int |
  • 128(OceanBase 版本低于 V4.0.0)
  • 1024(OceanBase 为 V4.0.0 及以上版本)
| 租户 IOPS 最多数量,该参数的取值范围根据 OceanBase 版本的不同分为以下两种情况。
  • 当 OceanBase 数据库版本低于 V4.0.0 时取值范围为 \[128,+∞)。
  • 当 OceanBase 数据库版本为 V4.0.0 及以上版本时取值范围为 \[1024,+∞)。
| | --min-iops | 否 | int | 0 | 租户 IOPS 最少数量。取值范围等同于 `--max-iops`。为 `0` 时等同于 `--max-iops`。 | | --iops-weight | 否 | int | 0 | 指定租户 IOPS 的权重。仅支持 OceanBase 数据库 V4.0.0.0 及以上版本。 | | --max-session-num | 否 | int | 64 | 租户最大 SESSION 数,取值范围为 \[64,+∞)。
OceanBase 数据库 V4.0.0.0 及以上版本不适用。
| | --unit-num | 否 | int | 0 | 指定要创建的单个 Zone 下的单元个数,取值要小于单个 Zone 中的 OBServer 节点个数。为 `0` 自动获取最大值。 | | -z/--zone-list | 否 | string | 空 | 指定租户的 Zone 列表,多个 Zone 用英文逗号 `,` 间隔。为空时等于集群全部 Zone。 | | --mode | 否 | string | mysql | 指定租户的模式(MySQL/Oracle),OceanBase 数据库社区版仅支持 MySQL 模式的租户。 | | --primary-zone | 否 | string | RANDOM | 租户的主 Zone。 | | --charset | 否 | string | 空 | 租户的字符集。 | | --collate | 否 | string | 空 | 租户校对规则。 | | --replica-num | 否 | int | 0 | 租户副本数。为 `0` 时等于 Zone 的数目。 | | --logonly-replica-num | 否 | string | 0 | 租户日志副本数。为 `0` 时等同于 `--replica-num`。 | | --tablegroup | 否 | string | 空 | 租户默认表组信息。 | | --locality | 否 | string | 空 | 描述副本在 Zone 间的分布情况,如:F@z1,F@z2,F@z3,R@z4 表示 z1, z2, z3 为全功能副本,z4 为只读副本。 | | -s/--variables | 否 | string | ob_tcp_invited_nodes='%' | 设置租户系统变量值。 | ## obd cluster tenant show 使用该命令可查看集群中的租户,该命令仅对 OceanBase 数据库有效。 ```bash obd cluster tenant show # example obd cluster tenant show test ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 ## obd cluster tenant drop 使用该命令可以删除租户。该命令仅对 OceanBase 数据库有效。 该命令会自动删除对应的资源单元和资源池。 ```shell obd cluster tenant drop -n # example obd cluster tenant drop test -n obmysql ``` 参数 `deploy name` 为部署集群名,可以理解为配置文件的别名。 选项 `-t/-n` 为 `--tenant-name`,此选项为必填项,表示要删除的租户名。 ## obd cluster chst 使用该命令可以转换配置风格。 ```shell obd cluster chst --style