暂无图片
暂无图片
3
暂无图片
暂无图片
4
暂无图片

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

原创 胖头鱼的鱼缸 2025-04-10
248

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

数据库管理-第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
CPU 8
内存 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数据库租户简单试用也很不错。虽有一些小问题,但瑕不掩瑜。
老规矩,知道写了些啥。

最后修改时间:2025-04-11 09:54:57
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

暂无图片
2天前
评论
暂无图片 0
OBD/OCP界面非常精美且响应迅速、功能强大,Oracle数据库租户简单试用也很不错。
2天前
暂无图片 点赞
评论
luyingjun
暂无图片
15天前
评论
暂无图片 0
数据库管理-第313期 分布式挑战单机,OceanBase单机版试玩(20250411)
15天前
暂无图片 点赞
评论
鲁鲁
暂无图片
18天前
评论
暂无图片 0
数据库管理-第313期 分布式挑战单机,OceanBase单机版试玩(20250411)
18天前
暂无图片 点赞
评论
听溪
暂无图片
25天前
评论
暂无图片 0
数据库管理-第313期 分布式挑战单机,OceanBase单机版试玩(20250411)
25天前
暂无图片 点赞
评论
暂无图片
获得了8116次点赞
暂无图片
内容获得5314次评论
暂无图片
获得了5256次收藏
TA的专栏
胖头鱼的数据库之旅
收录257篇内容
Oracle DB 23ai
收录49篇内容
Oracle Vector DB
收录12篇内容
目录
  • 数据库管理-第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租户
      • 创建测试数据
    • 总结