OceanBase 单机版部署


一、安装

1. 通过 all-in-one 安装包部署 OBD 环境
tar -xzf oceanbase-all-in-one-*.tar.gz
cd oceanbase-all-in-one/bin/
./install.sh
source ~/.oceanbase-all-in-one/bin/env.sh

2. 禁用远程仓库

obd mirror disable remote
obd mirror list
# 查看 Type=remote 对应的 Enabled 变成了 False,说明已关闭远程镜像源

3. 查看本地镜像中安装包列表

obd mirror list local

4. 配置文件

user:
username: root
password: xx
port: 22
oceanbase-ce:
servers:
- 172.16.99.220
global:
home_path: /home/oceanbase/oceanbase
data_dir: /home/oceanbase/data
redo_dir: /home/oceanbase/redo
devname: ens32
mysql_port: 2881
rpc_port: 2882
obshell_port: 2886
zone: zone1
cluster_id: 1
memory_limit: 6G
system_memory: 1G
datafile_size: 2G
datafile_next: 2G
datafile_maxsize: 20G
log_disk_size: 4G
cpu_count: 16
production_mode: false
enable_syslog_wf: false
max_syslog_file_count: 4
root_password: xx
enable_syslog_recycle: true

5. 部署 OceanBase 数据库

obd cluster deploy oceanbase -c mini-single.yaml

6. 检查和启动数据库

/home/oceanbase/oceanbase/bin/observer --version

obd cluster list

obd cluster start oceanbase

obclient -h127.0.0.1 -P2881 -uroot -pDDcampus**88 -A

mysql -h127.0.0.1 -P2881 -uroot -pDDcampus**88 -A

设置MySQL 兼容模式

SHOW VARIABLES LIKE 'ob_compatibility_mode';

ALTER SYSTEM SET ob_compatibility_mode='mysql';

7.修改集群配置

obd cluster edit-config oceanbase

obd cluster reload obtest

8.在/etc/systemd/system/目录下创建一个名为oceanbase.service的文件

[Unit]
Description=oceanbase
After=network.target

[Service]
Type=forking
User=root
EnvironmentFile=/etc/profile.d/obd.sh
ExecStart=/usr/bin/obd cluster start dcampus
ExecStop=/usr/bin/obd cluster stop dcampus
ExecReload=/usr/bin/obd cluster restart dcampus
LimitNOFILE=65535
LimitNPR0C=65535

[Install]
WantedBy=multi-user.target

systemctl daemon-reload
systemctl enable oceanbase.service
systemctl start oceanbase.service

二、创建租户

1.创建资源规格

登录oceanbase,通过 DBA_OB_UNIT_CONFIGS 视图,获取已有的资源规格信息

SELECT * FROM oceanbase.DBA_OB_UNIT_CONFIGS;

通过 CREATE RESOURCE UNIT 语句,创建一个名称为 S1_unit_config 的资源规格,其资源配置为 CPU 为 1 核,内存 5G,日志盘空间 6G。

CREATE RESOURCE UNIT S1_unit_config
MEMORY_SIZE = '5G',
MAX_CPU = 1,
MIN_CPU = 1,
LOG_DISK_SIZE = '6G',
MAX_IOPS = 10000,
MIN_IOPS = 10000,
IOPS_WEIGHT=1;

2.创建资源池

登录数据库,通过 DBA_OB_RESOURCE_POOLS 视图,获取资源池的配置信息

SELECT * FROM oceanbase.DBA_OB_RESOURCE_POOLS;

通过 CREATE RESOURCE POOL 语句,创建一个名为 mq_pool_01 的资源池,在 zone1、zone2 里各创建 1 个 Unit,每个 Unit 的资源规格为 S1_unit_config

CREATE RESOURCE POOL mq_pool_01 UNIT='S1_unit_config', UNIT_NUM=1, ZONE_LIST=('zone1','zone2');

3.创建租户

登录数据库,通过 DBA_OB_TENANTS 视图,查看所有的租户信息。

SELECT * FROM oceanbase.DBA_OB_TENANTS;

通过 CREATE TENANT 语句,创建一个名为 mq_t1 的租户(默认为 MySQL 模式租户),副本数为 2,资源池指定为 mq_pool_01,Primary Zone 为 zone1,允许所有 IP 连接数据库。

租户的副本分布的 Zone List 继承于 resource_pool_list 的 zone_list 属性,租户的副本个数继承于 resource_pool_list 的 zone_list 属性的个数,租户在每个 Zone 的 Unit 个数继承于 resource_pool_list 的 unit_num 属性、租户的 Unit 的资源规格继承于 resource_pool_list 的 unit 属性。

CREATE TENANT IF NOT EXISTS mq_t1 PRIMARY_ZONE='zone1', RESOURCE_POOL_LIST=('mq_pool_01') set OB_TCP_INVITED_NODES='%';

4.租户创建成功后,可以尝试登录租户进行使用。

MySQL 兼容模式:obclient -h172.30.xx.xx -P2883 -uroot@mq_t1#cluster -A

Oracle 兼容模式:obclient -h172.30.xx.xx -P2883 -usys@oracle_tenant1#cluster -A