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在文件尾部添加
vi /etc/security/limits.d/20-nproc.conf
* soft nproc 655360 #最大线程数
* hard nproc 655360 #最大线程数
vi /etc/security/limits.conf在文件尾部添加
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在文件尾部添加
vi /etc/sysctl.conf
vm.max_map_count=655360
vm.min_free_kbytes=2097152
fs.file-max = 6573688
设置免密码sudo
vi /etc/sudoers 在文件尾部添加
vi /etc/sudoers
admin ALL=(ALL) NOPASSWD: ALL
创建需要的目录
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/ 下,这个随自己爱好,在哪都行)
分别解压两个软件包。
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/ 下
cp /home/admin/soft/oceanbase-all-in-one/rpms/*.rpm /home/admin/soft/ocp-all-in-one/rpms/
执行install.sh安装obd
[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
mkdir -p /home/admin/.obd/cluster/ob
创建config.yaml把下方配置内容粘贴到config.yaml文件中
vi /home/admin/.obd/cluster/ob/config.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服务
[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为前面输入的集群名
[admin@obd ob]$ obd cluster deploy ob
运行完成之后按提示执行obd cluster start ob 继续部署,命令执行完成之后oceanbase-ce、obproxy-ce 部署成功
obd cluster start ob
数据库ocp-server-ce 安装
链接数据库
根据自己喜欢的工具链接数据库,我使用的是navicat
最好链接obproxy的2883端口
数据库优化设置
# 按照物理机器总内存的百分比计算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
#创建资源单元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用户密码
ALTER USER root IDENTIFIED BY password;
创建数据库
租户ocp_meta下创建数据库
# cp_meta 下创建数据库
CREATE DATABASE meta_database
CREATE DATABASE backup1472
CREATE DATABASE backup147x
CREATE DATABASE backup21
CREATE DATABASE backup2230
租户 ocp_monitor 下创建数据库
# 租户 ocp_monitor 下创建数据库
CREATE DATABASE monitor_database
创建配置文件
可使用OBD web创建配置文件,也可以使用我的配置文件。两种方法使用其中一种
使用我的ocp配置文件config.yaml
直接创建目录/home/admin/.obd/cluster/ocp
mkdir -p /home/admin/.obd/cluster/ocp
创建config.yaml把下方配置内容粘贴到config.yaml文件中
vi /home/admin/.obd/cluster/ocp/config.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服务
[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’ 注意缩进保持一致
# 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
obd cluster deploy ocp
待执行结束,根据提示执行 obd cluster start ocp
obd cluster start ocp
执行完成,就可以登录ocp 网页了,通过网页接管ob集群,就不再介绍自行添加。
如果再在想添加一个节点组成三节点,网页ocp可直接操作。