一、环境准备

1、环境信息

192.168.184.191

在这里插入图片描述

2、关闭防火墙

systemctl stop firewalld.service
systemctl disbale firewalld.service
systemctl status firewalld.service

在这里插入图片描述

二、rpm离线安装OBD

1、获取rpm在线安装配置

(1)官网获取

https://www.oceanbase.com/softwarecenter

在这里插入图片描述

(2)网盘获取

通过网盘分享的文件:ob-deploy-3.2.2-2.el7.x86_64.rpm
链接: https://pan.baidu.com/s/1zaZgKIdxhWWp6ggqowNyOw?pwd=65ke 提取码: 65ke 

2、进行安装OBD

(1)上传rpm包

cd /root/
ll

在这里插入图片描述

(2)安装rpm包

sudo yum -y install ob-deploy-*.rpm

在这里插入图片描述

三、设置obd 的本地镜像库

1、下载各个组件的rpm包

(1)官网下载各个组件的安装包

https://www.oceanbase.com/softwarecenter

在这里插入图片描述

(2)网盘下载

通过网盘分享的文件:ocaean离线rpm
链接: https://pan.baidu.com/s/1SmWqFxkpCJKoE4m-MnPBaQ?pwd=dijv
提取码: dijv 

2、上传rpm包

cd /root/rpms/
ll

在这里插入图片描述

3、设置obd镜像仓库

(1)禁用远程仓库

禁用后可通过 obd mirror list 命令进行确认,查看 Type=remote 对应行的 Enabled 列变成了 False,说明已关闭远程镜像源。

obd  mirror disable remote

在这里插入图片描述

obd mirror list

在这里插入图片描述

(2)设置本地仓库

在安装包所在目录执行如下命令将下载好的安装包上传到本地仓库

cd /root/rpms/
obd mirror clone *.rpm

在这里插入图片描述
在这里插入图片描述

(3)查看本地仓库

在输出的列表中查看到部署所需安装包即表示上传成功。

obd mirror list local

在这里插入图片描述

三、安装OceanBase数据库

1、安装安装OceanBase数据库

这里有如下几种部署的方式,我选择第一种,默认部署

(1)部署默认组件

会自动部署 OceanBase 数据库、OBProxy、OBAgent、Prometheus 和 Grafana,默认版本为镜像库中最新版本。

obd demo

在这里插入图片描述

遇到如下错误,是因为要设置系统参数,当前不满足数据库安装需求
在这里插入图片描述
设置系统参数

echo -e "* soft nofile 20000\n* hard nofile 20000" >> /etc/security/limits.d/nofile.conf
obd cluster init4env demo

在这里插入图片描述
重启机器

shutdown -r now

在这里插入图片描述
再次执行安装数据库操作

obd demo

在这里插入图片描述

Wait for observer init ok
+---------------------------------------------+
|                 oceanbase-ce                |
+-----------+---------+------+-------+--------+
| ip        | version | port | zone  | status |
+-----------+---------+------+-------+--------+
| 127.0.0.1 | 4.3.5.2 | 2881 | zone1 | ACTIVE |
+-----------+---------+------+-------+--------+
obclient -h127.0.0.1 -P2881 -uroot@sys -p'QFqFG21t6CGwkQHFoaWt' -Doceanbase -A

cluster unique id: 271e562c-e861-5795-8d26-870fa8bc83ba-1974a2f3bda-02050304

Connect to obproxy ok
+---------------------------------------------------------------+
|                           obproxy-ce                          |
+-----------+------+-----------------+-----------------+--------+
| ip        | port | prometheus_port | rpc_listen_port | status |
+-----------+------+-----------------+-----------------+--------+
| 127.0.0.1 | 2883 | 2884            | 2885            | active |
+-----------+------+-----------------+-----------------+--------+
obclient -h127.0.0.1 -P2883 -uroot -p'QFqFG21t6CGwkQHFoaWt' -Doceanbase -A

