OceanBase Docker 体验
安装前准备
使用docker安装ob
请确保宿主机的可用资源满足下面要求:
逻辑 CPU 不少于4个
可用内存不少于 10G,并且 docker 容器内存限制不少于10G
空间不少于10G
安装docker
配置docker安装的repo包
[root@db~]#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
使用yum 安装docker,出现需要依赖包的问题,这时我配置的是远端的源来获取对应的依赖包。
[root@db ~]# yum install docker-ce docker-ce-cli containerd.io
[root@db ~]# cat /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
[centos-extras]
name=Centos extras - $basearch
baseurl=http://mirror.centos.org/centos/7/extras/x86_64
enabled=1
gpgcheck=0
后续再通过yum进行安装即可。
Doceker常用命令
docker version #显示docker的版本信息
docker info #显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help #帮助命令
docker镜像查看
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
# 解释
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的创建时间
SIZE 镜像的大小
#可选项
Options:
-a, --all # 列出所有的镜像
-q, --quiet # 只显示镜像的ID
docker下载镜像
docker pull 镜像名[:tag] #下载镜像
查找镜像
docker search oceanbase
docker删除镜像
docker rm -f 镜像id #删除指定的镜像
docker rm -f 镜像id 容器id 容器id #删除多个指定的镜像
docker rm -f $(docker images -aq) # 删除全部镜像
docker运行启动镜像
docker run [可选参数] image
#参数说明
--name="Name" 容器名字 tomcat01 tomcat02 用来区分容器
-d 以后台方式运行,ja nohub
-it 使用交互模式运行,进入容器查看内容
-p 指定容器的端口 -p 8080:8080
-p 主机端:容器端口 主机端口映射到容器端口 (常用)
列出当前正在运行的容器
docker ps 命令
-a #列出当前正在运行的容器+带出历史运行过的容器
-n=? #显示最近创建的容器
-q #只显示容器的编号
docker start 容器id #启动容器
docker restart 容器id #重起容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
安装OB
可以先通过docker search搜索对应的镜像,然后选择一个镜像进行下载
[root@db ~]# docker pull obpilot/oceanbase-ce
Using default tag: latest
latest: Pulling from obpilot/oceanbase-ce
7a0437f04f83: Pull complete
615dc48ac9f1: Pull complete
b10c1cdae3af: Pull complete
4f4fb700ef54: Pull complete
c0f6c94a6a6a: Pull complete
792630f35e24: Pull complete
Digest: sha256:7ac28415cf27ba19cb47acb67a55ebf9848ad73a63d80b7e2e85d653233dbaeb
Status: Downloaded newer image for obpilot/oceanbase-ce:latest
docker.io/obpilot/oceanbase-ce:latest
启动镜像,指定镜像名称及内存配置大小
[root@db ~]# docker run -itd -m 10G --name oceanbase-ce obpilot/oceanbase-ce:latest
b8cf44f9d7d2e955d5c37be763b77ece9e8b08f5c711934581bd207d0489c663
查看镜像进程信息
[root@db ~]# docker ps | grep oceanbase-ce
b8cf44f9d7d2 obpilot/oceanbase-ce:latest "/bin/bash" 31 seconds ago Up 30 seconds 2881/tcp, 2883/tcp oceanbase-ce
[root@db ~]#
进入到docker内部容器
[root@db ~]# docker exec -it oceanbase-ce bash
[admin@b8cf44f9d7d2 ~]$
列出当前集群状态信息
[admin@b8cf44f9d7d2 ~]$ obd cluster list
+------------------------------------------------------------+
| Cluster List |
+--------+---------------------------------+-----------------+
| Name | Configuration Path | Status (Cached) |
+--------+---------------------------------+-----------------+
| obdemo | /home/admin/.obd/cluster/obdemo | deployed |
+--------+---------------------------------+-----------------+
启动集群
[admin@b8cf44f9d7d2 ~]$ obd cluster start obdemo
Get local repositories and plugins ok
Open ssh connection ok
Cluster param config check ok
Check before start observer ok
[WARN] (127.0.0.1) The recommended number of open files is 655350 (Current value: 65536)
Check before start obproxy ok
Start observer ok
observer program health check ok
Connect to observer ok
Initialize cluster
Cluster bootstrap ok
Wait for observer init ok
+---------------------------------------------+
| observer |
+-----------+---------+------+-------+--------+
| ip | version | port | zone | status |
+-----------+---------+------+-------+--------+
| 127.0.0.1 | 3.1.1 | 2881 | zone1 | active |
+-----------+---------+------+-------+--------+
Start obproxy ok
obproxy program health check ok
Connect to obproxy ok
Initialize cluster
+---------------------------------------------+
| obproxy |
+-----------+------+-----------------+--------+
| ip | port | prometheus_port | status |
+-----------+------+-----------------+--------+
| 127.0.0.1 | 2883 | 2884 | active |
+-----------+------+-----------------+--------+
obdemo running
[admin@b8cf44f9d7d2 ~]$
显示对应集群状态信息
[admin@b8cf44f9d7d2 ~]$ obd cluster display obdemo
Get local repositories and plugins ok
Open ssh connection ok
Cluster status check ok
Connect to observer ok
Wait for observer init ok
+---------------------------------------------+
| observer |
+-----------+---------+------+-------+--------+
| ip | version | port | zone | status |
+-----------+---------+------+-------+--------+
| 127.0.0.1 | 3.1.1 | 2881 | zone1 | active |
+-----------+---------+------+-------+--------+
Connect to obproxy ok
+---------------------------------------------+
| obproxy |
+-----------+------+-----------------+--------+
| ip | port | prometheus_port | status |
+-----------+------+-----------------+--------+
| 127.0.0.1 | 2883 | 2884 | active |
+-----------+------+-----------------+--------+
新增租户
进入sys租户并且配置资源池新增普通租户
[admin@b8cf44f9d7d2 ~]$ obclient -h127.1 -uroot@sys#obce-single -P2883 -prootPWD123 -c -A oceanbase
Welcome to the OceanBase. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.25 OceanBase 3.1.1 (r4-8c615943cbd25a6f7b8bdfd8677a13a21709a05e) (Built Oct 21 2021 10:52:05)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [oceanbase]> alter resource unit sys_unit_config min_cpu=5;
Query OK, 0 rows affected (0.007 sec)
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_session_num=1000000, max_disk_size='1024G';
Query OK, 0 rows affected (0.031 sec)
MySQL [oceanbase]> CREATE resource pool my_pool unit = 'S4C1G', unit_num = 1;
Query OK, 0 rows affected (0.042 sec)
MySQL [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';
Query OK, 0 rows affected (0.981 sec)
MySQL [oceanbase]>
使用普通租户连接数据库进去初始密码为空
[admin@b8cf44f9d7d2 ~]$ obclient -h 127.1 -uroot@obmysql#obce-single -P2883 -p -c -A test
Enter password:
Welcome to the OceanBase. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.6.25 OceanBase 3.1.1 (r4-8c615943cbd25a6f7b8bdfd8677a13a21709a05e) (Built Oct 21 2021 10:52:05)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [test]> show databases;
+--------------------+
| Database |
+--------------------+
| oceanbase |
| information_schema |
| mysql |
| test |
+--------------------+
4 rows in set (0.003 sec)
创建普通业务用户并赋权
MySQL [test]> create user user1 identified by 'user1';
Query OK, 0 rows affected (0.033 sec)
MySQL [test]> select user,host from mysql.user;
+------------+------+
| user | host |
+------------+------+
| root | % |
| ORAAUDITOR | % |
| user1 | % |
+------------+------+
3 rows in set (0.017 sec)
MySQL [test]> GRANT ALL PRIVILEGES ON *.* TO user1@'%';
Query OK, 0 rows affected (0.018 sec)
MySQL [test]> create database db1;
Query OK, 1 row affected (0.026 sec)
通过普通业务用户连接指定数据库,并建表及业务操作。
[admin@b8cf44f9d7d2 ~]$ obclient -h 127.1 -uuser1@obmysql#obce-single -P2883 -p -c -A db1
Enter password:
Welcome to the OceanBase. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.6.25 OceanBase 3.1.1 (r4-8c615943cbd25a6f7b8bdfd8677a13a21709a05e) (Built Oct 21 2021 10:52:05)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [db1]> create table t1(id int);
Query OK, 0 rows affected (0.079 sec)
MySQL [db1]> insert into t1 values(1),(2);
Query OK, 2 rows affected (0.022 sec)
Records: 2 Duplicates: 0 Warnings: 0
MySQL [db1]> select * from t1;
+------+
| id |
+------+
| 1 |
| 2 |
+------+
2 rows in set (0.016 sec)