当前位置: 首页 > news >正文

数据库管理-第313期 分布式挑战单机,OceanBase单机版试玩(20250411)

数据库管理313期 2025-04-11

  • 数据库管理-第313期 分布式挑战单机,OceanBase单机版试玩(20250411)
    • 1 环境说明
    • 2 操作系统配置
      • 2.1 关闭防火墙
      • 2.2 关闭SELinux
      • 2.3 配置hosts文件
      • 2.4 配置本地yum源
      • 2.5 配置sysctl.conf
      • 2.6 配置limits.conf
      • 2.7 创建用户
      • 2.8 配置sudo
      • 2.9 创建安装目录
      • 2.10 安装JDK
    • 3 准备安装包
      • 3.1 解压安装包
      • 3.2 检查安装包
    • 4 安装数据库
      • 打开页面
      • 输入账号和密码
      • 配置OCP和数据库节点
      • 集群配置
      • OBProxy配置
      • 配置OCP
      • 预检查
      • 预检查结果并开始部署
      • 完成部署
    • 5 OCP
      • 集群检查
      • 租户检查
      • 主机检查
      • 性能监控
      • 自治服务
    • 6 新建Oracle租户
      • 检查租户
    • 7 访问Oracle租户
      • 创建测试数据
    • 总结

数据库管理-第313期 分布式挑战单机,OceanBase单机版试玩(20250411)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database
PostgreSQL ACE Partner

10年数据库行业经验
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP,ITPUB认证专家
圈内拥有“总监”称号,非著名社恐(社交恐怖分子)

公众号:胖头鱼的鱼缸
CSDN:胖头鱼的鱼缸(尹海文)
墨天轮:胖头鱼的鱼缸
ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭

3498ff20bcec87e9052f961f06737f3.png
一直以来学习OceanBase最大的阻碍就是需要多台性能不能太差的机器或虚拟机,去年有了单机分布式一体化之后,OB可以在单台机器上部署了,但是其需求资源依然较大,运行也不是很流畅,具体可以查看数据库管理-第177期 一次神秘“采访”引出的安装体验(20240426)。在今年的OceanBase合作伙伴大会上,竹翁老师发布了OB单机版,从官网相关信息来看仅需2C6G就可以体验OceanBase。
image.png
这次我也申请了测试资格,相较于单机分布式一体化时候提供的社区版,这次提供的单机版是企业版数据库,可以在单机体验到多租户,也可以同时体验MySQL和Oracle模式租户。本期操作流程基本参考官方文档。

1 环境说明

为了体验多租户,我稍微多给了一点资源,具体清单如下:

项目内容
操作系统RHEL 8.10
IP地址10.10.10.180
CPU8
内存32G
磁盘150G

其中:

  • 我电脑CPU是8C16T,这里已经是CPU配的极限了
  • 操作系统不配置swap
  • 未按照生产建议分配挂载点,统一挂载于/目录下

2 操作系统配置

2.1 关闭防火墙

systemctl stop firewalld.service 
systemctl disable firewalld.service

2.2 关闭SELinux

sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
setenforce 0
[reboot]

2.3 配置hosts文件

cat >>/etc/hosts<<EOF
10.10.10.180 obdj
EOF

2.4 配置本地yum源

配置本地yum源

