OceanBase 4.2.1社区版 最小资源需求安装方式

OceanBase 4.2.1社区版 最小资源需求安装方式

资源需求

资源需求分析

observer Memory 控制参数:

memory_limit_percentage 默认80%

memory_limit 直接设定observer Memory 大小

System memory 可设为1G

租户内存:sys租户内存设为1G,OCP需要的租户ocp_mate、ocp_monitor 最小内存需要2G,链接会报错。

SQL查询还要预留部分内存1G

需要总内存1G+1G+2G+2G+1G=7G.

正常使用OCP安装的话最小也需要 7G/80%=9G 内存。

我们使用不正常方式来安装,需求还可以在减小一点。

我们可以把ocp_mate、ocp_monitor租户使用单个note,分别放到两个note上。那需要总内存就为1G+1G+2G+1G=5G.

虚机配置规划

OBD虚机 :1核CPU,1G内存,200G硬盘。

OCP虚机 :4核CPU,5G内存,200G硬盘。

OBServer1虚机 :4核CPU,8G内存,200G硬盘。

OBServer1虚机 :4核CPU,8G内存,200G硬盘。

虚拟机环境

虚拟机安装

我是用的是VMware加centoc7.虚拟机安装比较简单,就不详细写了。

创建虚机

OBD虚机 :1核CPU,1G内存,200G硬盘,hostname:obd。

OCP虚机 :4核CPU,5G内存,200G硬盘,hostname:ocp。

OBServer1虚机 :4核CPU,8G内存,200G硬盘,hostname:obs1。

OBServer1虚机 :4核CPU,8G内存,200G硬盘,hostname:obs2。

环境配置

创建用户

useradd -U admin -d /home/trw -m -s /bin/bash

设置密码

passwd admin

关闭防火墙

systemctl stop firewalld.service

systemctl disable firewalld.service

systemctl status firewalld.service

设置ulimit

vi /etc/security/limits.d/20-nproc.conf在文件尾部添加

sh 复制代码
vi /etc/security/limits.d/20-nproc.conf
*       soft    nproc   655360          #最大线程数
*       hard    nproc   655360          #最大线程数

vi /etc/security/limits.conf在文件尾部添加

sh 复制代码
vi /etc/security/limits.conf
*       soft    nofile  655350
*       hard    nofile  655350
*       soft    stack   20480
*       hard    stack   20480
*       soft    core    unlimited
*       hard    core    unlimited

vi /etc/sysctl.conf在文件尾部添加

sh 复制代码
vi /etc/sysctl.conf
vm.max_map_count=655360
vm.min_free_kbytes=2097152
fs.file-max = 6573688

设置免密码sudo

vi /etc/sudoers 在文件尾部添加

sh 复制代码
vi /etc/sudoers
admin       ALL=(ALL)       NOPASSWD: ALL

创建需要的目录

sh 复制代码
sudo mkdir /data
sudo chown admin:admin /data

数据库oceanbase-ce、obproxy-ce 安装

下载软件包

OceanBase社区版一键安装包 (OceanBase All in One)

https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/7/x86_64/oceanbase-all-in-one-4.2.1.2-102000042023120514.el7.x86_64.tar.gz

OceanBase 云平台 OCP

https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/ocp/4.2.1_CE_BP1/ocp-all-in-one-4.2.1-20231208144448.el7.x86_64.tar.gz

OBD安装

使用admin用户,上传上面下载的两个软件包。(我上传到:/home/admin/soft/ 下,这个随自己爱好,在哪都行)

分别解压两个软件包。

sh 复制代码
cd /home/admin/soft/
tar -zxvf ocp-all-in-one-4.2.1-20231127205908.el7.x86_64.tar.gz
tar -zxvf oceanbase-all-in-one-4.2.1.1-100120231117154841.el7.x86_64.tar.gz

拷贝 oceanbase-all-in-one/rpms/ 下的所有rpm包到 ocp-all-in-one/rpms/ 下

