首批通过分布式安全可靠测评,为关键业务系统打造
使用命令行部署 OceanBase 数据库生产环境
更新时间:2026-06-28 16:34:10
本文介绍如何通过 OBD 黑屏命令行方式部署 OceanBase 数据库生产环境。
名词解释
中控机器
存储 OceanBase 数据库安装包和集群配置信息的机器。
目标机器
安装 OceanBase 数据库的机器。
OBD
OceanBase Deployer,OceanBase 安装部署工具,简称为 OBD。详细信息请参考 OBD 文档。
ODP
OceanBase Database Proxy,OceanBase 数据库代理,是 OceanBase 数据库专用的代理服务器,简称为 ODP(又称为 OBProxy)。详细信息请参考 ODP 文档。
前提条件
在连接 OceanBase 数据库之前,请您确认以下信息:
部署模式
本文采用三副本部署模式,推荐使用四台机器。其中:
使用一台机器部署 ODP。
使用三台机器部署 OceanBase 集群。
说明
在生产环境下,推荐将 ODP 和应用部署在一台机器上,以节省应用访问 ODP 的时间。 您可以在每个应用的服务器上部署一个 ODP 服务。在本例中,为了更方便使用,将 ODP 单独部署。
部署 ODP 的机器使用的配置可以和部署 OceanBase 数据库的机器配置不一致。部署 ODP 只需 4C/16G ~ 8C/64G 内存即可。
操作步骤
注意
以下内容以 x86 架构的 CentOS Linux 7.9 镜像作为环境,其他环境可能略有不同。
部署 OceanBase 集群之前,为了数据安全,建议您切换到非 root 用户。
步骤一:安装 OBD
说明
- 您只需要在中控机器上安装 OBD,建议安装最新版本。
在线安装 OBD
如您的机器可以访问公网,并能够添加三方 YUM 软件源,您可以执行以下命令,使用 OceanBase 的官方软件源安装 OBD:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
sudo yum install -y ob-deploy
注意
只有 Anolis、CentOS 和 RedHat 操作系统支持此操作。
离线安装 OBD
如果您的机器不能访问公网,您可以从 OceanBase 软件下载中心 下载 OBD,建议下载最新版本的安装包。下载完成后,将 OBD 复制到您的中控机器任一目录下。
在 CentOS 或 RedHat 系统上,在安装包所在目录下执行如下命令安装 OBD:
sudo yum install ob-deploy-x.x.x.el7.x86_64.rpm
在 Ubuntu 或 Debian 系统上,在安装包所在目录下执行如下命令安装 OBD:
sudo alien --scripts -i ob-deploy-x.x.x.el7.x86_64.rpm
步骤二:安装 OBClient
您只需要在中控机器上安装 OBClient。
在线安装 OBClient
执行以下命令,在线安装 OBLibs:
sudo yum install -y libobclient
sudo yum install -y obclient
离线安装 OBClient
如果您的机器不能访问公网,您可以从 OceanBase 软件下载中心 下载 OBClient 和依赖包 LibOBClient,建议下载最新版本的安装包。下载完成后,将安装包复制到您的中控机器任一目录下。
在 CentOS 或 RedHat 系统上,在安装包所在目录下执行如下命令安装 OBClient:
sudo yum install libobclient-x.x.x.el7.x86_64.rpm
sudo yum install obclient-x.x.x-2.el7.x86_64.rpm
在 Ubuntu 或 Debian 系统上,在安装包所在目录下执行如下命令安装 OBClient:
sudo alien --scripts -i libobclient-x.x.x.el7.x86_64.rpm
sudo alien --scripts -i obclient-x.x.x.el7.x86_64.rpm
步骤三:配置 OBD
如果离线安装 OceanBase 集群,可从 OceanBase 软件下载中心 下载 OceanBase 数据库、OBLibs 和 ODP。下载完成后,将下载的安装包复制到中控机器上任一目录下,并在该目录下参考以下步骤配置 OBD。如果在线安装,则跳过步骤 1~3。
禁用远程仓库
obd mirror disable remote离线安装时,您必须禁用远程仓库。
将下载的安装包添加至本地镜像
obd mirror clone *.rpm查看本地镜像库中的安装包列表
obd mirror list local下载配置文件
您可从 OBD 的 GitHub 仓库中下载对应的配置文件,也可在
/usr/obd/example目录下查看 OBD 提供的配置文件示例。请根据您的实际情况选择相应的配置文件:如果您采用单机安装,即目标机器只有一台,可使用单机安装配置文件(/usr/obd/example/single-example.yaml)。
如果您采用分布式安装,即目标机器有多台,可使用分布式安装配置文件(/usr/obd/example/distributed-with-obproxy-example.yaml)。
修改配置文件
以部署分布式 OceanBase 数据库和 ODP 为例,按照以下步骤修改配置文件。
说明
您需根据您环境的真实情况修改下述参数。
修改用户名和密码
## Only need to configure when remote login is required user: username: admin # password: your password if need key_file: /home/admin/.ssh/id_rsa # port: your ssh port, default 22 # timeout: ssh connection timeout (second), default 30username为登录到目标机器的用户名,确保您的用户名有home_path的写权限。password和key_file均用于验证用户,通常情况下只需要填写一个。注意
在配置秘钥路径后,如果您的秘钥不需要口令,请注释或者删除
password,以免password被视为秘钥口令用于登录,导致校验失败。修改机器的 IP、端口和相关目录,并配置内存相关参数及密码
OceanBase 数据库详细参数介绍,参考 OceanBase 数据库参数。
oceanbase-ce: servers: # Please don't use hostname, only IP can be supported - name: server1 ip: 10.10.10.1 - name: server2 ip: 10.10.10.2 - name: server3 ip: 10.10.10.3 global: devname: eth0 cluster_id: 1 # please set memory limit to a suitable value which is matching resource. memory_limit: 64G # The maximum running memory for an observer system_memory: 30G # The reserved system memory. system_memory is reserved for general tenants. The default value is 30G. datafile_size: 192G # Size of the data file. log_disk_size: 192G # The size of disk space used by the clog files. enable_syslog_wf: false # Print system logs whose levels are higher than WARNING to a separate log file. The default value is true. enable_syslog_recycle: true # Enable auto system log recycling or not. The default value is false. max_syslog_file_count: 4 # The maximum number of reserved log files before enabling auto recycling. The default value is 0. mysql_port: 2881 # External port for OceanBase Database. The default value is 2881. DO NOT change this value after the cluster is started. rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882. DO NOT change this value after the cluster is started. # observer cluster name, consistent with obproxy's cluster_name appname: obdemo # The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field. home_path: /home/admin/observer # The directory for data storage. The default value is $home_path/store. data_dir: /data # The directory for clog, ilog, and slog. The default value is the same as the data_dir value. redo_dir: /redo root_password: ****** # root user password, can be empty proxyro_password: ****** # proxyro user pasword, consistent with obproxy's observer_sys_password, can be empty server1: zone: zone1 server2: zone: zone2 server3: zone: zone3若机器中存在不一致的配置项,可将相关配置项移到对应 server 里进行配置,以其中两台机器中配置端口不同为例:
server2: mysql_port: 3881 rpc_port: 3882 zone: zone2 server3: mysql_port: 2881 rpc_port: 2882 zone: zone3说明
配置文件中对应 server 中的配置优先级高于
global。配置 obproxy-ce 组件并修改 IP 和
home_pathobproxy-ce: depends: - oceanbase-ce servers: - 10.10.10.4 global: listen_port: 2883 # External port. The default value is 2883. prometheus_listen_port: 2884 # The Prometheus port. The default value is 2884. home_path: /home/admin/obproxy enable_cluster_checkout: false skip_proxy_sys_private_check: true enable_strict_kernel_release: false obproxy_sys_password: ****** # obproxy sys user password, can be empty. When a depends exists, OBD gets this value from the oceanbase-ce of the depends. observer_sys_password: ***** # proxyro user pasword, consistent with oceanbase-ce's proxyro_password, can be empty. When a depends exists, OBD gets this value from the oceanbase-ce of the depends.注意
observer_sys_password的值需设置为和proxyro_password的值相同,两者均表示proxyro@sys的密码。
步骤四:部署 OceanBase 集群
按照以下步骤部署 OceanBase 集群:
部署 OceanBase 集群
obd cluster deploy obtest -c distributed-with-obproxy-example.yaml联网情况下,在您执行了
obd cluster deploy命令之后,OBD 将检查您的目标机器是否有部署所需安装包。如果没有安装包,OBD 将自动从 YUM 源获取。更多关于obd cluster deploy命令的信息,参考 OBD 手册 集群命令组 中obd cluster deploy命令。启动 OceanBase 集群
obd cluster start obtest查看 OceanBase 集群状态
obd cluster display obtest(可选)修改集群配置
OceanBase 数据库有数百个配置项,有些配置是耦合的,在您熟悉 OceanBase 数据库之前,不建议您修改示例配件文件中的配置。此处示例用来说明如何修改配置,并使之生效。
使用
obd cluster edit-config命令进入编辑模式,修改集群配置。[admin@test001 ~]$ obd cluster edit-config obtest修改配置并保存退出后,OBD 会告知如何使得此次修改生效,保存修改后输入如下。
Search param plugin and load ok Search param plugin and load ok Parameter check ok Save deploy "obtest" configuration Use `obd cluster reload obtest` to make changes take effect.复制 OBD 输出的命令执行即可。
[admin@test001 ~]$ obd cluster reload obtest
步骤五:连接 OceanBase 数据库
此处以使用 OBClient 客户端连接 OceanBase 集群为例:
obclient -h<IP> -P<PORT> -u<user_name>@<tenant_name>#<cluster_name> -p -c -A
# example
obclient -h10.10.10.4 -P2883 -uroot@sys#obdemo -p -c -A
参数说明:
-h:提供 OceanBase 数据库连接 IP,直连时为 OBServer 节点地址,通过 ODP 连接时为 ODP 地址。
-u:提供租户的连接账户,格式有:
用户名@租户名#集群名、集群名:租户名:用户名、集群名-租户名-用户名或者集群名.租户名.用户名。MySQL 租户的管理员用户名默认是root。注意
连接时所用的集群名为配置文件中
appname配置名称,而非部署时的deploy name。-P:提供 OceanBase 数据库连接端口,直连时为
mysql_port配置项的值,通过 ODP 连接时为listen_port配置项的值。-p:提供 OceanBase 数据库连接密码。
-c:表示在 OBClient 运行环境中不要忽略注释。
说明
Hint 是特殊的注释,不受 -c 影响。
-A:表示在 OBClient 连接数据库时不自动获取统计信息。
更多连接 OceanBase 集群的详细操作可参见 连接 OceanBase 数据库。
步骤六:创建用户租户
部署 OceanBase 集群之后,建议创建用户租户进行业务操作。sys 租户仅做集群管理使用,不适合在业务场景中使用。
您可以使用如下两种方法创建用户租户:
方法一:使用 OBD 创建用户租户。
obd cluster tenant create <deploy name> [-n <tenant name>] [flags] # example obd cluster tenant create obtest -n obmysql --max-cpu=2 --memory-size=2G --log-disk-size=3G --max-iops=10000 --iops-weight=2 --unit-num=1 --charset=utf8命令详细使用方法请参考 OBD 手册 集群命令组 中
obd cluster tenant create命令。方法二:使用 SQL 语句创建用户租户。创建租户前需要先创建资源池,具体操作请参考 创建资源池。
CREATE TENANT IF NOT EXISTS test_tenant charset='utf8mb4', replica_num=3, zone_list=('zone1','zone2','zone3'), primary_zone='RANDOM', resource_pool_list=('pool1');创建租户的详细命令介绍请参考 新建租户。