暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oceanbase docker安装体验

原创 null 2023-08-31
589

oceanbase 社区练习一 之 docker安装体验

1. 配置环境

官方建议的宿主机的可用资源满足下面要求:

  • 1.逻辑 CPU 不少于4个

  • 2.可用内存不少于 10G,并且 docker 容器内存限制不少于10G

  • 3.空间不少于10G

本人虚拟机配置如下:


2. 安装docker

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum install docker    

service docker start  #启动docker


3.安装、启动oceanbase镜像

1.创建admin普通用户

useradd admin

passwd admin

groupadd docker

gpasswd -a admin docker #admin加入到docker组

newgrp docker #更新用户组 

su - admin

docker ps #测试docker命令是否可以(不可以的话,重新切换下用户,或者重启下操作系统)


[admin@te ~]$ docker ps                ##出现如下提示则可正常使用
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES


注:上述添加用户组的操作,是为了让admin用户可以正常使用docker 拉取镜像,否则会有如下权限提示

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/containers/json: dial unix /var/run/docker.sock: connect: permission denied

2.拉取镜像

[admin@te~] docker pull obpilot/oceanbase-ce:latest

参考官方地址:ttps://ask.oceanbase.com/t/topic/508


[admin@te~] docker images   #查看镜像,确认存在


3.启动oceanbase镜像

[admin@te~]docker run -itd -m 10G --name oceanbase-ce obpilot/oceanbase-ce:latest


[admin@te ~]$ docker container ls   #检查运行状态

4.启动oceanbase数据库

1.进入容器内部

[admin@te ~]$ docker exec -it oceanbase-ce bash
[admin@e935701ca3cc ~]$     ##成功登录进来了

#容器里的admin用户密码是adminPWD123


2.查看oceanbase状态

 [admin@e935701ca3cc ~]$ obd cluster list



3.启动oceanbase

[admin@e935701ca3cc ~]$ obd cluster start obdemo


#哦吼,observer和obproxy都起来了,成功启动!


4.看下启动前后的内存和存储占用情况

存储:

[root@te ~]# df -h
文件系统                        容量  已用  可用 已用%   挂载点
/dev/mapper/rhel-root 57G  29G  29G  51%    /

/dev/mapper/rhel-root 57G  39G  19G  68%   /

内存:

[root@te ~]# free -h
         total   used     free      shared    buff/cache     available

Mem: 9.6G  175M    9.2G     11M        209M            9.2G

Mem: 9.6G   2.7G     5.6G      11M       1.3G              6.5G

结果:存储占用了10G,内存占用了不到3G


5.创建相关对象

1.登录数据库,检查版本

[admin@e935701ca3cc ~]$ obclient -h127.0.0.1 -P2881 -uroot -prootPWD123 -Doceanbase -A -c

注:登录后显示的版本是4.0,通过select version()检查也是4.0,后续创建租户相关(尤其是资源单元),创建语法中的部分属性相对视频课程/实验课件有出入(这些都是3.X的语法,且obcp的考试也是3.x)4.0版本语法改进了,如果提示语法不对,请去官方搜索指定的语法格式再进行尝试


2.创建租户

上述连接给的建议配置如下:
alter resource unit sys_unit_config min_cpu=5;
CREATE resource unit S4C1G max_cpu=4, min_cpu=4, max_memory='1G', min_memory='1G', max_iops=10000, min_iops=1000, max_session_num=1000000, max_disk_size='1024G';
CREATE resource pool my_pool unit = 'S4C1G', unit_num = 1;
create tenant obmysql resource_pool_list=('my_pool'), primary_zone='RANDOM',comment 'mysql tenant/instance', charset='utf8' set ob_tcp_invited_nodes='%', ob_compatibility_mode='mysql'; exit;


1.设置参数

alter resource unit sys_unit_config min_cpu=5;  

ERROR 1210 (HY000): Incorrect arguments to MIN_CPU, MIN_CPU is greater than MAX_CPU

obclient [oceanbase]> select * from __all_unit_config;
+-------------------------------+-------------------------------+----------------+-----------------+-----------+---------+----------------+---------------  +------------+----------+-------------+
| gmt_create                             | gmt_modified                       | unit_config_id | name                  | max_cpu | min_cpu | memory_size  | log_disk_size    |  max_iops  | min_iops | iops_weight |
+-------------------------------+-------------------------------+----------------+-----------------+-----------+---------+----------------+----------------+------------+----------+-------------+
| 2023-08-31 11:40:19.322622 | 2023-08-31 11:40:19.322622| 1                      | sys_unit_config |       1        |        1      | 2147483648   | 2147483648     |  10000       | 10000      |                 1 |
+-------------------------------+-------------------------------+----------------+-----------------+-----------+---------+----------------+----------------+------------+-----------+-------------+

