Oceanbase企业版安装(非生产环境)
学习需要,为了验证Oceanbase企业版和Oceanbase CE版本的差异性,本人尝试安装了单机环境下的Oceanbase企业版。因为我的目的不是正常使用,所以,属于极简化安装,除了必要的步骤外,其他都忽略了。
根据官方文档说明,Oceanbase的企业版和社区版的区别,我这里比较关心的是对Oracle的兼容。Oceanbase CE版本的资料很丰富,并且支持多种方式部署(Kubernetes容器化安装等),但是企业版是商业版,所以资料和使用经验总结性资料就比较少。本文试着总结《Oceanbase企业版测试环境安装》企业版和社区版的功能差异-V4.3.5-OceanBase 数据库文档-分布式数据库使用文档https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002012644
安装过程
准备服务器环境
操作系统:Anolis OS release 8.9
服务器配置:8核心+16G内存+200G磁盘(/data/目录独享100G磁盘)
获取安装介质
官网申请试用:OceanBase 下载 - 企业版数据库下载 - OceanBase 数据库下载中心https://www.oceanbase.com/softwarecenter-enterprise
obclient(root@(none))[oceanbase]> select ob_version();
+--------------+
| ob_version() |
+--------------+
| 3.2.4.1 |
+--------------+
1 row in set (0.001 sec)
安装目录和软件
useradd admin
chown admin: /data
rpm -ivh oceanbase-3.2.4.1-101000052023010822.el7.x86_64.rpm
在执行如下步骤之前,最好设置一下变量:$cluster_name
为集群名。这样就不用替换命令中的集群名参数了。
echo "cluster_name=obdemo" >~/.bashrc
清理 OceanBase 目录 (第一次部署不用)
su - admin
kill -9 `pidof observer`
rm -rf /data/1/$cluster_name
rm -rf /data/log1/$cluster_name
rm -rf /home/admin/oceanbase/store/$cluster_name /home/admin/oceanbase/log/* /home/admin/oceanbase/etc/*config*
初始化 OceanBase 目录
mkdir -p /data/1/$cluster_name/{etc3,sort_dir,sstable}
mkdir -p /data/log1/$cluster_name/{clog,etc2,ilog,slog,oob_clog}
mkdir -p /home/admin/oceanbase/store/$cluster_name
for t in {etc3,sort_dir,sstable};do
ln -s /data/1/$cluster_name/$t /home/admin/oceanbase/store/$cluster_name/$t;
done
for t in {clog,etc2,ilog,slog,oob_clog};do
ln -s /data/log1/$cluster_name/$t /home/admin/oceanbase/store/$cluster_name/$t;
done
检查结果:
cd /home/admin/oceanbase && tree store/
安装 OceanBase 客户端
OceanBase 实例兼容 Oracle 或 MySQL,如果是 Oracle 租户,Java 程序连接需要使用 OceanBase 提供的 Java 驱动文件(oceanbase-client-*.jar )。如果要在命令行下访问 Oracle 租户,还需要安装客户端 OBClient。
OBClient 是 OceanBase 命令行客户端,可以访问 OceanBase 的 MySQL 租户和 ORACLE 租户。
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
yum -y install obclient
初始化 OceanBase 集群
启动 observer 进程
其中-o参数设置需要根据需要调整。如果按照官方文档手册配置,初始化Oceanbase将会失败。失败代码:
obclient(root@(none))[(none)]> ALTER SYSTEM BOOTSTRAP ZONE 'zone1' SERVER '10.10.10.1:2882';
ERROR 1235 (0A000): unit min memory less than __min_full_resource_pool_memory not supported
注:修改内存规格,其最小值由隐藏配置项 __min_full_resource_pool_memory 控制,
默认为 5G,为了保证稳定性,最小的内存规格建议为 4G。我设置为了1G。
su - admin
cd /home/admin/oceanbase && /home/admin/oceanbase/bin/observer -i bond0 -P 2882 -p 2881 \
-z zone1 -d /home/admin/oceanbase/store/obdemo -l ERROR \
-r '10.10.10.1:2882:2881' -c 10001 -n obdemo \
-o "memory_limit=16G,cache_wash_threshold=2G,__min_full_resource_pool_memory=1073741824,system_memory=12G,memory_chunk_cache_size=128M,cpu_count=6,net_thread_count=4,datafile_size=80G,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"
参数解释详见:部署单副本 OceanBase 集群-V3.2.4-OceanBase 数据库文档-分布式数据库使用文档https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000944267
集群 bootstrap 操作
通过 obclient 命令连接已启动的 observer 进程,密码为空。
su - root
obclient -h127.0.0.1 -uroot -P2881 -p
SET SESSION ob_query_timeout=1000000000;
ALTER SYSTEM BOOTSTRAP ZONE 'zone1' SERVER '10.10.10.1:2882';
修改密码
sys 租户的 root 用户密码默认为空,初始化成功后请修改密码。
ALTER USER root IDENTIFIED BY '******';
创建租户
详情参考:
创建租户-V3.2.4-OceanBase 数据库文档-分布式数据库使用文档https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000944265