OceanBase Docker体验

  1. 实验一:OceanBase Docker体验

通过 OceanBase Docker 容器,快速的体验 OceanBase 的 自动化部署过程,以及了解 OceanBase 集群安装成功后的目录特点和使用方法。

    1. Docker镜像
      1. 实验环境
        1. 实验环境说明

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

        1. 实验环境配置
  1. 设置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

  1. 建立用户,挂载文件系统(略)
  2. 修改limits限制、内核参数、关闭防火墙
  3. 网卡配置

cd /etc/sysconfig/network-scripts

cat ifcfg-enp1s0

  1. 配置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

  1. 下载对应版本 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

      1. Docker环境
        1. Docker环境
  1. 下载docker镜像

wget https://download.docker.com/linux/static/stable/aarch64/docker-24.0.6.tgz

  1. 解压下载好的压缩包

tar xf docker-24.0.6.tgz

  1. 移动解压文件到/usr/bin 目录中

mv docker/* /usr/bin/

  1. 启动docker

dockerd

        1. Docker安装
  1. 执行命令:docker pull oceanbase/obce-mini 下载所需镜像
  2. 启动docker命令:docker run -p 2881:2881 --name obce-mini -d -e OB_HOME_PATH="/root/obce/" -e OB_TENANT_NAME="obmysql" oceanbase/obce-mini
  3. 进入容器:docker exec -it obce-mini bash
    1. 使用 OBD 命令OceanBase 集群部署
      1. OBD安装
  1. 检查OBD安装包

下载地址https://open.oceanbase.com/softwareCenter/community

  1. 安装obd

Rpm --ivh ob-deploy-2.3.0-4.el7.aarch64.rpm

  1. 将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

      1. 集群配置文件

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 \<=========== 1. 1. 1. 安装集群 obd cluster deploy ob-cluster -c ./mini-distributed-with-obproxy-example.yaml 1. 1. 1. 启动集群 obd cluster start ob-cluste 1. 1. 创建业务租户、业务数据库和表 2. 创建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'; 1. 创建资源池 create resource pool mini_pool_t1 unit=mini ,unit_num=1; create resource pool mini_pool_t2 unit=mini ,unit_num=1; 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'; 1. 登陆业务租户 obclient --h192.168.0.2 -P2883 -uroot@test#admin:1673835228 --p 创建数据库 ![](https://file.jishuzhan.net/article/1705494780206649346/5bbd94a29d474a739ab31d743ff5b143.png) 创建表 ![](https://file.jishuzhan.net/article/1705494780206649346/a523f6acadfc4b3fa5c0e72a838f1c9f.png)

相关推荐
放情1 小时前
关于k8s的部署
java·docker·kubernetes
~卷心菜~1 小时前
【Kubernetes基础--Service深入理解】--查阅笔记4
笔记·容器·kubernetes
❀͜͡傀儡师2 小时前
Docker部署禅道21.6开源版本
运维·docker·容器
卷不动的打工仔3 小时前
Ubuntu利用docker搭建Java相关环境记录(二)
java·ubuntu·docker
wqq10273 小时前
docker Windows 存放位置
运维·docker·容器
卷不动的打工仔4 小时前
Ubuntu利用docker搭建Java相关环境问题记录
java·ubuntu·docker
掉头发的王富贵6 小时前
Dockerfile不会写?于是我花十分钟看了这篇文章
后端·docker·容器
IT闫7 小时前
【AI】——结合Ollama、Open WebUI和Docker本地部署可视化AI大语言模型
docker·语言模型·容器
梁萌7 小时前
06-DevOps-自动构建Docker镜像
运维·docker·devops
RedCong7 小时前
使用sealos部署kubernetes集群并实现集群管理
云原生·容器·kubernetes