首批通过分布式安全可靠测评,为关键业务系统打造
主机命令组
更新时间:2025-09-06 15:00:44
obd 自 V3.2.0 起支持对机器的内核参数进行查看和修改,本文介绍功能相关的命令组。您可以在每条命令中使用 -h/--help 选项查看命令的帮助信息。同样的,当命令执行报错时,您亦可使用 -v/--verbose 查看命令的详细执行过程。
说明
本文中的 目标机器 指待初始化用户、查看或修改内核参数的机器。
obd host user init
说明
obd 自 V3.5.0 起支持通过该命令初始化用户。
使用该命令可在指定机器上初始化指定用户。若指定用户不存在会创建对应用户,并对该用户执行以下初始化设置:
设置 ulimit 参数:修改系统资源限制参数,涉及修改的参数可参见官网《OceanBase 数据库》文档 配置 limits.conf。创建用户成功后,可在目标机器上登录创建的用户执行
ulimit -a命令查看配置是否生效。配置免密 sudo 权限:为指定用户配置免密执行 sudo 命令的权限。
说明
配置 sudo 免密是为了方便操作,您可在部署集群完成后手动去除 sudo 免密。
启用密码登录:确保用户可以通过密码方式登录系统。
修改目录所有者:若目标机器中存在
/data/1和/data/log1目录,将目录的所有者修改为指定的用户。
obd host user init [options]
选项说明见下表:
| 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|---|
| -u/--username | 否 | string | admin | 指定待初始化用户的用户名,若指定用户不存在会创建对应用户。 |
| -p/--password | 否 | string | 空 | 为待初始化用户设置新的登录密码。当指定的用户不存在时,该选项为必选项。 |
| --host | 否 | string | 127.0.0.1 | 指定待初始化用户所在的主机 IP,目前仅支持配置一个 IP。 |
使用示例
使用 obd 在目标机器 10.10.10.1 中初始化 test 用户,并为 test 用户设置登录密码:
obd host user init -u test --host=10.10.10.1 -p ********
该命令执行时会先尝试使用设置的用户(示例中为 test)登录目标机器(10.10.10.1),若无法连接,则需输入拥有 sudo 权限的用户及密码。obd 会使用输入的用户登录目标机器,并对指定用户执行初始化操作。
说明
若使用该命令对本机用户执行初始化,obd 会验证当前执行用户是否拥有免密 sudo 权限。如有权限,将直接使用执行用户对指定用户执行初始化操作。
输出示例如下:
Connecting to the server
Please input username with sudo privileges. (default: root):
Please input root password:
Create user test
Change test password
Configure passwordless sudo for test
Enable password login
Modify ulimit parameters
10.10.10.1: ( open files,max user processes,core file size,stack size... ) have been successfully modified!
Trace ID: a2230822-71a7-11f0-8356-00163e513302
If you want to view detailed obd logs, please run: obd display-trace a2230822-71a7-11f0-8356-00163e513302
obd host precheck
部署 OceanBase 数据库时对机器有一定的要求,比如机器 Linux 内核版本、内核参数等。使用该命令可检查目标机器中的指定用户是否满足部署要求,主要检查以下内容,仅不符合要求的检查项会有输出。
内核参数检查:检查建议修改的内核参数,具体参数可查看官网《OceanBase 数据库》文档 配置 sysctl.conf。
安全设置检查:检查防火墙和 SELinux 功能是否关闭。
登录设置检查:检查是否支持使用密码登录。
系统权限检查:检查指定用户是否拥有免密执行 sudo 命令的权限。
网络组件检查:检查是否安装 network 组件。
内存资源检查:检查机器可用内存是否满足要求(大于 3 GB)。
内核版本检查:检查机器内核版本是否满足要求(Linux 3.1.0 及以上)。
目录属主检查:若目标机器中存在
/data/1和/data/log1目录,将检查目录的所有者是否为指定的用户。指令检查:x86 架构下检查 CPU 是否支持 AVX 指令;ARM 架构下检查 CPU 是否支持 LSE 指令。
说明
当使用 x86 架构机器时,若待部署的 OceanBase 数据库版本在以下范围中,可忽略 AVX 指令检查结果:
- 对于 V4.2.x 版本,要求为 V4.2.5.6 或之后版本。
- 对于 V4.3.x 版本,要求为 V4.3.5.4 或之后版本。
- 对于 V4.4.x 版本,要求为 V4.4.1.0 或之后版本。
obd host precheck <ssh username> <server ip>
参数 ssh username 为登录目标机器的用户名;server ip 为目标机器的 IP,目前仅支持配置一个 IP。
选项说明见下表:
| 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|---|
| -u/--username | 否 | string | 登录用户 | 指定 user 作为 precheck 命令中,用户检查功能的对象。未指定的情况下默认为登录用户,即命令中的 <ssh username>。 |
| -p/--password | 否 | string | 空 | 设置登录用户的登录密码,若目标机器中登录用户配置有密码,且未设置当前执行命令用户与目标机器中登录用户之间的 SSH 免密,需通过该选项指定用户密码。 |
| --ssh-key-file | 否 | string | 默认为空 | 指定私钥文件的路径,需配置为绝对路径,用于基于私钥的 SSH 无密码身份验证。 |
使用示例
此处假设目标机器不支持密码访问,且当前仅配置了对目标机器中 root 用户的 SSH 免密登录(私钥文件为默认路径 ~/.ssh/id_ rsa)。可执行如下命令,命令执行将会使用 root 用户登录目标机器 10.10.10.1,并对 test 用户进行检查:
说明
此处仅为示例,您可将登录用户设置为任意可登录到指定机器的用户。以本节示例为例,若支持通过密码访问目标机器 test 用户,下文示例命令与 obd host precheck test 10.10.10.1 -p ****** 命令作用一样。
obd host precheck root 10.10.10.1 -u test
输出示例如下,表示目标机器未开启密码登录、test 用户无免密执行 sudo 的权限、/data/1 和 /data/log1 目录属主非 test 用户,并输出建议修改的内核参数。
get system config ok
[WARN] Password login permission is not enabled.
[WARN] The test user's sudo privileges are not configured for password-free access.
[WARN] The owner of the ['/data/1', '/data/log1'] directory is not test.
+-------------------------------------------------------------------------------------------------+
| System Parameter Change List |
+---------------+-------------------------------------------+---------------+---------------------+
| ip | name | current_value | expected_value |
+---------------+-------------------------------------------+---------------+---------------------+
| 10.10.10.1 | fs.aio-max-nr | 65536 | 1048576 |
| 10.10.10.1 | net.core.somaxconn | 128 | 2048 |
| 10.10.10.1 | net.core.netdev_max_backlog | 1000 | 10000 |
| 10.10.10.1 | net.core.rmem_default | 212992 | 16777216 |
| 10.10.10.1 | net.core.wmem_default | 212992 | 16777216 |
| 10.10.10.1 | net.core.rmem_max | 212992 | 16777216 |
| 10.10.10.1 | net.core.wmem_max | 212992 | 16777216 |
| 10.10.10.1 | net.ipv4.conf.default.rp_filter | 0 | 1 |
| 10.10.10.1 | net.ipv4.conf.default.accept_source_route | 1 | 0 |
| 10.10.10.1 | net.ipv4.tcp_rmem | 6291456 | 4096 87380 16777216 |
| 10.10.10.1 | net.ipv4.tcp_wmem | 16384 | 4096 65536 16777216 |
| 10.10.10.1 | net.ipv4.tcp_max_syn_backlog | 1024 | 16384 |
| 10.10.10.1 | net.ipv4.tcp_fin_timeout | 60 | 15 |
| 10.10.10.1 | vm.min_free_kbytes | 67584 | 2097152 |
| 10.10.10.1 | fs.file-max | 3205772 | 6573688 |
| 10.10.10.1 | fs.pipe-user-pages-soft | 16384 | 0 |
| 10.10.10.1 | vm.max_map_count | 65530 | 655360 |
| 10.10.10.1 | nofile | 65535 | 655350 |
+---------------+-------------------------------------------+---------------+---------------------+
Please run `obd host user init -u test --host=10.10.10.1` to init user.
Please run `obd host init root 10.10.10.1 -u test` to init host.
Trace ID: 0f1219da-71d7-11f0-a56f-00163e513302
If you want to view detailed obd logs, please run: obd display-trace 0f1219da-71d7-11f0-a56f-00163e513302
obd host init
使用该命令可自动修改部署 OceanBase 数据库时建议修改的内核参数、关闭防火墙和 SELinux 功能、修改 /data/1 和 /data/log1 目录属主(如存在对应目录),并安装 network 组件。具体修改的内核参数可查看官网《OceanBase 数据库》文档 配置 sysctl.conf。
obd host init <ssh username> <server ip>
参数 ssh username 为登录目标机器的用户名,需确保登录用户拥有 sudo 权限;server ip 为目标机器的 IP,目前仅支持配置一个 IP。
选项说明见下表:
| 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|---|
| -u/--username | 否 | string | 登录用户 | 指定 user 作为 init 命令中,用户修改功能的对象。未指定的情况下默认为登录用户,即命令中的 <ssh username>。 |
| -p/--password | 否 | string | 空 | 设置登录用户的登录密码,若目标机器中登录用户配置有密码,且未设置当前执行命令用户与目标机器中登录用户之间的 SSH 免密,需通过该选项指定用户密码。 |
| --ssh-key-file | 否 | string | 默认为空 | 指定私钥文件的路径,需配置为绝对路径,用于基于私钥的 SSH 无密码身份验证。 |
使用示例
此处假设目标机器不支持密码访问,且当前仅配置了对目标机器中 root 用户的 SSH 免密登录(私钥文件为默认路径 ~/.ssh/id_ rsa)。可执行如下命令,命令执行将会使用 root 用户登录目标机器 10.10.10.1,并对 test 用户进行修改:
说明
此处仅为示例,您可将登录用户设置为任意可登录到指定机器的用户,但需确保登录用户拥有 sudo 权限。
obd host init root 10.10.10.1 -u test
输出示例如下,命令修改了建议修改的内核参数、并修改 /data/1 和 /data/log1 目录的属主为 test 用户。
get system config ok
+-------------------------------------------------------------------------------------------------+
| System Parameter Change List |
+---------------+-------------------------------------------+---------------+---------------------+
| ip | name | current_value | expected_value |
+---------------+-------------------------------------------+---------------+---------------------+
| 10.10.10.1 | fs.aio-max-nr | 65536 | 1048576 |
| 10.10.10.1 | net.core.somaxconn | 128 | 2048 |
| 10.10.10.1 | net.core.netdev_max_backlog | 1000 | 10000 |
| 10.10.10.1 | net.core.rmem_default | 212992 | 16777216 |
| 10.10.10.1 | net.core.wmem_default | 212992 | 16777216 |
| 10.10.10.1 | net.core.rmem_max | 212992 | 16777216 |
| 10.10.10.1 | net.core.wmem_max | 212992 | 16777216 |
| 10.10.10.1 | net.ipv4.conf.default.rp_filter | 0 | 1 |
| 10.10.10.1 | net.ipv4.conf.default.accept_source_route | 1 | 0 |
| 10.10.10.1 | net.ipv4.tcp_rmem | 6291456 | 4096 87380 16777216 |
| 10.10.10.1 | net.ipv4.tcp_wmem | 16384 | 4096 65536 16777216 |
| 10.10.10.1 | net.ipv4.tcp_max_syn_backlog | 1024 | 16384 |
| 10.10.10.1 | net.ipv4.tcp_fin_timeout | 60 | 15 |
| 10.10.10.1 | vm.min_free_kbytes | 67584 | 2097152 |
| 10.10.10.1 | fs.file-max | 3205772 | 6573688 |
| 10.10.10.1 | fs.pipe-user-pages-soft | 16384 | 0 |
| 10.10.10.1 | vm.max_map_count | 65530 | 655360 |
| 10.10.10.1 | nofile | 65535 | 655350 |
+---------------+-------------------------------------------+---------------+---------------------+
chown dir ok
modify system parameters
10.10.10.1: ( fs.aio-max-nr,net.core.somaxconn,net.core.netdev_max_backlog,net.core.rmem_default,net.core.wmem_default... ) have been successfully modified!
You must reboot the following servers to ensure the ulimit parameters take effect: (10.10.10.1).
Trace ID: f9491158-71db-11f0-81f0-00163e513302
If you want to view detailed obd logs, please run: obd display-trace f9491158-71db-11f0-81f0-00163e513302