操作系统环境
[root@rocky8 ~]# cat /etc/redhat-release Rocky Linux release 8.7 (Green Obsidian) [root@rocky8 ~]# free -h total used free shared buff/cache available Mem: 15Gi 187Mi 15Gi 16Mi 271Mi 14Gi Swap: 2.1Gi 0B 2.1Gi [root@rocky8 ~]# lscpu |grep CPU CPU op-mode(s): 32-bit, 64-bit CPU(s): 4 On-line CPU(s) list: 0-3 CPU family: 6 CPU MHz: 2419.202 NUMA node0 CPU(s): 0-3
安装docker
删除旧的版本
如果操作安装有自带的版本,请先删除。
[root@rocky8 ~]# yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
通过repo安装docker
配置repo
#安装yum工具
[root@rocky8 ~]# yum install -y yum-utils
#配置docker repo
[root@rocky8 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#安装docker-ce
[root@rocky8 ~]# yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动docker
systemctl start docker
安装OceanBase
搜索 OceanBase 数据库相关镜像
[root@rocky8 ~]# docker search oceanbase NAME DESCRIPTION STARS OFFICIAL oceanbase/oceanbase-ce OceanBase is an open-source, distributed HTA… 24 oceanbasedev/ob-operator test repository for [ob-operator](https://gi… 0 oceanbasedev/oceanbase-cn 0 oceanbase/ob-operator Kubernetes operator for OceanBase 0 oceanbasedev/obagent 0 oceanbase/obce-mini obce-mini is a mini standalone test image fo… 5 oceanbase/oceanbase-xe OceanBase Database 2.2 Express Edition 4 oceanbase/miniob miniob database competition 2 oceanbase/obagent 0 oceanbase/obce-operator obce-operator 1 oceanbasedev/oceanbase-chart 0 oceanbase/oceanbase-cloud-native 0 oceanbase/obproxy-ce 0 oceanbasedev/obproxy-ce 0 oceanbase/ocp-ce OceanBase Cloud Platform (OCP) Community Edi… 0 oceanbasedev/sealer-ob 0 oceanbase/odc ODC is an open-source, enterprise-grade data… 0 oceanbase/kube-rbac-proxy 0 oceanbase/centos7 0 obpilot/oceanbase-ce 3 steps to run an OceanBase-CE docker in you… 4 oceanbase/cert-manager-webhook 0 apecloud/oceanbase 0 oceanbase/cert-manager-cainjector 0 oceanbase/cert-manager-controller 0 oceanbase/ob-configserver 0
拉取 OceanBase 数据库最新镜像
[root@rocky8 ~]# docker pull oceanbase/oceanbase-ce
Using default tag: latest
latest: Pulling from oceanbase/oceanbase-ce
bf5ec1942180: Pull complete
e4adbb3c0159: Pull complete
8cd8b592c1a9: Pull complete
b2b53d02ed2d: Pull complete
3c52e3b5bf21: Pull complete
996389242088: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:a6ac2588038b89a3eab5c7ab705cd55c82cc3b448d964becd149e1f371a35ac3
Status: Downloaded newer image for oceanbase/oceanbase-ce:latest
docker.io/oceanbase/oceanbase-ce:lates
#拉取指定版本
docker pull oceanbase/oceanbase-ce:3.1.4
启动 OceanBase 数据库实例
# 根据当前容器部署最大规格的实例
docker run -p 2881:2881 --name obstandalone -e MINI_MODE=0 -d oceanbase/oceanbase-ce:3.1.4
## 部署 mini 的独立实例
docker run -p 2881:2881 --name obstandalone -e MINI_MODE=1 -d oceanbase/oceanbase-ce:3.1.4
查看日志,返回 boot success!,则表示启动成功
[root@rocky8 ~]# docker logs obstandalone | tail -1 Package obagent-4.2.2-100000042024011120.el7 is available. [root@rocky8 ~]# docker logs obstandalone | tail -1 Connect to observer ok [root@rocky8 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2787bb3e6b2f oceanbase/oceanbase-ce "/bin/sh -c _boot" About a minute ago Up About a minute 0.0.0.0:2881->2881/tcp obstandalone
登录并启动oceanbase-ce
# 进入到容器内部-bash
[root@rocky8 ~]# docker exec -it obstandalone bash
# 查看集群信息
[root@2787bb3e6b2f ~]# obd cluster list
+------------------------------------------------------------+
| Cluster List |
+-----------+------------------------------+-----------------+
| Name | Configuration Path | Status (Cached) |
+-----------+------------------------------+-----------------+
| obcluster | /root/.obd/cluster/obcluster | running |
+-----------+------------------------------+-----------------+
Trace ID: 14c3fc30-e345-11ee-b6be-0242ac110002
If you want to view detailed obd logs, please run: obd display-trace 14c3fc30-e345-11ee-b6be-0242ac110002
# 获取集群详细信息
[root@2787bb3e6b2f ~]# obd cluster display obcluster
+------------------------------------------------------------+
| Cluster List |
+-----------+------------------------------+-----------------+
| Name | Configuration Path | Status (Cached) |
+-----------+------------------------------+-----------------+
| obcluster | /root/.obd/cluster/obcluster | running |
+-----------+------------------------------+-----------------+
[root@f454e5952328 ~]# obd cluster display obcluster
Get local repositories and plugins ok
Open ssh connection ok
Cluster status check ok
Connect to observer ok
Wait for observer init ok
+---------------------------------------------+
| observer |
+-----------+---------+------+-------+--------+
| ip | version | port | zone | status |
+-----------+---------+------+-------+--------+
| 127.0.0.1 | 3.1.4 | 2881 | zone1 | active |
+-----------+---------+------+-------+--------+
连接 OceanBase 数据库实例
oceanbase-ce 镜像安装了 OceanBase 数据库客户端 OBClient,并提供了默认连接脚本 ob-mysql
docker exec -it obstandalone ob-mysql sys # 使用 root 用户登录集群的 sys 租户
docker exec -it obstandalone ob-mysql root # 使用 root 用户登录集群的 test 租户
docker exec -it obstandalone ob-mysql test # 使用 test 用户登录集群的 test 租户
[root@rocky8 ~]# docker exec -it obstandalone ob-mysql sys login as root@sys Command is: obclient -h127.1 -uroot@sys -A -Doceanbase -P2881 Welcome to the OceanBase. Commands end with ; or \g. Your OceanBase connection id is 3221495704 Server version: OceanBase_CE 4.2.2.0 (r100010012024022719-c984fe7cb7a4cef85a40323a0d073f0c9b7b8235) (Built Feb 27 2024 19:20:54) Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. obclient [oceanbase]>
- 使用obclient连接数据库
docker exec -it obstandalone bash obclient -uroot@sys -h127.0.0.1 -P2881 -c -A Oceanbase
创建MySQL租户
-
命令汇总
--创建资源单元 S4C1G create resource unit S4C1G max_cpu=4,min_cpu=1,max_memory='1G',min_memory='1G',max_iops=1000,min_iops=1000,max_session_num=1000000,max_disk_size='10G'; --创建资源池 poo1 create resource pool poo1 unit='S4C1G' ,unit_num=1; --创建租户 mysqlTest create tenant mysqlTest resource_pool_list=('poo1'),primary_zone='RANDOM',charset='utf8' set ob_tcp_invited_nodes='%',ob_compatibility_mode='mysql';创建数据库
--使用obclient 登录数据库 obclient -uroot@mysqlTest -h127.0.0.1 -P2881 --创建数据库、表 create database testdb; use testdb;创建业务用户
obclient [testdb]> create user user1@'%' identified by 'user1' ; Query OK, 0 rows affected (0.093 sec) obclient [testdb]> grant all privileges on *.* to user1@'%'; Query OK, 0 rows affected (0.067 sec)建业务表
# 使用业务用户 user1 登录 mysqlTest 租户 通过直连方式 [root@f454e5952328 ~]# obclient -h127.0.0.1 -uuser1@mysqlTest -P2881 -puser1 -c -A testdb Welcome to the OceanBase. Commands end with ; or \g. Your OceanBase connection id is 3221488182 Server version: 5.7.25 OceanBase 3.1.4 (r10000092022071511-b4bfa011ceaef428782dcb65ae89190c40b78c2f) (Built Jul 15 2022 11:45:14) Copyright (c) 2000, 2022, OceanBase and/or its affiliates. All rights reserved. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. obclient [testdb]> create table t1(id int) ; Query OK, 0 rows affected (0.047 sec) obclient [testdb]> insert into t1 values(1) ; Query OK, 1 row affected (0.008 sec) obclient [testdb]> select * from t1 ; +------+ | id | +------+ | 1 | +------+ 1 row in set (0.001 sec) obclient [testdb]>参考:通过 OBClient 连接 OceanBase 租户-OceanBase 数据库-OceanBase文档中心-分布式数据库使用文档
命令汇总
--查看租户与pool池
SELECT tenant_id,tenant_name,resource_pool_name FROM oceanbase.gv$unit;
--查看zone,租户资源分配
select a.zone,concat(a.svr_ip,':',a.svr_port) observer, cpu_total, cpu_assigned, (cpu_total-cpu_assigned) cpu_free, mem_total/1024/1024/1024 mem_total_gb, mem_assigned/1024/1024/1024 mem_assign_gb, (mem_total-mem_assigned)/1024/1024/1024 mem_free_gb from __all_virtual_server_stat a join __all_server b on (a.svr_ip=b.svr_ip and a.svr_port=b.svr_port) order by a.zone, a.svr_ip;
select * from __all_unit_config;
select tenant_id,tenant_name,max_cpu,min_cpu,max_memory/1024/1024/1024 from v$unit;
select zone,cpu_total,cpu_assigned,mem_total/1024/1024/1024,mem_assigned/1024/1024/1024 from __all_virtual_server_stat;
--立即删除租户
DROP TENANT test FORCE;
--删除pool
DROP RESOURCE POOL test_pool;
--删除unit
drop resource unit test_unit;
参考资料:docker 安装 https://docs.docker.com/engine/install/centos/#installation-methods
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