Connect to Obagent ok
+--------------------------------------------------------------------+
|                              obagent                               |
+-----------------+--------------------+--------------------+--------+
| ip              | mgragent_http_port | monagent_http_port | status |
+-----------------+--------------------+--------------------+--------+
| 192.168.184.191 | 8089               | 8088               | active |
+-----------------+--------------------+--------------------+--------+
Connect to Prometheus ok
+--------------------------------------------------------+
|                       prometheus                       |
+-----------------------------+------+----------+--------+
| url                         | user | password | status |
+-----------------------------+------+----------+--------+
| http://192.168.184.191:9090 |      |          | active |
+-----------------------------+------+----------+--------+
Connect to grafana ok
+-----------------------------------------------------------------------+
|                                grafana                                |
+-----------------------------------------+-------+------------+--------+
| url                                     | user  | password   | status |
+-----------------------------------------+-------+------------+--------+
| http://192.168.184.191:3000/d/oceanbase | admin | nFVQqm8NgZ | active |
+-----------------------------------------+-------+------------+--------+
demo running
Trace ID: d2a5f762-4393-11f0-b66c-000c2998f26a
If you want to view detailed obd logs, please run: obd display-trace d2a5f762-4393-11f0-b66c-000c2998f26a

(2)部署默认组件,并指定 OceanBase 数据库版本

obd demo --oceanbase-ce.version=4.3.3.0

(3)仅部署 OceanBase 数据库

obd demo -c oceanbase-ce

2、安装命令行客户端

以离线rpm安装的话,需要单独安装命令行客户端。

(1)下载安装包

https://www.oceanbase.com/softwarecenter

在这里插入图片描述

(2)上传安装包

cd /root/
ll

在这里插入图片描述

(3)进行安装

 rpm -ivh obclient-2.2.8-1.el7.x86_64.rpm

在这里插入图片描述

3、连接到数据库

部署成功后可复制输出中的连接串
在这里插入图片描述

(1)使用默认密码进行连接

使用 OBClient 客户端连接到 OceanBase 数据库,如下:

@sys         是租户名称
-Doceanbase  是连到oceanbase数据库
-A           是 obclient 的交互优化参数,用于禁用自动补全功能,
			 适用于需要提升响应速度或简化输入的场景。
obclient -h127.0.0.1 -P2881 -uroot@sys -p'7XAAO7ij7W2b0SaC3upq' -Doceanbase -A

在这里插入图片描述

(2)修改默认密码

ALTER USER root IDENTIFIED BY 'admin';

在这里插入图片描述

四、基础操作

1、租户相关

可参考:租户常见操作
在这里插入图片描述

(1)查看租户

USE oceanbase;
select * from __all_tenant \G;

在这里插入图片描述
或者

SELECT * FROM oceanbase.DBA_OB_TENANTS;

在这里插入图片描述

(2)创建租户

创建租户要先创建资源规格和资源池

(a)查看已有资源规格信息
USE oceanbase;
SELECT * FROM oceanbase.DBA_OB_UNIT_CONFIGS \G;

在这里插入图片描述

(b)创建资源规格
CREATE RESOURCE UNIT S1_unit_config
                MEMORY_SIZE = '1G',
                MAX_CPU = 1, MIN_CPU = 1,
                LOG_DISK_SIZE = '2G',
                MAX_IOPS = 10000, MIN_IOPS = 10000, IOPS_WEIGHT=1;
                
SELECT * FROM oceanbase.DBA_OB_UNIT_CONFIGS \G;

在这里插入图片描述

(c)创建资源池

建资源规格后,可以在创建资源池时指定资源规格,从而使用相应大小的资源单元,并最终分配给相应的租户。

先查看资源池信息

USE oceanbase;
SELECT * FROM oceanbase.DBA_OB_RESOURCE_POOLS;

