OceanBase从入门到实战

2024年 5月 7日 77.9k 0

简介:目前在银行的数据库团队做开发和运维工作。一起在实战中演练,在交流中学习吧!

实战1: OceanBase Docker 体验

1.1 环境准备(Win10 8G内存 256G存储SSD)

   1.1.1 安装linux的Windows子系统(Ubuntu 18.04 LTS)

详见:https://docs.microsoft.com/zh-cn/windows/wsl/install-manual

OceanBase从入门到实战-1

   1.1.2 安装docker

OceanBase从入门到实战-2

1.2 下载并运行Docker 镜像

1.2.1 搜索镜像资源 docker search oceanbase   

 OceanBase从入门到实战-3

1.2.2 拉取ob镜像 docker pull obpilot/oceanbase-ce

OceanBase从入门到实战-4

1.2.3 运行镜像

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

OceanBase从入门到实战-5

1.2.4 以bash方式进入容器中 

docker exec -it oceanbase-ce bash

OceanBase从入门到实战-6

1.3 OBD 命令部署OB集群

1.3.1 obd cluster list 

OceanBase从入门到实战-7

1.3.2 obd cluster start obdemo

OceanBase从入门到实战-8

obd cluster edit-config obdemo

修改:

OceanBase从入门到实战-9

重启之后,安装ob,obproxy完成,但是连接不上ob数据库。

OceanBase从入门到实战-10

再次重启,health check报错。

OceanBase从入门到实战-11

尝试修改告警项 fs.aio-max-nr = 1048576,重启服务

OceanBase从入门到实战-12

报错依旧,health check报错(没有具体报错项),observer日志如下。

OceanBase从入门到实战-13

   初步判断应该是当前win10笔记本硬件资源或系统变量设置存在问题,没有符合ob启动参数校验机制,虽然尝试调整了obd cluster edit-config的config.yaml文件中的cpu,内存,存储,工作线程等参数变量,但依然报错。同时obd的observer program health 信息较少,没有输出详细的报错信息,无法继续排查。暂时,只能换成服务器资源进行后续练习。

1.4 创建业务租户、数据库、表

OceanBase 数据库是多租户的分布式数据库,租户(tenant)使用的资源建立在资源池(resource pool)上。资源池包含了资源单元(resource unit),而资源单元规定了具体资源的量化(如 CPU、Memory、 IOPS 、session数量、Disk_Size)。创建租户前,必须规定租户使用的资源范围,资源池和资源单元就是为了满足租户资源隔离和负载均衡而存在的。租户的概念类似于传统数据库的数据库实例。租户下可以建立数据库,在租户的数据库下可以建立表。

1.4.1 创建租户

A、创建资源单元1C1G

create resource unit S1C1G  max_cpu=1,min_cpu=1,max_memory='1G',min_memory='1G',max_iops=1000,min_iops=1000,max_session_num=1000000,max_disk_size='10G';

B、创建资源池

create resource pool poo1 unit='S1C1G' ,unit_num=1;

OceanBase从入门到实战-14

C、创建租户

create tenant mysqlTest resource_pool_list=('poo1'),primary_zone='RANDOM',charset='utf8' set ob_tcp_invited_nodes='%',ob_compatibility_mode='mysql';

1.4.2 创建数据库、表

mysql -h xxxx  -P 2883 -uroot@mysqlTest

OceanBase从入门到实战-15

create database testdb;
use testdb;
create table test1(id int primary key,name varchar(256),age int,sex int);

OceanBase从入门到实战-16

desc test1;
insert into test1 values(1,'zhangsan',25,0),(2,'lisi',26,0),(3,'xiaoli',22,1);

OceanBase从入门到实战-17

select * from test1;

OceanBase从入门到实战-18

1.5 总结

    本次主要体验的是使用docker镜像通过obd快速部署ob数据库,虽然镜像屏蔽了系统软件参数对ob的影响,但受限于硬件资源无法达到obd默认配置要求,在win10笔记本上启动失败,异常日志信息暴露较少,对于排错来说不是很方便。更换成服务器之后,启动配置还是挺顺利的,但内网连接不上外网,文件传输也挺麻烦的。

联系我们

欢迎广大 OceanBase 爱好者、用户和客户随时与我们联系、反馈,方式如下:

社区版官网论坛

社区版项目网站提 Issue

钉钉群:33254054

OceanBase从入门到实战-19

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论