作者:马顺华
从事运维管理工作多年,目前就职于六棱镜(杭州)科技有限公司,熟悉运维自动化、OceanBase部署运维、MySQL 运维以及各种云平台技术和产品。并已获得OceanBase认证OBCA、OBCP证书。
Docker单节点自动化部署OB集群
如果想从基本了解oceanbas建议:先装一个Docker测试OB。笔记本16g可以跑一个单副本OB集群。如果有64G内存的虚拟机,就可以测试集群了。高可用,扩容,多租户都可以体验。
机器信息
机器类型 | 主机配置 | 备注 |
---|---|---|
OS | Centos 7.4 | |
OceanBase | CPU:3C | 内存:15G |
- 机器内存15G 。 注意,OB可用内存不少于 10G。
- 机器磁盘目录空间不少于 10G 。少于 10G 后面使用可能会不是很方便。如遭遇空间目录问题。
- CPU 3个逻辑 CPU 。注意,CPU不少于2个逻辑 CPU 。
一、下载镜像并启动
1、搜索 oceanbase 相关镜像
[root@obtest ~]# docker search oceanbase
2、# 拉取 oceanbase 相关镜像
[root@obtest ~]# docker pull obpilot/oceanbase-ce
3、启动 OceanBase Docker 容器。
[root@obtest /]# docker run -itd -m 10G --name oceanbase-ce obpilot/oceanbase-ce:latest
4、检查ob是否启动
docker ps
二、进入容器查看OB进程
1、进入容器
[root@obtest /]# docker exec -it oceanbase-ce bash
2、查看 OBserver 集群节点进程
[admin@4e300e5af3f3 ~]$ ps -ef|grep observer
3、安装net-tools工具
yum install -y net-tools
注意:执行《netstat -ntlp 》前先安装yum install -y net-tools否刚会报错
4、查看进程监听端口。observer 进程会监听 2 个端口。一个 连接端口 2881, 一个 RPC 通信端口 2882 。
[admin@4e300e5af3f3 ~]$ netstat -ntlp
三、登录并启动oceanbase-ce
1、查看集群信息,常用命令 obd cluster list
[admin@4e300e5af3f3 ~]$ obd cluster list
2、# 启动集群
[admin@4e300e5af3f3 ~]$ obd cluster start obdemo
3、集群初始化
[admin@4e300e5af3f3 ~]$ obd cluster display obdemo
四、查看密码和集群名称
1、查看数据库默认密码:
[admin@4e300e5af3f3 ~]$ cd /home/admin/.obd/cluster/obdemo
[admin@4e300e5af3f3 obdemo]$ cat config.yaml |grep password
2、查看默认集群名:obce-single
[admin@4e300e5af3f3 obdemo]$ cat config.yaml |grep appname
五、创建MySQL租户
1、 使用obclient登录单节点observer
[admin@4e300e5af3f3 obdemo]$ obclient -h127.1 -uroot@sys -P2881 -prootPWD123 -c -A oceanbase
2、使用obproxy 2883端口登录
[admin@4e300e5af3f3 ~]$ obclient -h 127.1 -uroot@obmysql#obce-single -P2883 -p -c -A test
3、创建租户
MySQL [oceanbase]> alter resource unit sys_unit_config min_cpu=5;
MySQL [oceanbase]> CREATE resource unit S4C1G max_cpu=4, min_cpu=4, max_memory='1G', min_memory='1G', max_iops=10000, min_iops=1000, max_ssion_num=1000000, max_disk_size='1024G';
MySQL [oceanbase]> CREATE resource pool my_pool unit = 'S4C1G', unit_num = 1;
MySQL [oceanbase]> create tenant obmysql resource_pool_list=('my_pool'), primary_zone='RANDOM',comment 'mysql tenant/instance', charset='f8' set ob_tcp_invited_nodes='%', ob_compatibility_mode='mysql';
4、创建数据库
MySQL [test]> create database db1 ;
5、创建业务用户
MySQL [test]> create user user1@'%' identified by 'user1' ;
MySQL [test]> grant all privileges on *.* to user1@'%';
6、使用业务用户 user1 登录 obmysql 租户
[admin@4e300e5af3f3 ~]$ obclient -h 127.1 -uuser1@obmysql#obce-single -P2883 -puser1 -c -A db1
7、创建业务数据表
MySQL [db1]> create table t1(id int) ;
MySQL [db1]> insert into t1 values(1) ;
MySQL [db1]> select * from t1 ;