在这里插入图片描述
创建资源池
这里的ZONE_LIST要和你的一致,不能多出来,UNIT对应上面创建的资源规格。

CREATE RESOURCE POOL mq_pool_01 
                UNIT='S1_unit_config', 
                UNIT_NUM=1, 
                ZONE_LIST=('zone1');  

SELECT * FROM oceanbase.DBA_OB_RESOURCE_POOLS;

在这里插入图片描述

(d)创建租户

查看租户信息,当前这个租户是mysql模式的

SELECT * FROM oceanbase.DBA_OB_TENANTS;

在这里插入图片描述
我们来创建一个的租户,默认是mysql模式的

CREATE TENANT IF NOT EXISTS mq_t1 
                PRIMARY_ZONE='zone1', 
                RESOURCE_POOL_LIST=('mq_pool_01')
                set OB_TCP_INVITED_NODES='%';	
                
SELECT * FROM DBA_OB_TENANTS WHERE TENANT_NAME = 'mq_t1' \G;                

在这里插入图片描述
在这里插入图片描述

(3)使用新租户登录

默认管理员用户(MySQL 模式为 root,Oracle 模式为 sys)的密码为空,您需要及时修改管理员用户的密码。

obclient -h192.168.184.191 -P2883 -uroot@mq_t1 -A

在这里插入图片描述

(a)修改密码
ALTER USER root IDENTIFIED BY 'admin';

在这里插入图片描述

(b)查看当前数据库

在这里插入图片描述

(c)查看有哪些用户
select user_id,user_name,host,passwd from oceanbase.__all_user;
select user,host,password,plugin from mysql.user;

在这里插入图片描述

2、用户相关

这里我使用的是之前的sys租户进行登录的

obclient -h127.0.0.1 -P2881 -uroot@sys -p'admin' -Doceanbase -A

在这里插入图片描述

(1)创建用户

CREATE USER 'ob'@'%' IDENTIFIED BY 'admin';
CREATE USER 'ob2'@'%' IDENTIFIED BY 'admin';
CREATE USER 'ob3'@'%' IDENTIFIED BY 'admin';

在这里插入图片描述

(2)查看用户

select user_id,user_name,host,passwd from oceanbase.__all_user;

在这里插入图片描述
或者

select user,host,password,plugin from mysql.user;

在这里插入图片描述

(3)删除用户

drop user ob2;

在这里插入图片描述

千万不要去delete表!如果手动delete表oceanbase.__all_user中的记录的话,是不会同步到mysql.user表的,因为mysql.user是虚拟表,而虚拟表不能执行DML操作。
例如:delete表oceanbase.__all_user中的ob3和ob4用户,在mysql.user还是能查到。

delete from oceanbase.__all_user where user_name='ob3';
delete from oceanbase.__all_user where user_name='ob4';

select user_id,user_name,host,passwd from oceanbase.__all_user;
select user,host,password,plugin from mysql.user;

在这里插入图片描述

但是my.user表是不能delete的,所以会导致数据不一致!!
在这里插入图片描述

(4)用户授权

GRANT ALL PRIVILEGES ON *.* TO 'ob'@'%';

在这里插入图片描述

(5)用户登录

使用新用户进行登录

obclient -h127.0.0.1 -P2881 -uob -p'admin' -Doceanbase -A

在这里插入图片描述

3、数据库相关

(1)查看数据库

show databases;

在这里插入图片描述

(2)创建数据库

create database my_ob;
create database my_ob2;

在这里插入图片描述

(3)删除数据库

create database my_ob2;
show databases;
drop database my_ob2;
show databases;

在这里插入图片描述

4、表相关

(1)创建表

use my_ob;
show tables;
create table t1(id int primary key,name varchar(20));
create table t2(id int primary key,name varchar(20));
create table t3(id int primary key,name varchar(20));
show tables;

在这里插入图片描述

(2)删除表

