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

打印 上一主题 下一主题

主题 1664|帖子 1664|积分 4994

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

  1. 作者:胖头鱼的鱼缸(尹海文)
  2. Oracle ACE Pro: Database
  3. PostgreSQL ACE Partner
  4. 10年数据库行业经验
  5. 拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
  6. 墨天轮MVP,ITPUB认证专家
  7. 圈内拥有“总监”称号,非著名社恐(社交恐怖分子)
  8. 公众号:胖头鱼的鱼缸
  9. CSDN:胖头鱼的鱼缸(尹海文)
  10. 墨天轮:胖头鱼的鱼缸
  11. ITPUB:yhw1809。
  12. 除授权转载并标明出处外,均为“非法”抄袭
复制代码

不停以来学习OceanBase最大的阻碍就是必要多台性能不能太差的呆板或虚拟机,去年有了单机分布式一体化之后,OB可以在单台呆板上摆设了,但是其需求资源依然较大,运行也不是很流畅,详细可以检察数据库管理-第177期 一次秘密“采访”引出的安装体验(20240426)。在今年的OceanBase合作伙伴大会上,竹翁老师发布了OB单机版,从官网相关信息来看仅需2C6G就可以体验OceanBase。

这次我也申请了测试资格,相较于单机分布式一体化时候提供的社区版,这次提供的单机版是企业版数据库,可以在单机体验到多租户,也可以同时体验MySQL和Oracle模式租户。本期操作流程基本参考官方文档。
1 环境阐明

为了体验多租户,我稍微多给了一点资源,详细清单如下:
项目内容操作系统RHEL 8.10IP地点10.10.10.180CPU8内存32G磁盘150G 此中:


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

2.1 关闭防火墙

  1. systemctl stop firewalld.service
  2. systemctl disable firewalld.service
复制代码
2.2 关闭SELinux

  1. sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
  2. setenforce 0
  3. [reboot]
复制代码
2.3 设置hosts文件

  1. cat >>/etc/hosts<<EOF
  2. 10.10.10.180 obdj
  3. EOF
复制代码
2.4 设置当地yum源