# 检查sys的配置,此时最大最小都是1,于是都改成4



2.创建资源单元

obclient [oceanbase]>

CREATE resource unit S4C1G max_cpu=4, min_cpu=4, max_memory='1G', min_memory='1G', max_iops=10000, min_iops=1000, max_session_num=1000000, max_disk_size='1024G';

#注:因为4.0语法变更,故调整到如下语句

obclient [oceanbase]> CREATE resource unit S4C1G max_cpu=4, min_cpu=4, memory_size='1G', max_iops=1024, min_iops=1024, log_disk_size='10G';

变更项如下:

1>max_memory/min_memory 变更为 memory_size

2>max_session_num参数取消了

3>max_disk_size参数取消了

4>新增log_disk_size参数

5>max_iops和min_iops的值最小是1024


obclient [oceanbase]> select * from __all_unit_config;  #检查资源单元配置,确认已创建



3.创建资源池

obclient [oceanbase]> CREATE resource pool my_pool unit = 'S4C1G', unit_num = 1;


#ERROR 1235 报错了又,接着查吧

obclient [oceanbase]> SELECT * FROM oceanbase.__all_virtual_sys_parameter_stat where name like '__min_full_resource_pool_memory';


#memory_size配置的小了,删除重新创建;

obclient [oceanbase]> DROP resource unit S4C1G ;

obclient [oceanbase]> CREATE resource unit S4C1G max_cpu=4, min_cpu=4, memory_size='2G', max_iops=1024, min_iops=1024, log_disk_size='10G';

obclient [oceanbase]> CREATE resource pool my_pool unit = 'S4C1G', unit_num = 1;

#ERROR 4733,又报错,看样子是磁盘空间的问题,给log_disk_size暂时调小一些,根据报错提示的视图查了查,咱也设置成2G先



obclient [oceanbase]> DROP resource unit S4C1G ;

obclient [oceanbase]> CREATE resource unit S4C1G max_cpu=4, min_cpu=4, memory_size='2G', max_iops=1024, min_iops=1024, log_disk_size='2G';

obclient [oceanbase]> CREATE resource pool my_pool unit = 'S4C1G', unit_num = 1;  #创建成功了



4.创建租户obmysql

obclient [oceanbase]>

create tenant obmysql resource_pool_list=('my_pool'), primary_zone='RANDOM',comment 'mysql tenant/instance', charset='utf8' set ob_tcp_invited_nodes='%', ob_compatibility_mode='mysql'; exit;

##这一步时间有点长,耐心等待下,15S多,创建完成了。


检查一下,的确创建成功了



5.登录租户obmysql

[admin@e935701ca3cc ~]$ obclient -h127.0.0.1 -P2881 -uroot@obmysql -p -Doceanbase -A -c


#注意,新建的租户是相当于一个新的实例,是没有密码的,不要用旧的密码去登录,直接回车即可,不然会报错哈



3.创建数据库

obclient [oceanbase]> show databases;
+--------------------+
| Database                |
+--------------------+
| information_schema |
| mysq                    l  |
| oceanbase              |
| test                         |
+--------------------+
4 rows in set (0.012 sec)


obclient [oceanbase]> create database my_ob;
Query OK, 1 row affected (0.042 sec)

obclient [oceanbase]> show create database my_ob;
+----------+-------------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------------+
| my_ob | CREATE DATABASE `my_ob` DEFAULT CHARACTER SET = utf8mb4 REPLICA_NUM = 1 |
+----------+-------------------------------------------------------------------------+
1 row in set (0.004 sec)

4.创建数据库表

obclient [my_ob]> use my_ob;

obclient [my_ob]> create table test(id int primary key ,name varchar(32) );

obclient [my_ob]> insert into test values(1,'张三'),(2,'李四 ');

obclient [my_ob]> select * from test;
+----+--------+
| id    | name |
+----+--------+
| 1     | 张三   |
| 2     | 李四   |
+----+--------+
ok,一切正常。

docker安装体验完成,总共遇到了3个报错,新手上路百度为主!考试的话是基于3.x的,问了下官方的小助手,说是今年会出4.X,最近想考的还是先拿着3.X的版本练手吧








「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论