use my_ob;
show tables;
drop table t2;
drop table t3;
show tables;

在这里插入图片描述

(3)插入数据

use my_ob;
INSERT INTO t1 (id, name) VALUES
(1, 'Alice'),
(2, 'Bob'),
(3, 'Charlie'),
(4, 'David'),
(5, 'Eve'),
(6, 'Frank'),
(7, 'Grace'),
(8, 'Henry'),
(9, 'Ivy'),
(10, 'Jack');

在这里插入图片描述

(4)查询数据

use my_ob;
select * from t1;

在这里插入图片描述

(5)删除数据

use my_ob;
select * from t1;
delete from t1 where id > 5;
select * from t1;

在这里插入图片描述

(6)清空表

use my_ob;
select * from t1;
truncate table t1;
select * from t1;

在这里插入图片描述

五、各个组件介绍

在安装结束,输出了一堆插件的信息,如下:
在这里插入图片描述

1、oceanbase-ce

在这里插入图片描述

(1)介绍

端口 2881 是 OceanBase 核心服务节点(Observer)的默认服务端口。Observer 是集群的数据存储和处理核心,直接负责 SQL 执行、事务管理、数据持久化等。
此命令直接连接 Observer 节点,适用于​​单节点部署​​或​​测试环境​​(需明确知道 Observer 的 IP 和端口)。

(2)连接信息

obclient -h127.0.0.1 -P2881 -uroot@sys -p'QFqFG21t6CGwkQHFoaWt' -Doceanbase -A

在这里插入图片描述

2、 obproxy-ce

在这里插入图片描述

(1)介绍

端口 2883 是代理服务(OBProxy)的默认服务端口。OBProxy 是集群的流量入口,负责请求路由、负载均衡、连接管理等,客户端通常通过 OBProxy 访问集群(尤其是生产环境)。
此命令通过 OBProxy 连接集群,OBProxy 会根据负载均衡策略将请求转发到合适的 Observer 节点,​​无需客户端感知底层节点细节​​。

(2)连接信息

obclient -h127.0.0.1 -P2883 -uroot -p'QFqFG21t6CGwkQHFoaWt' -Doceanbase -A

在这里插入图片描述

3、obagent

在这里插入图片描述

(1)介绍

Obagent(监控代理)是 OceanBase 的轻量级监控组件,负责收集集群节点的运行指标(如 CPU、内存、磁盘使用率,SQL 执行量等),并上报给 Prometheus 用于监控告警。

(2)连接信息

http://192.168.184.191:8088/
http://192.168.184.191:8089/

在这里插入图片描述

4、prometheus

在这里插入图片描述

(1)介绍

开源监控系统,通过拉取 Obagent 上报的指标(端口 8088),存储并分析 OceanBase 集群的运行数据。其 Web 界面 URL 为 http://192.168.184.191:9090(默认无认证)。

(2)连接信息

http://192.168.184.191:9090/targets?search=

在这里插入图片描述

5、 grafana

在这里插入图片描述

(1)介绍

开源可视化工具,通过连接 Prometheus(数据源),提供 OceanBase 集群的监控仪表盘(Dashboard)。此处已预配置了 OceanBase 专用仪表盘

(2)连接信息

http://192.168.184.191:3000/d/oceanbase
admin | nFVQqm8NgZ

在这里插入图片描述

六、关机重启服务

详细可参考:集群命令组
在这里插入图片描述

1、查看集群信息

obd cluster list

在这里插入图片描述

2、重启集群

obd cluster restart demo

在这里插入图片描述
在这里插入图片描述

3、停止集群

obd cluster stop demo
obd cluster list

4、查看进程

ps -ef | grep oceanbase-ce
ps -ef | grep obagent
ps -ef | grep obproxy-ce
ps -ef | grep prometheus
ps -ef | grep grafana

在这里插入图片描述

5、查看集群状态

obd cluster display demo

在这里插入图片描述

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