海通证券实践: OceanBase 手动部署文档

2024年 5月 7日 54.3k 0

作者简介:胡晶玉,数据库工程师。

前言

这次体验最大的难点是在笔记本上运行docker。由于对docker不大熟悉,查阅了大量的资料。Observer启动由于内存不足而报错,在这个问题上卡了很长时间,幸运的是最后终于解决了,我把整个排除故障的过程写了下来,供大家参考。启动后的操作就非常简单了,网上资料也很多,就没有写太多。

硬件环境

 笔记本(8C16G),Windows 11。

练习过程

 1.安装docker desktop

从下面的链接进入下载界面,选择对应的版本。

 https://docs.docker.com/get-docker/ 

海通证券实践: OceanBase 手动部署文档-1

下载完成后直接安装即可。

海通证券实践: OceanBase 手动部署文档-2

在最后会出现下面的提示,说明还需要安装Linux Kernel。

海通证券实践: OceanBase 手动部署文档-3

我有个习惯,喜欢使用最新版本的软件,在安装完成后,按照如下设置,把windows的开发者选项打开,以及windows更新的高级选项中,打开接收其它Microsoft产品的更新。

海通证券实践: OceanBase 手动部署文档-4

海通证券实践: OceanBase 手动部署文档-5

Powershell中运行wsl –update,即可完成更新。

海通证券实践: OceanBase 手动部署文档-6

打开windows 应用商店,输入wsl2搜索,选择Ubuntu 进行安装。

海通证券实践: OceanBase 手动部署文档-7

安装完成后,启动docker desktop。

海通证券实践: OceanBase 手动部署文档-8

2.下载docker ob

Pull & run

docker pull obpilot/oceanbase-ce:latest

海通证券实践: OceanBase 手动部署文档-9

海通证券实践: OceanBase 手动部署文档-10

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

海通证券实践: OceanBase 手动部署文档-11

海通证券实践: OceanBase 手动部署文档-1

3.log in and start oceanbase-ce

docker exec -it oceanbase-ce bash
$obd cluster list
$obd cluster start obdemo
The password of admin is : adminPWD123 . You can install rpms by command sudo yum -y install xxxx .

海通证券实践: OceanBase 手动部署文档-13

海通证券实践: OceanBase 手动部署文档-14

这里提示内存不足,直觉就是去改配置文件,减少内存需求。使用obd cluster edit-config obdemo,进行修改,memory_limit   8G 4G ;修改是成功的。但是启动仍然报错。而且报错信息

海通证券实践: OceanBase 手动部署文档-15

这个错误信息借用网友的一个图(我忘记截图了)。查看observer.log,只是说配置参数不对,但是并没有说具体的错误信息。然后我重新编辑参数文件,将syslog_level改成trace.

海通证券实践: OceanBase 手动部署文档-16

海通证券实践: OceanBase 手动部署文档-17

海通证券实践: OceanBase 手动部署文档-18

再次重启后,查看observer.log,看到如下信息:

Invalid config, value out of range(name="memory_limit", value="4G", ret=-4147)

这个信息就比较明确了,memory_limit这个参数是不能改小的。从ob社区找到一段话大概率是你机器的硬件资源不够, ob 启动至少得2核8g, 8g 是完全给ob 使用的, 操作系统至少得有10g的资源,看来改参数的办法是行不通的。

看来想解决问题就要从资源入手。作业上说有12G内存的机器就可以完成实验,我的电脑有16G,理论上内存是够用的,为啥空闲内存只有6G呢。

这时我看我的机器可用内存一直有8G的空闲。分析原因应该是docker desktop没有充分利用机器的内存。继续查资料,终于找到了解决方案,就是对wal进行配置,让它获得更多的资源。

Win+R 然后输入 %UserProfile% 进入用户文件夹

然后编辑 .wslconfig 输入以下内容:

海通证券实践: OceanBase 手动部署文档-19

海通证券实践: OceanBase 手动部署文档-20

重启docker desktop。

修改docker启动命令:

docker run -itd -m 12G  -p 2881:2881 -p 2883:2883 --name oceanbase-ce obpilot/oceanbase-ce:latest
docker exec -it oceanbase-ce bash

查看内存,终于有了10G的空闲内存。

海通证券实践: OceanBase 手动部署文档-21

obd cluster start obdemo

启动成功。

海通证券实践: OceanBase 手动部署文档-22

4.创建租户等操作

连接默认租户:

obclient -h 127.0.0.1 -uroot@sys -prootPWD123 -P2881

创建资源规格:

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=100000,max_disk_size='10G';

创建资源池:

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

创建mysql租户:

create tenant t_mysql resource_pool_list=('min_pool'),primary_zone='RANDOM',charset='utf8' set ob_compatibility_mode='mysql';

连接mysql租户:

obclient -h 127.0.0.1 -P 2881 -uroot@t_mysql

创建数据库,表,插入数据。

终于大功告成了。

海通证券实践: OceanBase 手动部署文档-23

总结

成功的经验都是一样的,不多说了。总结一下遇到的问题及解决方案。

  1. 笔记本至少有10G的内存给docker desktop使用。
  2. Oceanbase最少需要10G内存,memory_limit是不能修改成低于8G的。
  3. Docker desktop使用的内存可以通过编辑c:\users\user\.wslconfig进行显示的指定,否则默认它只使用一半的内存。
  4. 可以通过修改syslog_level来看到更详细的出错信息。

结束语

OceanBase社区版入门到实战教程直播正在进行中~

快和小伙伴一起进群交流学习吧~

加入直播群方式一:

钉钉群号3255 4020

加入直播群方式二:

扫码下方二维码加入

海通证券实践: OceanBase 手动部署文档-24

相关文章

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

发布评论