您现在的位置是:首页 >技术交流 >「OceanBase 4.1 体验」OceanBase 4.1社区版的部署及使用体验网站首页技术交流

「OceanBase 4.1 体验」OceanBase 4.1社区版的部署及使用体验

江湖有缘 2023-06-20 20:00:03
简介「OceanBase 4.1 体验」OceanBase 4.1社区版的部署及使用体验

一、前言

1.1 本次实践介绍

本次部署OceanBase 4.1社区版采用的是使docker单机快速部署方式,使用的是dockerhub中oceanbase/oceanbase-ce镜像,版本为4.1.0.0版本。该镜像仅供学习或测试使用,可以快速部署一个MINI_MODE OceanBase数据库实例,极大的提高了部署速度,方便快捷。

1.2 本次实践目的

1.本次实践环境为个人测试环境,生产环境请根据官方文档指导部署;
2.本次OceanBase 4.1社区版部署为docker单机快速部署方式;
3.体验OceanBase 4.1社区版的部署及基本使用;

二、准备环境资源

2.1 部署前需准备工作

  • 确保机器已经部署docker环境
  • Docker服务状态运行正常
  • 宿主机2881端口没有被占用
  • 防火墙已放行2881端口
  • 确保宿主机内存大于8G
  • 宿主机cpu内核总数大于2
  • 宿主机磁盘空间大于54G

2.2 本地环境规划

本次实践的个人环境规划如下,已经部署好docker环境,使用的是一台在PVE虚拟化平台的虚拟机作为实践环境。

hostnameIP地址docker版本操作系统版本CPU核数内存硬盘虚拟化平台服务器类型OceanBase版本
docker192.168.3.12723.0.5centos 7.6612G500GPVE虚拟化平台虚拟机OceanBase 4.1社区版

三、部署Docker环境

3.1 安装Docker

执行以下两条命令,使用docker快速安装脚本,一键快速部署docker。

curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun

启动Docker服务,并设置开机自启。

systemctl --now enbale docker

3.2 配置Docker镜像加速

修改/etc/docker/daemon.json文件,配置Docker镜像加速。

echo '{ "registry-mirrors": ["https://sp4mg57h.mirror.aliyuncs.com"] }'   > /etc/docker/daemon.json 

3.3 开启路由转发

开启路由转发,并重启网络服务。

[root@docker ~]# echo "net.ipv4.ip_forward=1" >>  /etc/sysctl.conf
[root@docker ~]#  systemctl restart network
[root@docker ~]#  sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

3.4 重启Docker服务

重启Docker服务。

systemctl daemon-reload  && systemctl restart docker

四、检查本地Docker环境

4.1 检查docker版本

检查本机安装的docker版本

[root@docker ~]# docker -v 
Docker version 23.0.5, build bc4487a

4.2 检查Docker服务

检查本机的docker服务状态

