- 实验一:OceanBase Docker体验
通过 OceanBase Docker 容器,快速的体验 OceanBase 的 自动化部署过程,以及了解 OceanBase 集群安装成功后的目录特点和使用方法。
-
- Docker镜像
- 实验环境
- 实验环境说明
- 实验环境
- Docker镜像
1台OCP 5台OBSERVER
aarch64 Kylin Linux Advanced Server release V10 (Sword)
CPU 16核
内存 64G
磁盘划分(lvm、fdisk)
用途 实验环境
/docker docker安装目录 200G
/home ob的安装目录 100G
/data/1 数据盘 110G
/data/log1 日志盘(事务日志) 200G
-
-
-
- 实验环境配置
-
-
- 设置chrony服务器
ocp:
sh -c 'echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6'
local clock
server 127.127.1.0
fudge 127.127.1.0 stratum 10
启动时钟服务器 Systemctl start chronyc
更新最新时钟 chronyc sources
- 建立用户,挂载文件系统(略)
- 修改limits限制、内核参数、关闭防火墙
- 网卡配置
cd /etc/sysconfig/network-scripts
cat ifcfg-enp1s0
- 配置ssh免密
ocp-ob-obp-odc-antman_20220506_arm/common/ssh/
vi address.txt 编辑IP、用户名、密码、hostname
./step1_init.sh
./step2_testlogin.sh
./step3_sethostname.sh
./step4_obssh.sh
- 下载对应版本 t-oceanbase-antman和oceanbase-all-in-one
1.
1.
1. 安装ocp
1、安装t-oceanbase-antman
2、创建admin用户
/root/t-oceanbase-antman/clonescripts/clone.sh -u
3、配置内核参数(/etc/sysctl.conf)
/root/t-oceanbase-antman/clonescripts/clone.sh -c -r ocp
4、安装依赖包
/root/t-oceanbase-antman/clonescripts/clone.sh -m -r ocp
5、安装docker
/root/t-oceanbase-antman/clonescripts/clone.sh -i
6、上传docker镜像
docker load -i ocp323.arm.tar.gz
7、配置obcluster.conf文件
/root/t-oceanbase-antman/init_obcluster_conf.sh 选1
8、安装部署前预检查
/root/t-oceanbase-antman/clonescripts/precheck.sh -m ocp
9、安装
sh install.sh -i 1-8
-
-
- Docker环境
- Docker环境
- Docker环境
-
- 下载docker镜像
wget https://download.docker.com/linux/static/stable/aarch64/docker-24.0.6.tgz
- 解压下载好的压缩包
tar xf docker-24.0.6.tgz
- 移动解压文件到/usr/bin 目录中
mv docker/* /usr/bin/
- 启动docker
dockerd
-
-
-
- Docker安装
-
-
- 执行命令:docker pull oceanbase/obce-mini 下载所需镜像
- 启动docker命令:docker run -p 2881:2881 --name obce-mini -d -e OB_HOME_PATH="/root/obce/" -e OB_TENANT_NAME="obmysql" oceanbase/obce-mini
- 进入容器:docker exec -it obce-mini bash
- 使用 OBD 命令OceanBase 集群部署
- OBD安装
- 使用 OBD 命令OceanBase 集群部署
- 检查OBD安装包
下载地址https://open.oceanbase.com/softwareCenter/community
- 安装obd
Rpm --ivh ob-deploy-2.3.0-4.el7.aarch64.rpm
- 将OceanBase rpm离线软件包加入本地镜像
obd mirror clone obproxy-ce-4.2.0.0-7.el7.aarch64.rpm obproxy-ce-4.2.0.0-7.el7.aarch64.rpm libobclient-2.2.2-3.el7.aarch64.rpm
-
-
- 集群配置文件
-
[root@ob1 obtools]# cat mini-distributed-with-obproxy-example.yaml
Only need to configure when remote login is required
user:
username: root <===========
password: root <===========
key_file: your ssh-key file path if need
port: your ssh port, default 22
timeout: ssh connection timeout (second), default 30
oceanbase-ce:
servers:
- name: z1
Please don't use hostname, only IP can be supported
ip: 192.168.0.1 <===========
- name: z2
ip: 192.168.0.2 <===========
- name: z3
ip: 192.168.0.3 <===========
- name: z4
ip: 192.168.0.4 <===========
- name: z5
ip: 192.168.0.5 <===========
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: ens192 <===========
cluster_id: 1
please set memory limit to a suitable value which is matching resource.
memory_limit: 8G
system_memory: 4G
stack_size: 512K
cpu_count: 16
cache_wash_threshold: 1G
__min_full_resource_pool_memory: 268435456
workers_per_cpu_quota: 10
schema_history_expire_time: 1d
The value of net_thread_count had better be same as cpu's core number.
net_thread_count: 4
major_freeze_duty_time: Disable
minor_freeze_times: 10
enable_separate_sys_clog: 0
enable_merge_by_turn: FALSE
datafile_disk_percentage: 20
syslog_level: INFO
enable_syslog_recycle: true
max_syslog_file_count: 4
observer cluster name, consistent with obproxy's cluster_name
appname: ob_cluster
root_password: 123456 <===========
proxyro_password: 123456 <===========
z1:
mysql_port: 2881
rpc_port: 2882
home_path: /root/observer
zone: zone1
z2:
mysql_port: 2881
rpc_port: 2882
home_path: /root/observer
zone: zone2
z3:
mysql_port: 2881
rpc_port: 2882
home_path: /root/observer
zone: zone3
z4:
mysql_port: 2881
rpc_port: 2882
home_path: /root/observer
zone: zone4
z5:
mysql_port: 2881
rpc_port: 2882
home_path: /root/observer
zone: zone5
obproxy:
servers:
- 192.168.0.1 <===========
global:
listen_port: 2883
prometheus_listen_port: 2884
home_path: /root/obproxy
oceanbase root server list
format: ip:mysql_port,ip:mysql_port
rs_list: 192.168.0.1:2881;192.168.0.2:2881;192.168.0.3:2881;192.168.0.4:2881;192.168.0.5:2881 <===========
enable_cluster_checkout: false
observer cluster name, consistent with oceanbase-ce's appname
cluster_name: ob_cluster
obproxy_sys_password: 123456 <===========
observer_sys_password: 123456 <===========
-
-
- 安装集群
-
obd cluster deploy ob-cluster -c ./mini-distributed-with-obproxy-example.yaml
-
-
- 启动集群
-
obd cluster start ob-cluste
-
- 创建业务租户、业务数据库和表
- 创建unit规格
create resource unit mini max_cpu=5, min_cpu=5, max_memory='2G', min_memory='2G', max_iops=10000, min_iops=1000, max_session_num=1000000, max_disk_size='10G';
- 创建资源池
create resource pool mini_pool_t1 unit=mini ,unit_num=1;
create resource pool mini_pool_t2 unit=mini ,unit_num=1;
- 创建租户
create tenant test charset='utf8mb4', replica_num=1,
zone_list=('zone1,zone2,zone3,zone4,zone5'), primary_zone='zone1,zone2;zone3,zone4;zone5',
resource_pool_list=('mini_pool_t1') set ob_tcp_invited_nodes='%';
create tenant test2 charset='utf8mb4', replica_num=1,
zone_list=('zone1,zone2,zone3,zone4,zone5'), primary_zone='zone1,zone2;zone3,zone4'zone5',
resource_pool_list=('mini_pool_t2') set ob_tcp_invited_nodes='%',
ob_compatibility_mode='oracle';
- 登陆业务租户
obclient --h192.168.0.2 -P2883 -uroot@test#admin:1673835228 --p
创建数据库
创建表