一、安装
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