[root@docker ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2023-04-27 15:40:54 CST; 24min ago
     Docs: https://docs.docker.com
 Main PID: 5092 (dockerd)
    Tasks: 12
   Memory: 549.2M
   CGroup: /system.slice/docker.service
           └─5092 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

4.3 检查磁盘大小

检查docker宿主机的磁盘大小,确保满足部署要求。

[root@docker ~]# df -h 
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6       360G   26G  334G   8% /
devtmpfs        5.8G     0  5.8G   0% /dev
tmpfs           5.8G     0  5.8G   0% /dev/shm
tmpfs           5.8G  8.6M  5.8G   1% /run
tmpfs           5.8G     0  5.8G   0% /sys/fs/cgroup
/dev/sda2       100G   33M  100G   1% /home
/dev/sda3        20G  3.0G   18G  15% /var
/dev/sda1        12G  137M   12G   2% /boot
overlay          20G  3.0G   18G  15% /var/lib/docker/overlay2/c493da6000055915b42d2bec2e169c522122ecd9559a92f1f41f104dd4508b25/merged
tmpfs           1.2G     0  1.2G   0% /run/user/0
[root@docker ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  500G  0 disk 
├─sda1   8:1    0   12G  0 part /boot
├─sda2   8:2    0  100G  0 part /home
├─sda3   8:3    0   20G  0 part /var
├─sda4   8:4    0    1K  0 part 
├─sda5   8:5    0    8G  0 part [SWAP]
└─sda6   8:6    0  360G  0 part /
sr0     11:0    1  4.3G  0 rom  

4.4 检查内存大小

检查docker宿主机的内存大小,确保满足部署要求。

[root@docker ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:          11852        5537         345           8        5970        5878
Swap:          8191           7        8184

4.5 检查cpu核数

检查cpu的核心数,确保大于2核。

[root@docker ~]# cat /proc/cpuinfo| grep "cpu cores"| uniq
cpu cores	: 6

4.6 检查2881端口

检查2881端口是否被占用,确保没有服务占用2881端口。

ss -tunlp |grep 2881

检查防火墙是否放行2881端口

[root@docker ~]# firewall-cmd --list-ports 
2881/tcp

如果防火墙未放行2881端口,则执行以下放行命令:

[root@docker ~]# firewall-cmd --permanent --add-port=2881/tcp
success
[root@docker ~]# firewall-cmd --reload 
success

五、部署OceanBase 4.1社区版

5.1 下载OceanBase 4.1镜像

在dockerhub下载oceanbase/oceanbase-ce:4.1.0.0容器镜像

[root@docker ~]# docker pull oceanbase/oceanbase-ce:4.1.0.0
4.1.0.0: Pulling from oceanbase/oceanbase-ce
2d473b07cdd5: Pull complete 
c21cdfe7a94b: Pull complete 
7433dd4c409c: Pull complete 
00a0e26f2005: Pull complete 
Digest: sha256:18c4055f80ec312fc618ef6356ba0da6379c93c45a01b1b5af46e4667c327135
Status: Downloaded newer image for oceanbase/oceanbase-ce:4.1.0.0
docker.io/oceanbase/oceanbase-ce:4.1.0.0

5.2 创建OceanBase容器

创建容器挂载目录/data/ob.

mkdir -p /data/ob/  &&  mkdir -p /data/obd/

在本地系统环境,创建一个OceanBase容器。

docker run -d -p 2881:2881 -v /data/ob:/root/ob -v /data/obd:/root/.obd --name oceanbase oceanbase/oceanbase-ce:4.1.0.0

5.3 检查OceanBase容器状态

检查OceanBase容器状态,查看容器是否正常启动。

[root@docker data]# docker ps
CONTAINER ID   IMAGE                            COMMAND              CREATED         STATUS         PORTS                                       NAMES
32d28cd6b407   oceanbase/oceanbase-ce:4.1.0.0   "/bin/sh -c _boot"   9 minutes ago   Up 9 minutes   0.0.0.0:2881->2881/tcp, :::2881->2881/tcp   oceanbase



5.4 检查OceanBase容器的运行日志

查看OceanBase容器的运行日志,确保OceanBase服务正常运行。

[root@docker data]# docker logs oceanbase
generate boot.yaml ...
oceanbase-ce docker in mini mode
create boot dirs and deploy ob cluster ...
name: obagent
version: 1.3.0
release:22.el7
arch: x86_64
md5: d57fbb4962b2fbecb6282358c59295fdfba4d6ac
add /root/pkg/obagent-1.3.0-22.el7.x86_64.rpm to local mirror
name: oceanbase-ce
version: 4.1.0.0
release:100000192023032010.el7
arch: x86_64
md5: 8439ecf8db5e0649bd49671b41ea9e8c85756b63
add /root/pkg/oceanbase-ce-4.1.0.0-100000192023032010.el7.x86_64.rpm to local mirror
name: oceanbase-ce-libs
version: 4.1.0.0
release:100000192023032010.el7
arch: x86_64
md5: a83b1dd1cab44d3f610d439931322be7a08555f2
add /root/pkg/oceanbase-ce-libs-4.1.0.0-100000192023032010.el7.x86_64.rpm to local mirror
Trace ID: 5b38756a-e4d6-11ed-a300-0242ac110002
If you want to view detailed obd logs, please run: obd display-trace 5b38756a-e4d6-11ed-a300-0242ac110002
+----------------------------------------------------------------------------------------------------------+
|                                            local Package List                                            |
+-------------------+---------+------------------------+--------+------------------------------------------+
| name              | version | release                | arch   | md5                                      |
+-------------------+---------+------------------------+--------+------------------------------------------+
| obagent           | 1.3.0   | 22.el7                 | x86_64 | d57fbb4962b2fbecb6282358c59295fdfba4d6ac |
| oceanbase-ce      | 4.1.0.0 | 100000192023032010.el7 | x86_64 | 8439ecf8db5e0649bd49671b41ea9e8c85756b63 |
| oceanbase-ce-libs | 4.1.0.0 | 100000192023032010.el7 | x86_64 | a83b1dd1cab44d3f610d439931322be7a08555f2 |
+-------------------+---------+------------------------+--------+------------------------------------------+
Trace ID: 5bb1765e-e4d6-11ed-b7d4-0242ac110002
If you want to view detailed obd logs, please run: obd display-trace 5bb1765e-e4d6-11ed-b7d4-0242ac110002
Local deploy is empty
Trace ID: 5c25bab4-e4d6-11ed-8844-0242ac110002
If you want to view detailed obd logs, please run: obd display-trace 5c25bab4-e4d6-11ed-8844-0242ac110002
Dev Mode: ON
Trace ID: 5dd12ede-e4d6-11ed-88c3-0242ac110002
If you want to view detailed obd logs, please run: obd display-trace 5dd12ede-e4d6-11ed-88c3-0242ac110002
Package oceanbase-ce-4.1.0.0-100000192023032010.el7 is available.
Package obagent-1.3.0-22.el7 is available.
install oceanbase-ce-4.1.0.0 for local ok
install obagent-1.3.0 for local ok
Cluster param config check ok
Open ssh connection ok
Generate observer configuration ok
Generate obagent configuration ok
+--------------------------------------------------------------------------------------------+
|                                          Packages                                          |
+--------------+---------+------------------------+------------------------------------------+
| Repository   | Version | Release                | Md5                                      |
+--------------+---------+------------------------+------------------------------------------+
| oceanbase-ce | 4.1.0.0 | 100000192023032010.el7 | 8439ecf8db5e0649bd49671b41ea9e8c85756b63 |
| obagent      | 1.3.0   | 22.el7                 | d57fbb4962b2fbecb6282358c59295fdfba4d6ac |
+--------------+---------+------------------------+------------------------------------------+
Repository integrity check ok
Parameter check ok
Open ssh connection ok
Cluster status check ok
Initializes observer work home ok
Initializes obagent work home ok
Remote oceanbase-ce-4.1.0.0-100000192023032010.el7-8439ecf8db5e0649bd49671b41ea9e8c85756b63 repository install ok
Remote oceanbase-ce-4.1.0.0-100000192023032010.el7-8439ecf8db5e0649bd49671b41ea9e8c85756b63 repository lib check !!
Remote obagent-1.3.0-22.el7-d57fbb4962b2fbecb6282358c59295fdfba4d6ac repository install ok
Remote obagent-1.3.0-22.el7-d57fbb4962b2fbecb6282358c59295fdfba4d6ac repository lib check ok
Try to get lib-repository
Package oceanbase-ce-libs-4.1.0.0-100000192023032010.el7 is available.
install oceanbase-ce-libs-4.1.0.0 for local ok
Remote oceanbase-ce-libs-4.1.0.0-100000192023032010.el7-a83b1dd1cab44d3f610d439931322be7a08555f2 repository install ok
Remote oceanbase-ce-4.1.0.0-100000192023032010.el7-8439ecf8db5e0649bd49671b41ea9e8c85756b63 repository lib check ok
obcluster deployed
Get local repositories ok
Search plugins ok
Open ssh connection ok
Load cluster param plugin ok
Check before start observer ok
[WARN] OBD-1011: (127.0.0.1) The recommended value of fs.aio-max-nr is 1048576 (Current value: 65536)
[WARN] OBD-1007: (127.0.0.1) The recommended number of open files is 655350 (Current value: 65536)
[WARN] OBD-1012: (127.0.0.1) clog and data use the same disk (/root/ob)

Check before start obagent ok
Start observer ok
observer program health check ok
Connect to observer ok
Initialize oceanbase-ce ok
Start obagent ok
obagent program health check ok
Connect to Obagent ok
Wait for observer init ok
+---------------------------------------------+
|                   observer                  |
+-----------+---------+------+-------+--------+
| ip        | version | port | zone  | status |
+-----------+---------+------+-------+--------+
| 127.0.0.1 | 4.1.0.0 | 2881 | zone1 | ACTIVE |
+-----------+---------+------+-------+--------+
obclient -h127.0.0.1 -P2881 -uroot -Doceanbase -A

+---------------------------------------------------------------+
|                            obagent                            |
+------------+--------------------+--------------------+--------+
| ip         | mgragent_http_port | monagent_http_port | status |
+------------+--------------------+--------------------+--------+
| 172.17.0.2 | 8089               | 8088               | active |
+------------+--------------------+--------------------+--------+
obcluster running
Trace ID: 5e3444ba-e4d6-11ed-a7b1-0242ac110002
If you want to view detailed obd logs, please run: obd display-trace 5e3444ba-e4d6-11ed-a7b1-0242ac110002
Get local repositories and plugins ok
Open ssh connection ok
Connect to observer ok
Create tenant test ok
Trace ID: d3706e3e-e4d6-11ed-82e4-0242ac110002
If you want to view detailed obd logs, please run: obd display-trace d3706e3e-e4d6-11ed-82e4-0242ac110002
deploy success!
boot success!


直接通过以下命令查看最后的安装结果,出现boot success就表示部署成功。

[root@docker data]# docker logs oceanbase | tail -1
boot success!

六、连接到 OceanBase 实例

6.1 连接sys租户的root 用户

接sys租户的root 用户

[root@docker data]# docker exec -it oceanbase ob-mysql sys
login as root@sys
Command is: obclient -h127.1 -uroot@sys -A -Doceanbase -P2881 
Welcome to the OceanBase.  Commands end with ; or g.
Your OceanBase connection id is 3221487689
Server version: OceanBase_CE 4.1.0.0 (r100000192023032010-0265dfc6d00ff4f0ff4ad2710504a18962abaef6) (Built Mar 20 2023 10:12:57)

Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

obclient [oceanbase]> 

6.2 连接test租户root用户

连接test租户root用户

[root@docker data]# docker exec -it oceanbase ob-mysql root
login as root@test
Command is: obclient -h127.1 -uroot@test -A -Doceanbase -P2881 
Welcome to the OceanBase.  Commands end with ; or g.
Your OceanBase connection id is 3221487695
Server version: OceanBase_CE 4.1.0.0 (r100000192023032010-0265dfc6d00ff4f0ff4ad2710504a18962abaef6) (Built Mar 20 2023 10:12:57)

Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

obclient [oceanbase]> 

6.3 连接test租户的test用户

连接test租户的test用户

[root@docker data]# docker exec -it oceanbase ob-mysql test
login as test@test
Command is: obclient -h127.1 -utest@test -A -Dtest -P2881 
Welcome to the OceanBase.  Commands end with ; or g.
Your OceanBase connection id is 3221487706
Server version: OceanBase_CE 4.1.0.0 (r100000192023032010-0265dfc6d00ff4f0ff4ad2710504a18962abaef6) (Built Mar 20 2023 10:12:57)

Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

obclient [test]> 

6.4 创建wordpress数据库

在 root@root用户权限下,新建wordpress数据库。

[root@docker ~]# docker exec -it oceanbase ob-mysql root
login as root@test
Command is: obclient -h127.1 -uroot@test -A -Doceanbase -P2881 
Welcome to the OceanBase.  Commands end with ; or g.
Your OceanBase connection id is 3221487904
Server version: OceanBase_CE 4.1.0.0 (r100000192023032010-0265dfc6d00ff4f0ff4ad2710504a18962abaef6) (Built Mar 20 2023 10:12:57)

Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

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

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

obclient [oceanbase]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| oceanbase          |
| test               |
| wordpress          |
+--------------------+
5 rows in set (0.604 sec)


6.5 在test租户下创建用户

使用test租户下的root用户连接OceanBase数据库,创建admin@test用户。

[root@docker ~]# docker exec -it oceanbase ob-mysql root
login as root@test
Command is: obclient -h127.1 -uroot@test -A -Doceanbase -P2881 
Welcome to the OceanBase.  Commands end with ; or g.
Your OceanBase connection id is 3221487913
Server version: OceanBase_CE 4.1.0.0 (r100000192023032010-0265dfc6d00ff4f0ff4ad2710504a18962abaef6) (Built Mar 20 2023 10:12:57)

Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

obclient [oceanbase]>  create user admin  identified by "admin123";
Query OK, 0 rows affected (1.590 sec)

obclient [oceanbase]> GRANT ALL ON wordpress.* TO admin with GRANT OPTION;
Query OK, 0 rows affected (0.764 sec)


6.6 连接test租户下admin用户

进入OceanBase容器内

[root@docker ~]# docker exec -it oceanbase /bin/bash
[root@32d28cd6b407 ~]# 

测试连接test租户下admin用户

[root@32d28cd6b407 ~]#  obclient -h127.1 -uadmin@test -A -Dwordpress -P2881 -padmin123
Welcome to the OceanBase.  Commands end with ; or g.
Your OceanBase connection id is 3221487933
Server version: OceanBase_CE 4.1.0.0 (r100000192023032010-0265dfc6d00ff4f0ff4ad2710504a18962abaef6) (Built Mar 20 2023 10:12:57)

Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

obclient [wordpress]> 

6.7 使用mysql客户端连接

在局域网内一台mysql客户端,连接test租户下admin用户

[root@server ~]# mysql -h 192.168.3.127  -P 2881 -u admin@test -padmin123 -D wordpress -Ac --prompt "OceanBase(u@d)> " 
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 3221487997
Server version: 5.7.25 OceanBase_CE 4.1.0.0 (r100000192023032010-0265dfc6d00ff4f0ff4ad2710504a18962abaef6) (Built Mar 20 2023 10:12:57)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

OceanBase(admin@wordpress)> 

七、在OceanBase数据库创建数据表

7.1 使用mysql客户端连接OceanBase

使用mysql客户端远程连接OceanBase数据库

[root@server ~]# mysql -h 192.168.3.127  -P 2881 -u admin@test -padmin123  -Ac --prompt "OceanBase(u@d)> " 
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 3221488894
Server version: 5.7.25 OceanBase_CE 4.1.0.0 (r100000192023032010-0265dfc6d00ff4f0ff4ad2710504a18962abaef6) (Built Mar 20 2023 10:12:57)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

OceanBase(admin@(none))> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| oceanbase          |
| test               |
| wordpress          |
| wordpress_db       |
+--------------------+
6 rows in set (0.37 sec)

OceanBase(admin@(none))> 

7.2 创建数据库

在OceanBase内创建一个数据库school

OceanBase(admin@(none))>  create database school;
Query OK, 1 row affected (0.44 sec)

OceanBase(admin@(none))> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| oceanbase          |
| school             |
| test               |
| wordpress          |
| wordpress_db       |
+--------------------+
7 rows in set (0.35 sec)

OceanBase(admin@(none))> 

7.3 进入数据库内

进入新创建的school数据库内

OceanBase(admin@(none))> use school;
Database changed
OceanBase(admin@school)> show tables;
Empty set (0.00 sec)

OceanBase(admin@school)> 

7.4 新建数据表

创建一个空数据表

 CREATE TABLE IF NOT EXISTS `student`(
     `id` INT UNSIGNED AUTO_INCREMENT,
      `name` VARCHAR(100) NOT NULL,
    `gender` TINYINT NOT NULL,
     `age` INT UNSIGNED,
    `class` INT UNSIGNED,
      `score` INT UNSIGNED,
      PRIMARY KEY ( `id` )
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;

在这里插入图片描述

7.5 写入数据

向数据表student写入数据。


OceanBase(admin@school)> insert into student ( name, gender, age, class,  score ) values ( "李萌萌", "0", "17", "3", "98" );
Query OK, 1 row affected (1.30 sec)

OceanBase(admin@school)> insert into student ( name, gender, age, class,  score ) values ( "王依依", "0", "14", "2", "68" );
Query OK, 1 row affected (0.57 sec)

OceanBase(admin@school)> insert into student ( name, gender, age, class,  score ) values ( "张强", "1", "17", "3", "78" );
Query OK, 1 row affected (0.21 sec)

7.6 查看数据表内容

查看数据表内容

OceanBase(admin@school)> select * from student;
+----+-----------+--------+------+-------+-------+
| id | name      | gender | age  | class | score |
+----+-----------+--------+------+-------+-------+
|  1 | 李萌萌    |      0 |   17 |     3 |    98 |
|  2 | 王依依    |      0 |   14 |     2 |    68 |
|  3 | 张强      |      1 |   17 |     3 |    78 |
+----+-----------+--------+------+-------+-------+
3 rows in set (0.01 sec)


八、使用DBeaver连接OceanBase 4.1社区版

8.1 打开DBeaver软件

打开本地DBeaver软件

在这里插入图片描述

8.2 选择连接数据库类型

选择连接的数据库为OceanBase

在这里插入图片描述

8.3 填写数据库连接信息

数据库连接信息如下:
host: 192.168.3.127
port: 2881
database: school
Tenant: test
用户名:admin
密码:admin123

在这里插入图片描述

8.4 测试连接及下载相关驱动

点击测试连接选项,自动下载驱动程序,测试连接正常。

在这里插入图片描述

8.5 查看数据表内容

查看OceanBase中student数据表内容。

在这里插入图片描述

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。