mkdir /iso
mount -r /dev/sr0 /iso
rm -rf /etc/yum.repo.d/*

cat > /etc/yum.repos.d/iso.repo <<EOF
[AppStream]
name=AppStream
baseurl=file:///iso/AppStream
gpgcheck=0
enabled=1
 
[BaseOS]
name=BaseOS
baseurl=file:///iso/BaseOS
gpgcheck=0
enabled=1
EOF

2.5 配置sysctl.conf

cat >>/etc/sysctl.conf <<EOF
# for oceanbase
## 修改内核异步 I/O 限制
fs.aio-max-nr = 1048576

## 网络优化
net.core.somaxconn = 2048
net.core.netdev_max_backlog = 10000 
net.core.rmem_default = 16777216 
net.core.wmem_default = 16777216 
net.core.rmem_max = 16777216 
net.core.wmem_max = 16777216
 
net.ipv4.ip_forward = 0 
net.ipv4.conf.default.rp_filter = 1 
net.ipv4.conf.default.accept_source_route = 0 
net.ipv4.tcp_syncookies = 1 
net.ipv4.tcp_rmem = 4096 87380 16777216 
net.ipv4.tcp_wmem = 4096 65536 16777216 
net.ipv4.tcp_max_syn_backlog = 16384 
net.ipv4.tcp_fin_timeout = 15 
net.ipv4.tcp_slow_start_after_idle=0

vm.swappiness = 0
vm.min_free_kbytes = 2097152
vm.overcommit_memory = 0

fs.file-max = 6573688
fs.pipe-user-pages-soft = 0

# 修改进程可以拥有的虚拟内存区域数量
vm.max_map_count = 655360

# 此处为 OceanBase 数据库的 data 目录
kernel.core_pattern = /data/core-%e-%p-%t
EOF

sysctl -p

2.6 配置limits.conf

cat >>/etc/security/limits.conf <<EOF
* soft nofile 655350
* hard nofile 655350
* soft stack unlimited
* hard stack unlimited
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited
EOF

2.7 创建用户

groupadd admin
useradd -g admin -d /home/admin -s /bin/bash admin
chown -R admin:admin /home/admin
echo "Obdj#123" | passwd --stdin admin

2.8 配置sudo

cat >> /etc/sudoers <<EOF
admin       ALL=(ALL)       NOPASSWD: ALL
EOF

2.9 创建安装目录

mkdir /data
chown -R admin:admin /data

2.10 安装JDK

dnf -y install java-1.8.0-openjdk

3 准备安装包

安装介质为:oceanbase-ocp-standalone-all-in-one-4.2.5.3-103000152025033110.el8.x86_64.tar

3.1 解压安装包

tar -xvf oceanbase-ocp-standalone-all-in-one-4.2.5.3-103000152025033110.el8.x86_64.tar

3.2 检查安装包

image.png

4 安装数据库

既然给了足够多的CPU和内存,尝试使用OCP进行安装:

cd oceanbase-standalone-all-in-one/
sudo bash bin/install_obd.sh

image.png

obd web

image.png

打开页面

image.png
image.png
image.png

输入账号和密码

image.png

配置OCP和数据库节点

image.png

集群配置

image.png
image.png

为安装成功这里需要限制一下metadb的内存上限

OBProxy配置

image.png

配置OCP

image.png
image.png
image.png

预检查

image.png
image.png
image.png
image.png
image.png

预检查结果并开始部署

image.png
image.png
image.png

完成部署

image.png
对比去年单机分布式一体化的单机部署,更加流畅了。

5 OCP

使用下面的地址访问OCP:

http://10.10.10.180:8080/

image.png
image.png

集群检查

image.png

租户检查

image.png

主机检查

image.png

性能监控

image.png
image.png
image.png
image.png

自治服务

image.png
image.png
image.png
image.png

6 新建Oracle租户

image.png
image.png
新增unit规格
image.png
image.png
image.png
image.png
image.png
这时候在最后一步会有个报错,无法找到python命令,在RHEL8.10中只有python3命令,可以通过以下方式解决:

ln -s /usr/bin/python3 /usr/bin/python

然后点击右上角重试,可完成创建:
image.png

检查租户

image.png
image.png

7 访问Oracle租户

#obclient -h$IP -P$port -u$user@$租户名 -p密码 -A
obclient -h127.0.0.1 -P2883 -usys@orcl -pObdj_123 -A

image.png

create user scott identified by tiger;
grant connect,resource to scott;

image.png
image.png

创建测试数据

直接从Oracle数据库中拉出基础语句:

CREATE TABLE "EMP" 
   (    "EMPNO" NUMBER(4,0), 
    "ENAME" VARCHAR2(10), 
    "JOB" VARCHAR2(9), 
    "MGR" NUMBER(4,0), 
    "HIREDATE" DATE, 
    "SAL" NUMBER(7,2), 
    "COMM" NUMBER(7,2), 
    "DEPTNO" NUMBER(2,0), 
     CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO"));

image.png

INSERT INTO EMP VALUES(7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);
INSERT INTO EMP VALUES(7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
INSERT INTO EMP VALUES(7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
INSERT INTO EMP VALUES(7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);
INSERT INTO EMP VALUES(7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
INSERT INTO EMP VALUES(7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);
INSERT INTO EMP VALUES(7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);
INSERT INTO EMP VALUES(7788,'SCOTT','ANALYST',7566,to_date('13-JUL-87')-85,3000,NULL,20);
INSERT INTO EMP VALUES(7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
INSERT INTO EMP VALUES(7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);
INSERT INTO EMP VALUES(7876,'ADAMS','CLERK',7788,to_date('13-JUL-87')-51,1100,NULL,20);
INSERT INTO EMP VALUES(7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);
INSERT INTO EMP VALUES(7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);
INSERT INTO EMP VALUES(7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);
commit;

image.png
创建其他表并插入数据:

CREATE TABLE DEPT
(
  DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
  DNAME VARCHAR2(14) ,
  LOC VARCHAR2(13)
);

CREATE TABLE SALGRADE
(
  GRADE NUMBER,
  LOSAL NUMBER,
  HISAL NUMBER
);

INSERT INTO DEPT VALUES(10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES(30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES(40,'OPERATIONS','BOSTON');

INSERT INTO SALGRADE VALUES (1,700,1200);
INSERT INTO SALGRADE VALUES (2,1201,1400);
INSERT INTO SALGRADE VALUES (3,1401,2000);
INSERT INTO SALGRADE VALUES (4,2001,3000);
INSERT INTO SALGRADE VALUES (5,3001,9999);
commit;

image.png
薪资等级查询查询:

select e.ename,s.grade from emp e,salgrade s where e.sal>=s.losal and e.sal<hisal;

image.png
Oracle租户基本测试结束。

总结

本次OceanBase单机版安装整体比较顺利,其中OBD/OCP界面非常精美且响应迅速、功能强大,Oracle数据库租户简单试用也很不错。虽有一些小问题,但瑕不掩瑜。
老规矩,知道写了些啥。

相关文章:

  • qt联动其他库实现一个客户端(本章主要是概述如何实现)
  • Python代码相关关系矩阵的三种展示热力图-条形图
  • C语言之双层for循环
  • 当一个 HTTP 请求发往 Kubernetes(K8s)部署的微服务时,整个过程流转时怎样的?
  • interfaceResidue:一款用于分析蛋白复合物“接触界面残基”的pymol插件
  • 面试题之网络相关
  • P3372 【模板】树状数组 3( 区间修改 + 区间查询 )
  • zynq sd卡初始化流程
  • mybaties plus 更新null值进入数据库
  • 【AI编程技术爆发:从辅助工具到生产力革命】
  • 博客园账户注册全流程指南(附常见问题)
  • windows安卓子系统wsa隐藏应用列表的安装激活使用
  • OpenHarmony 5.0版本视频硬件编解码适配
  • 零基础开始学习鸿蒙开发-智能家居APP离线版介绍
  • 基于PLC的采摘机械手(论文+源码)
  • 《Vue Router实战教程》12.不同的历史记录模式
  • 《Python星球日记》第22天:NumPy 基础
  • 安科瑞EMS3.0破解工业企业源网荷储一体化“用能三难”问题 帮助企业高效管理
  • 什么是TensorFlow?
  • OpenGL学习笔记(assimp封装、深度测试、模板测试)
  • 重庆模板自助建站/今日热点新闻一览
  • 常州中环做网站多少钱/seo系统培训
  • 开发公司和物业公司/河源市seo点击排名软件价格
  • 备案的网站可以攻击吗/合肥网络优化公司有几家
  • 四川省建设厅官方网站/交换链接是什么
  • wordpress直接复制文章/关键词优化排名平台