OceanBase Docker 体验

杨凯同学 2022-02-26
186

一、Windows 10 安装docker

1.1 下载docker

https://hub.docker.com/editions/community/docker-ce-desktop-windows

1.2 安装docker

1.3 在Windows 功能中开启CPU虚拟化功能

image.png

1.4 WSL2 安装

1.5 docker 启动报错,处理办法如下

需要使用管理员运行 powershell,然后执行
PS > netsh winsock reset

1.6 重启计算机

1.7 设置 docker registry 镜像仓库注册地址

image.png

1.8 重启dokcer

二、下载OceanBase 的Docker镜像

2.1 搜索oceanbase的可用镜像

image.png

2.2 下载镜像

image.png![image.png]

2.3 查看镜像

image.png

三、使用 OBD 命令完成后续的 OceanBase 集群部署。

3.1 启动OceanBase容器

docker run -p 2881:2881 -p 2883:2883 --name yangkaiobcp -itd -m 10G obpilot/oceanbase-ce:latest
16458624471.png

3.2 进入容器并查看集群

image.png

3.3 启动集群

知识点:
OBServer:运行 OBServer 进程的物理机。一台物理机上可以部署一个或者多个 OBServer。在 OceanBase 内部,server 由其 IP 地址和服务端口唯一标识。
OBProxy:应用访问数据库使用兼容 MySQL/Oracle 的客户端来访问 OceanBase, OceanBase 以服务的形式提供给应用访问。OBProxy 就是满足此种需求,方便应用使用兼容 MySQL/Oracle 的客户端访问 OceanBase,它接收客户端的应用请求,并转发给 OBServer,然后 OBServer 将数据返回给 OBProxy, OBProxy 将数据转发给应用客户端。

通过启动集群可以发现oceanbase docker会自动部署了1台observer和1台obproxy,如下图:
image.png

image.png

3.4 获取租户名、集群名称、登录密码

image.png

3.5 登录

image.png

四、创建一个业务租户、一个业务数据库,以及一些表等。

租户知识点:
OceanBase集群将一组机器的资源能力聚合为一个大的资源池,然后从中划分出不同大小资源的租户给业务使用。业务使用的是OceanBase租户。
租户就是通常说的实例。不过OceanBase租户有两种兼容模式可选(ORACLE或MySQL),租户创建的时候选中一种兼容模式。业务方使用租户的体验就跟使用ORACLE或者MySQL实例差不多。
业务方感知不到OceanBase集群,只能接触到租户(实例)。如果是ORACLE租户,可以在里面创建多个schema(对应多个用户),指代数据库时需要指定schema名称;如果是MySQL租户,可以在里面创建多个database。指代数据库时就需要指定具体的database名称。

租户创建流程:定义资源单元规格 -> 创建资源池->创建租户

4.1 查看OB集群所有节点信息

image.png
查看OceanBase集群可用资源情况。
image.png
image.png
由上面可以看出,oceanbase默认sys租户使用了1-5个CPU,1个内存。大概还可以分配 4个CPU,内存无法分配

4.2 修改参数max_memory,再次查看如下

image.png

4.3 创建资源单元规格 -> 创建资源池->创建租户

CREATE resource unit yk1G max_cpu=2, min_cpu=1, max_memory=‘1G’, min_memory=‘1G’, max_iops=10000, min_iops=1000, max_session_num=10000, max_disk_size=‘1G’;

CREATE resource pool yk_pool unit = ‘yk1G’, unit_num = 1;

create tenant yangkai resource_pool_list=(‘yk_pool’), primary_zone=‘RANDOM’,comment ‘mysql tenant/instance’, charset=‘utf8’ set ob_tcp_invited_nodes=’%’, ob_compatibility_mode=‘mysql’;
image.png
image.png

4.4 用新建的租户yangkai登录,并创建数据库ykdb、创建表、插入数据

image.png
image.png
image.png

五、实验总结

通过本次实践收获颇多,总结如下:
1.学会了windows 如何安装docker和报错处理方法
2.学会了docker的基本使用
3.了解了oceanbase的体系架构
4.OBD工具部署单节点OB集群环境。
5.obclient工具使用
6.明白什么是OBServer和OBProxy
7.了解是租户的概念和创建流程
总体上来说,主要对oceanbase有了一个简单入门级的了解,争取下个月拿到OBCP的认证。最后祝愿oceanbase 早日打败Oracle,占据数据库排行榜第一名。