sh 复制代码
 cp  /home/admin/soft/oceanbase-all-in-one/rpms/*.rpm /home/admin/soft/ocp-all-in-one/rpms/

执行install.sh安装obd

sh 复制代码
[admin@obd rpms]$ cd /home/admin/soft/ocp-all-in-one/bin/
[admin@obd bin]$ ls
env.sh  install.sh  uninstall.sh
[admin@obd bin]$ ./install.sh
[admin@obd ~]$ source ~/.oceanbase-all-in-one/bin/env.sh

创建配置文件

可使用OBD web创建配置文件,也可以使用我的配置文件。两种方法使用其中一种

配置文件会保存在/home/admin/.obd/cluster下,如下图ob、ocp文件夹为OBD管理的集群名各自的配置保存在自己的文件夹下。

使用我的observer配置文件config.yaml

直接创建目录/home/admin/.obd/cluster/ob

sh 复制代码
mkdir -p /home/admin/.obd/cluster/ob

创建config.yaml把下方配置内容粘贴到config.yaml文件中

sh 复制代码
vi /home/admin/.obd/cluster/ob/config.yaml
yaml 复制代码
user:
  username: admin
  password: admin
  port: 22
oceanbase-ce:
  version: 4.2.1.1
  release: 101010012023111012.el7
  package_hash: e98c6ef860b5644c36f806e6fa2265255572b40a
  192.168.7.31:
    zone: zone1
  192.168.7.32:
    zone: zone2
  servers:
  - 192.168.7.31
  - 192.168.7.32
  global:
    appname: ob
    root_password: ABcd@#11223344
    mysql_port: 2881
    rpc_port: 2882
    home_path: /home/admin/ob/oceanbase
    datafile_maxsize: 10GB
    system_memory: 1GB
    cluster_id: 1702558665
    enable_syslog_recycle: true
    enable_syslog_wf: false
    max_syslog_file_count: 2
    memory_limit: 6G
    datafile_size: 2G
    log_disk_size: 20G
    cpu_count: 16
    production_mode: false
    __min_full_resource_pool_memory: 1073741824
    datafile_next: 2G
    proxyro_password: XztSLx00hB
obproxy-ce:
  version: 4.2.1.0
  package_hash: 0aed4b782120e4248b749f67be3d2cc82cdcb70d
  release: 11.el7
  servers:
  - 192.168.7.31
  - 192.168.7.32
  global:
    prometheus_listen_port: 2884
    listen_port: 2883
    home_path: /home/admin/ob/obproxy
    obproxy_sys_password: ABcd@#11223344
    skip_proxy_sys_private_check: true
    enable_strict_kernel_release: false
    enable_cluster_checkout: false
    proxy_mem_limited: 500M
  depends:
  - oceanbase-ce
使用obd_web创建配置文件

使用obd web命令启动web服务

sh 复制代码
[admin@obd cluster]$ obd web 
start OBD WEB in 0.0.0.0:8680
please open http://192.168.7.10:8680

登录网页 http://192.168.7.10:8680 根据自己的提示登录

点击 开启体验之旅 开始部署

如下图点击

如下图点击,取消工具前的复选框

保留两个节点

红框标注处注意修改

点击预检测后配置文件即可生成/home/admin/.obd/cluster/ob/config.yaml。

此时可以继续点部署进行部署,也可使用命令部署。建议点击退出使用命令部署。这样可以 vi config.yaml 进行更多参数修改优化

安装oceanbase-ce、obproxy-ce

使用 obd cluster deploy ob 进行部署 ob为前面输入的集群名

sh 复制代码
[admin@obd ob]$ obd cluster deploy ob

运行完成之后按提示执行obd cluster start ob 继续部署,命令执行完成之后oceanbase-ce、obproxy-ce 部署成功

sh 复制代码
obd cluster start ob

数据库ocp-server-ce 安装

链接数据库

根据自己喜欢的工具链接数据库,我使用的是navicat

最好链接obproxy的2883端口

数据库优化设置

sql 复制代码
# 按照物理机器总内存的百分比计算observer内存上限
SHOW parameters LIKE 'memory_limit_percentage'
alter system set memory_limit_percentage=90

# OceanBase 数据库的内存大小
SHOW parameters LIKE 'memory_limit'
alter system set memory_limit='7G'

# 表示租户的MemStore 部分占租户总内存的百分比
SHOW parameters LIKE 'memory_limit_percentage'
alter system set memstore_limit_percentage=90

# 通过参数设定"系统内部内存"上限
SHOW parameters LIKE 'system_memory'
alter system set system_memory='1G'

创建ocp需要的租户

创建资源单元uint,资源池pool,租户tenant ocp_meta、ocp_monitor

sql 复制代码
#创建资源单元uint
create resource unit trw_unit max_cpu=2, min_cpu=2, memory_size='2G';
#创建资源池pool
create resource pool trw_pool1 unit=trw_unit, unit_num=1, ZONE_LIST=('zone1');
create resource pool trw_pool2 unit=trw_unit, unit_num=1, ZONE_LIST=('zone2');
#创建租户tenant
CREATE TENANT ocp_meta RESOURCE_POOL_LIST=('trw_pool1') SET VARIABLES ob_tcp_invited_nodes='%';
CREATE TENANT ocp_monitor RESOURCE_POOL_LIST=('trw_pool2') SET VARIABLES ob_tcp_invited_nodes='%';

修改租户密码

使用空密码链接租户ocp_meta、ocp_monitor修改root用户密码

sql 复制代码
ALTER USER root IDENTIFIED BY password;

创建数据库

租户ocp_meta下创建数据库

sql 复制代码
# cp_meta 下创建数据库
CREATE DATABASE meta_database
CREATE DATABASE backup1472
CREATE DATABASE backup147x
CREATE DATABASE backup21
CREATE DATABASE backup2230

租户 ocp_monitor 下创建数据库

sql 复制代码
# 租户 ocp_monitor 下创建数据库
CREATE DATABASE monitor_database

创建配置文件

可使用OBD web创建配置文件,也可以使用我的配置文件。两种方法使用其中一种

使用我的ocp配置文件config.yaml

直接创建目录/home/admin/.obd/cluster/ocp

sh 复制代码
mkdir -p /home/admin/.obd/cluster/ocp

创建config.yaml把下方配置内容粘贴到config.yaml文件中

sh 复制代码
vi /home/admin/.obd/cluster/ocp/config.yaml
yaml 复制代码
user:
  username: admin
  password: admin
  port: 22
ocp-server-ce:
  version: 4.2.1
  package_hash: 92177252c57cf643656c1c1d2073dc256c87e12a
  release: 20231127205908.el7
  servers:
  - 192.168.7.20
  global:
    home_path: /home/admin/ocp
    soft_dir: /home/admin/software
    log_dir: /home/admin/logs
    port: 8080
    admin_password: ABcd@#11223344
    memory_size: 2G
    manage_info:
      machine: 3
    jdbc_url: jdbc:oceanbase://192.168.7.31:2883/oceanbase
    jdbc_username: root@sys
    jdbc_password: ABcd@#11223344
    ocp_meta_tenant:
      tenant_name: ocp_meta
      max_cpu: 2.0
      memory_size: 2G
    ocp_meta_username: root
    ocp_meta_password: ABcd@#11223344
    ocp_meta_db: meta_database
    ocp_monitor_tenant:
      tenant_name: ocp_monitor
      max_cpu: 2.0
      memory_size: 2G
    ocp_monitor_username: root
    ocp_monitor_password: ABcd@#11223344
    ocp_monitor_db: monitor_database
使用obd_web创建配置文件

使用obd web命令启动web服务

sh 复制代码
[admin@obd cluster]$ obd web 
start OBD WEB in 0.0.0.0:8680
please open http://192.168.7.10:8680

登录网页 http://192.168.7.10:8680 根据自己的提示登录

点击 开启体验之旅 开始部署

如下图点击

如下图点击

输入ocp的集群名

输入obproxy的IP:192.168.7.31、端口:2883 、sys租户root用户的密码

输入要安装ocp的服务器的应户名、密码、IP

设置ocp网页的管理员密码,端口

如下修改资源规格参数,输入ocp_meta、ocp_monitor租户root用户密码

点击预检查可生成配置文件/home/admin/.obd/cluster/ocp/config.yaml(预检查会卡住或报错无法通过,直接点退出)

跳过租户检测

修改 /home/admin/.obd/plugins/ocp-server-ce/4.2.1/start_check.py文件设置skip_create_tenant='True' 注意缩进保持一致

python 复制代码
                # tenant check
                #skip_create_tenant = 'False'
                #skip_create_tenant = getattr(options, "skip_create_tenant", "False")
                skip_create_tenant = 'True'
                if skip_create_tenant == 'False':
                    sql = "select * from oceanbase.DBA_OB_TENANTS where TENANT_NAME = %s"
                    meta_tenant = server_config.get('ocp_meta_tenant')['tenant_name']
                    meta_max_cpu = server_config['ocp_meta_tenant'].get('max_cpu', 2)
                    meta_memory_size = server_config['ocp_meta_tenant'].get('memory_size', '2G')
                    if server_config.get('ocp_monitor_tenant'):
                        monitor_user = server_config.get('ocp_monitor_username', 'monitor_user')
                        monitor_tenant = server_config['ocp_monitor_tenant']['tenant_name']
                        monitor_max_cpu = server_config['ocp_monitor_tenant'].get('max_cpu', 2)
                        monitor_memory_size = server_config['ocp_monitor_tenant'].get('memory_size', '4G')
                        res = cursor.fetchone(sql, [monitor_tenant])
                        if res:
                            error('tenant', err.EC_OCP_SERVER_TENANT_ALREADY_EXISTS.format({"tenant_name":monitor_tenant}))
                    res = cursor.fetchone(sql, [meta_tenant])
                    if res:
                        error('tenant', err.EC_OCP_SERVER_TENANT_ALREADY_EXISTS.format({"tenant_name":meta_tenant}))
                    break

安装ocp-server-ce

执行命令 obd cluster deploy ocp 部署ocp

sh 复制代码
 obd cluster deploy ocp

待执行结束,根据提示执行 obd cluster start ocp

sh 复制代码
obd cluster start ocp

执行完成,就可以登录ocp 网页了,通过网页接管ob集群,就不再介绍自行添加。

如果再在想添加一个节点组成三节点,网页ocp可直接操作。

相关推荐
OceanBase数据库官方博客13 小时前
在OceanBase 中,实现自增列的4种方法
oceanbase·分布式数据库·运维管理
OceanBase数据库官方博客3 天前
OceanBase中,如何解读 obdiag 收集的火焰图 【DBA早下班系列】
oceanbase·分布式数据库·运维管理
OceanBase数据库官方博客7 天前
从1000s到10s,OceanBase 标量子查询的SQL优化实践
oceanbase·分布式数据库·sql优化
OceanBase数据库官方博客7 天前
客如云:大型业务报表的分区化改造提升性能|OceanBase 应用实践
数据分析·oceanbase·分布式数据库·实践经验
大数据在线7 天前
乘云而上,OceanBase再越山峰
阿里云·oceanbase·分布式数据库·aws·云数据库
OceanBase数据库官方博客10 天前
阳振坤:云时代数据库的思考 | OceanBase发布会实录
oceanbase·分布式数据库·年度发布会
RestCloud10 天前
OceanBase数据库结合ETLCloud快速实现数据集成
数据库·oceanbase·etl·分布式存储·数据集成·数据传输
OceanBase数据库官方博客10 天前
云+AI 时代的 OceanBase
oceanbase·分布式数据库·1024程序员节·年度发布会
筱筱打工人10 天前
DBerver 连接oceanBase 配置
oceanbase
不叫猫先生10 天前
【OceanBase探会】云与 AI 赋能一体化数据库的创新之旅
数据库·ai·oceanbase·1024程序员节