作者简介:王芝超,数据库DBA。
1 安装 docker
1. 新环境安装 docker
yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install docker-ce docker-ce-cli containerd.io
2 拉取 OceanBase 镜像
安装 oceanbase-ce,拉取镜像并运行
拉取镜像
docker pull obpilot/oceanbase-ce:latest
运行
docker run -itd -m 10G --name oceanbase-ce obpilot/oceanbase-ce:latest docker ps | grep oceanbase-ce
登录并启动 oceanbase-ce
# 进入到容器内部
docker exec -it oceanbase-ce bash
# 获取集群信息
obd cluster list
3 启动OceanBase集群
# 启动集群
查看集群详细信息
obd cluster display obdemo
4 创建业务租户
创建 MySQL 租户
obclient -h127.0.0.1 -uroot@sys -P2881 -prootPWD123 -c -A oceanbase
修改默认的资源规格的最大和最小为一样的值:
alter resource unit sys_unit_config min_cpu=5,max_memory='2G',min_memory='2G',min_iops=10000;
4.1 创建新的资源规格
CREATE resource unit unit_wang max_cpu=2, min_cpu=2, max_memory='1G', min_memory='1G', max_iops=10000, min_iops=1000, max_session_num=1000000, max_disk_size='500G';
4.2 创建资源池
CREATE resource pool my_pool unit = 'unit_wang', unit_num = 1;
4.3 创建租户
create tenant tenant_wang resource_pool_list=('my_pool'), primary_zone='RANDOM',comment 'mysql tenant/instance', charset='utf8' set ob_tcp_invited_nodes='%', ob_compatibility_mode='mysql';
5 创建业务数据库和表
登录刚刚创建的业务租户tenant_wang
obclient -h 127.1 -uroot@tenant_wang#obce-single -P2883 -p -c -A
创建数据库
create database wang;
创建用户:
create user wang identified by "wang"; grant all privileges on wang.* to wang;
使用业务用户登录租户tenant_wang并创建业务表:
业务用户登录
obclient -h 127.1 -uwang@tenant_wang#obce-single -P2883 -p -c -A
创建业务表
CREATE TABLE `accountmoremenuinfo` ( `id` INT DEFAULT NULL, `labelid` INT DEFAULT NULL, `customname` VARCHAR(1000) DEFAULT NULL, `icon` VARCHAR(1000) DEFAULT NULL, `isshow` CHAR(1) DEFAULT NULL, `url` VARCHAR(1000) DEFAULT NULL, `linkmode` CHAR(1) DEFAULT NULL, `type` VARCHAR(10) DEFAULT NULL, `shoposition` CHAR(1) DEFAULT NULL, `sortnum` INT DEFAULT NULL, `sType` VARCHAR(255) DEFAULT NULL, `iconType` VARCHAR(100) DEFAULT NULL, `iconFrom` VARCHAR(100) DEFAULT NULL, `iconImgSrc` VARCHAR(300) DEFAULT NULL ) ; CREATE TABLE `actionexecutelog` ( `id` INT NOT NULL AUTO_INCREMENT COMMENT '自增主键', `ACTIONID` TEXT, `ACTIONTYPE` INT DEFAULT NULL, `DATASHOWCOUNT` INT DEFAULT NULL, `CREATEDATE` VARCHAR(80) DEFAULT NULL, `CREATETIME` VARCHAR(64) DEFAULT NULL, `ModifyDate` VARCHAR(80) DEFAULT NULL, `ModifyTime` VARCHAR(64) DEFAULT NULL, `clientip` VARCHAR(256) DEFAULT NULL, `execresult` INT DEFAULT NULL, `actiondbid` VARCHAR(1000) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_0826_actiondbid` (`actiondbid`), KEY `idx_0826_createDate` (`CREATEDATE`) ) ; CREATE TABLE `actionsetting` ( `id` INT NOT NULL AUTO_INCREMENT COMMENT '自增主键', `ACTIONNAME` VARCHAR(1000) DEFAULT NULL, `ACTIONCLASS` TEXT, `TYPENAME` VARCHAR(160) DEFAULT NULL, `ACTIONSHOWNAME` VARCHAR(1000) DEFAULT NULL, `CREATEDATE` VARCHAR(80) DEFAULT NULL, `CREATETIME` VARCHAR(64) DEFAULT NULL, `MODIFYDATE` VARCHAR(80) DEFAULT NULL, `MODIFYTIME` VARCHAR(64) DEFAULT NULL, `javacode` TEXT, `uuid` VARCHAR(50) DEFAULT '0', `subcompanyid` INT DEFAULT NULL, PRIMARY KEY (`id`) ) AUTO_INCREMENT=152 ;
6 避坑指南
6.1 Docker 问题
安装完 docker 后查找 OceanBase 镜像报错
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
原因:安装完成 docker 后未启动。启动 docker 服务后即可
service docker start
6.2 登录 OceanBase 时报错
Access denied for user
此处的集群名称不是 obdemo
集群名称需要登录租户查看参数 cluster 获取
6.3 修改资源单元规格时报错
ERROR 1064 (42000): Parse error
如果参数是用 M,G,T 等修饰,参数值需要为整数。或者转换成数字形式即可修改。
————————————————
附录:
练习题:
实践练习一(必选):OceanBase Docker 体验
实践练习二(必选):手动部署 OceanBase 集群
实践练习三(可选):使用OBD 部署一个 三副本OceanBase 集群
实践练习四(必选):迁移 MySQL 数据到 OceanBase 集群
实践练习五(可选):对 OceanBase 做性能测试
实践练习六(必选):查看 OceanBase 执行计划
还没交作业的小伙伴要抓紧啦!
可以免费带走 OBCP 考试券喔~~
方法一:完成四道必选练习
方法二:任意一道练习题 ➕ 结业考试超过80分
已经有很多同学抢先答题了,
加入钉钉群(群号3582 5151),和大家一起学习、交流~~
进群二维码: