本文以单机部署为例介绍如何使用 OBD 部署 OceanBase 数据库。单机部署仅包含一个 Zone 并且 Zone 中只有一个 OBServer 节点。
-
中控机器:存储 OceanBase 数据库安装包和集群配置信息的机器。
-
目标机器:安装 OceanBase 集群的机器。
-
您的机器中已安装 OBD,建议安装最新版本,详细信息请参考 安装并配置 OBD。
-
您的机器中已安装 OBClient 客户端,详细信息请参考 OBClient 文档。
OceanBase 从 V4.0.0 开始提供统一的安装包 all-in-one package。您可以通过这个统一的安装包一次性完成 OBD、OceanBase 数据库、ODP、OBAgent、Grafana、Prometheus 和 OCP Express(自 V4.1.0 起支持) 的安装。
您也可根据实际需求从 OceanBase 软件下载中心 选择部分组件下载安装或者指定组件的版本。
离线部署 OceanBase 数据库时建议下载 all-in-one 安装包进行部署。
若您的机器可以连接网络,可执行如下命令在线安装。
[admin@test001 ~]$ bash -c "$(curl -s https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/installer.sh)"
[admin@test001 ~]$ source ~/.oceanbase-all-in-one/bin/env.sh
若您的机器无法连接网络,可参考如下步骤离线安装。
-
从 OceanBase 软件下载中心 下载最新的 all-in-one 安装包,并将其复制到中控机任意目录下。
-
在 all-in-one 安装包所在目录下执行如下命令解压安装包并安装。
[admin@test001 ~]$ tar -xzf oceanbase-all-in-one-*.tar.gz [admin@test001 ~]$ cd oceanbase-all-in-one/bin/ [admin@test001 bin]$ ./install.sh [admin@test001 bin]$ source ~/.oceanbase-all-in-one/bin/env.sh
部署 OceanBase 集群之前,为了数据安全,建议您切换到非 root 用户。
如果是离线部署 OceanBase 集群,可参考 步骤一 在中控机上下载并安装 all-in-one 安装包。
如果对部署所需组件版本有特别要求,可从 OceanBase 软件下载中心 自行下载组件对应版本安装包,复制到中控机任一目录,在该目录下参考以下步骤配置 OBD。
如果是在线部署 OceanBase 集群或通过 all-in-one 安装包部署 OceanBase 集群,则跳过步骤 1~3。
-
禁用远程仓库
[admin@test001 rpm]$ obd mirror disable remote
安装 all-in-one 安装包后默认关闭远程仓库,您可通过
obd mirror list
命令进行确认,查看 Type=remote 对应的 Enabled 变成了 False,说明已关闭远程镜像源。 -
将安装包添加至本地镜像
[admin@test001 rpm]$ obd mirror clone *.rpm
-
查看本地镜像中安装包列表
[admin@test001 rpm]$ obd mirror list local
-
选择配置文件
若您机器中的 OBD 是通过直接下载的方式安装,则可在
/usr/obd/example
目录下查看 OBD 提供的配置文件示例。若您机器中的 OBD 是通过解压 all-in-one 安装包的方式安装,则可在
~/.oceanbase-all-in-one/conf
目录下查看 OBD 提供的配置文件示例。请根据您的资源条件选择相应的配置文件。小规格开发模式,适用于个人设备(内存不低于 8 GB)
-
本地单机部署配置样例:mini-local-example.yaml
-
单机部署配置样例:mini-single-example.yaml
-
单机部署 + ODP 配置样例:mini-single-with-obproxy-example.yaml
-
分布式部署 + ODP 配置样例:mini-distributed-with-obproxy-example.yaml
-
分布式部署 + ODP + OCP Express 配置样例:default-components-min.yaml
-
分布式部署全部组件:all-components-min.yaml
专业开发模式,适用于高配置 ECS 或物理服务器(可用资源不低于 16 核 64 GB)
-
本地单机部署配置样例:local-example.yaml
-
单机部署配置样例:single-example.yaml
-
单机部署 + ODP 配置样例:single-with-obproxy-example.yaml
-
分布式部署 + ODP 配置样例:distributed-with-obproxy-example.yaml
-
分布式部署 + ODP + OCP Express 配置样例:default-components.yaml
-
分布式部署全部组件:all-components.yaml
-
-
修改配置文件
此处以小规格开发模式-单机部署(mini-single-example.yaml)为例,介绍如何修改配置文件。
您需根据您环境的真实情况修改下述参数。
-
修改用户信息
## 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 30
username
为登录到目标机器的用户名,确保您的用户名有home_path
的写权限。password
和key_file
均用于验证用户,通常情况下只需要填写一个。在配置秘钥路径后,如果您的秘钥不需要口令,请注释或者删除
password
,以免password
被视为秘钥口令用于登录,导致校验失败。 -
修改机器的 IP、端口和相关目录,并配置内存相关参数及密码
oceanbase-ce: servers: # Please don't use hostname, only IP can be supported - ip: 10.10.10.1 global: # Please set devname as the network adaptor's name whose ip is in the setting of severs. # if set severs as "127.0.0.1", please set devname as "lo" # if current ip is 192.168.1.10, and the ip's network adaptor's name is "eth0", please use "eth0" devname: eth0 cluster_id: 1 # please set memory limit to a suitable value which is matching resource. memory_limit: 6G # The maximum running memory for an observer system_memory: 1G # The reserved system memory. system_memory is reserved for general tenants. The default value is 30G. datafile_size: 2G # Size of the data file. datafile_next: 2G # the auto extend step. Please enter an capacity, such as 2G datafile_maxsize: 20G # the auto extend max size. Please enter an capacity, such as 20G log_disk_size: 13G # The size of disk space used by the clog files. cpu_count: 16 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. production_mode: false # 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 zone: zone1
配置文件中各配置项含义可参见 配置文件说明。配置文件中若未配置密码,OBD 会自动生成随机密码,部署成功后可通过
obd cluster edit-config
命令查看配置文件对应配置项获取密码。
-
本节中所使用命令的详细使用方法可参考 集群命令组。
-
部署 OceanBase 数据库
[admin@test001 ~]$ obd cluster deploy obtest -c mini-single-example.yaml
联网情况下,在您执行了
obd cluster deploy
命令之后,OBD 将检查您的目标机器是否有部署所需安装包。如果没有安装包,OBD 将自动从 YUM 源获取。此命令会检查
home_path
和data_dir
指向的目录是否为空,目录不为空时将报错。若您确认该目录下的内容可全部删除,可以加上-f
选项,强制清空目录。 -
启动 OceanBase 数据库
[admin@test001 ~]$ obd cluster start obtest
-
查看 OceanBase 集群状态
# 查看 OBD 管理的集群列表 [admin@test001 ~]$ obd cluster list # 查看 obtest 集群状态 [admin@test001 ~]$ obd cluster display obtest
-
(可选)修改集群配置
OceanBase 数据库有数百个配置项,有些配置是耦合的,在您熟悉 OceanBase 数据库之前,不建议您修改示例配件文件中的配置。此处示例用来说明如何修改配置,并使之生效。
# 使用 edit-config 命令进入编辑模式,修改集群配置 # 修改配置并保存退出后,OBD 会告知如何使得此次修改生效,复制 OBD 输出的命令即可 [admin@test001 ~]$ obd cluster edit-config obtest # 保存修改后输出如下 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. [admin@test001 ~]$ obd cluster reload obtest
运行以下命令,使用 OBClient 客户端连接 OceanBase 数据库:
obclient -h<IP> -P<PORT> -uroot@sys -p
其中,IP
为 OBServer 节点的 IP 地址;PORT
为连接 OceanBase 数据库的的端口,直连时为 mysql_port
配置项的值,默认端口为 2881
,如果您对端口做了修改,此处使用您实际配置的端口号。
部署 OceanBase 集群之后,建议创建业务租户进行业务操作。sys 租户仅做集群管理使用,不适合在业务场景中使用。如何创建租户,详细操作请参考 创建用户租户。
您可执行如下命令对 OBD 部署的集群进行管理。更多操作详见 集群命令组。
# 查看集群列表
obd cluster list
# 查看集群状态,以部署名为 obtest 为例
obd cluster display obtest
# 停止运行中的集群,以部署名为 obtest 为例
obd cluster stop obtest
# 销毁已部署的集群,以部署名为 obtest 为例
obd cluster destroy obtest