设置当地yum源
  1. mkdir /iso
  2. mount -r /dev/sr0 /iso
  3. rm -rf /etc/yum.repo.d/*
  4. cat > /etc/yum.repos.d/iso.repo <<EOF
  5. [AppStream]
  6. name=AppStream
  7. baseurl=file:///iso/AppStream
  8. gpgcheck=0
  9. enabled=1
  10. [BaseOS]
  11. name=BaseOS
  12. baseurl=file:///iso/BaseOS
  13. gpgcheck=0
  14. enabled=1
  15. EOF
复制代码
2.5 设置sysctl.conf

  1. cat >>/etc/sysctl.conf <<EOF
  2. # for oceanbase
  3. ## 修改内核异步 I/O 限制
  4. fs.aio-max-nr = 1048576
  5. ## 网络优化
  6. net.core.somaxconn = 2048
  7. net.core.netdev_max_backlog = 10000
  8. net.core.rmem_default = 16777216
  9. net.core.wmem_default = 16777216
  10. net.core.rmem_max = 16777216
  11. net.core.wmem_max = 16777216
  12. net.ipv4.ip_forward = 0
  13. net.ipv4.conf.default.rp_filter = 1
  14. net.ipv4.conf.default.accept_source_route = 0
  15. net.ipv4.tcp_syncookies = 1
  16. net.ipv4.tcp_rmem = 4096 87380 16777216
  17. net.ipv4.tcp_wmem = 4096 65536 16777216
  18. net.ipv4.tcp_max_syn_backlog = 16384
  19. net.ipv4.tcp_fin_timeout = 15
  20. net.ipv4.tcp_slow_start_after_idle=0
  21. vm.swappiness = 0
  22. vm.min_free_kbytes = 2097152
  23. vm.overcommit_memory = 0
  24. fs.file-max = 6573688
  25. fs.pipe-user-pages-soft = 0
  26. # 修改进程可以拥有的虚拟内存区域数量
  27. vm.max_map_count = 655360
  28. # 此处为 OceanBase 数据库的 data 目录
  29. kernel.core_pattern = /data/core-%e-%p-%t
  30. EOF
  31. sysctl -p
复制代码
2.6 设置limits.conf

  1. cat >>/etc/security/limits.conf <<EOF
  2. * soft nofile 655350
  3. * hard nofile 655350
  4. * soft stack unlimited
  5. * hard stack unlimited
  6. * soft nproc 655360
  7. * hard nproc 655360
  8. * soft core unlimited
  9. * hard core unlimited
  10. EOF
复制代码
2.7 创建用户

  1. groupadd admin
  2. useradd -g admin -d /home/admin -s /bin/bash admin
  3. chown -R admin:admin /home/admin
  4. echo "Obdj#123" | passwd --stdin admin
复制代码
2.8 设置sudo

  1. cat >> /etc/sudoers <<EOF
  2. admin       ALL=(ALL)       NOPASSWD: ALL
  3. EOF
复制代码
2.9 创建安装目录

  1. mkdir /data
  2. chown -R admin:admin /data
复制代码
2.10 安装JDK

  1. 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 解压安装包

  1. tar -xvf oceanbase-ocp-standalone-all-in-one-4.2.5.3-103000152025033110.el8.x86_64.tar
复制代码
3.2 查抄安装包


4 安装数据库

既然给了足够多的CPU和内存,实验利用OCP举行安装:
  1. cd oceanbase-standalone-all-in-one/
  2. sudo bash bin/install_obd.sh
复制代码

  1. obd web
复制代码

打开页面




输入账号和密码


设置OCP和数据库节点


集群设置



   为安装乐成这里必要限定一下metadb的内存上限
  OBProxy设置


设置OCP




预查抄






预查抄结果并开始摆设




完成摆设


对比去年单机分布式一体化的单机摆设,更加流畅了。
5 OCP

利用下面的地点访问OCP:
   http://10.10.10.180:8080/
  


集群查抄


租户查抄


主机查抄


性能监控





自治服务





6 新建Oracle租户



新增unit规格





这时候在最后一步会有个报错,无法找到python命令,在RHEL8.10中只有python3命令,可以通过以下方式解决:
  1. ln -s /usr/bin/python3 /usr/bin/python
复制代码
然后点击右上角重试,可完成创建:

查抄租户



7 访问Oracle租户

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

  1. create user scott identified by tiger;
  2. grant connect,resource to scott;
复制代码


创建测试数据

直接从Oracle数据库中拉出基础语句:
  1. CREATE TABLE "EMP"
  2.    (    "EMPNO" NUMBER(4,0),
  3.     "ENAME" VARCHAR2(10),
  4.     "JOB" VARCHAR2(9),
  5.     "MGR" NUMBER(4,0),
  6.     "HIREDATE" DATE,
  7.     "SAL" NUMBER(7,2),
  8.     "COMM" NUMBER(7,2),
  9.     "DEPTNO" NUMBER(2,0),
  10.      CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO"));
复制代码

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

创建其他表并插入数据:
  1. CREATE TABLE DEPT
  2. (
  3.   DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
  4.   DNAME VARCHAR2(14) ,
  5.   LOC VARCHAR2(13)
  6. );
  7. CREATE TABLE SALGRADE
  8. (
  9.   GRADE NUMBER,
  10.   LOSAL NUMBER,
  11.   HISAL NUMBER
  12. );
  13. INSERT INTO DEPT VALUES(10,'ACCOUNTING','NEW YORK');
  14. INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
  15. INSERT INTO DEPT VALUES(30,'SALES','CHICAGO');
  16. INSERT INTO DEPT VALUES(40,'OPERATIONS','BOSTON');
  17. INSERT INTO SALGRADE VALUES (1,700,1200);
  18. INSERT INTO SALGRADE VALUES (2,1201,1400);
  19. INSERT INTO SALGRADE VALUES (3,1401,2000);
  20. INSERT INTO SALGRADE VALUES (4,2001,3000);
  21. INSERT INTO SALGRADE VALUES (5,3001,9999);
  22. commit;
复制代码

薪资等级查询查询:
  1. select e.ename,s.grade from emp e,salgrade s where e.sal>=s.losal and e.sal<hisal;
复制代码

Oracle租户基本测试结束。
总结

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

拉不拉稀肚拉稀

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表