手动部署 OceanBase 集群

    1. 手动部署一个 OB 单副本集群,包括一个 OBProxy 节点
      1. 部署环境

服务器信息

|------|-----------------------------------------|
| IP地址 | 192.168.0.26 |
| 网卡名 | ifcfg-enp1s0 |
| OS | Kylin Linux Advanced Server release V10 |
| CPU | 8C |
| 内存 | 32G |
| 磁盘1 | 本地盘 /data/1 |
| 磁盘2 | 本地盘 /data/log1 |

机器和角色划分

|----------|--------------|-----------------|
| 角色 | 机器 | 备注 |
| OBPROXY | 192.168.0.26 | OceanBase反向代理访问 |
| OBSERVER | 192.168.0.26 | OceanBase数据库 |
| OBCLIENT | 192.168.0.26 | OceanBase命令行客户端 |

      1. 服务器初始化

执行OceanBase数据库软件部署前对服务器的相关初始化配置。

        1. 内核参数修改

vim /etc/sysctl.conf

kernel.sysrq=0

net.ipv4.ip_forward = 1

net.ipv4.conf.all.send_redirects=0

net.ipv4.conf.default.send_redirects=0

net.ipv4.conf.all.accept_source_route=0

net.ipv4.conf.default.accept_source_route = 0

net.ipv4.conf.all.accept_redirects=0

net.ipv4.conf.default.accept_redirects=0

net.ipv4.conf.all.secure_redirects=0

net.ipv4.conf.default.secure_redirects=0

net.ipv4.icmp_echo_ignore_broadcasts=1

net.ipv4.icmp_ignore_bogus_error_responses=1

net.ipv4.conf.all.rp_filter=1

net.ipv4.conf.default.rp_filter = 1

net.ipv4.tcp_syncookies = 0

kernel.dmesg_restrict=1

net.ipv6.conf.all.accept_redirects=0

net.ipv6.conf.default.accept_redirects=0

####################################################

for oceanbase

net.core.somaxconn = 2048

net.core.netdev_max_backlog = 10000

net.core.rmem_default = 16777216

让配置生效

sysctl -p

        1. 修改会话变量设置

vi /etc/security/limits.conf

* soft nofile 655360

* hard nofile 655360

* soft nproc 655360

* hard nproc 655360

* soft core unlimited

* hard core unlimited

* soft stack unlimited

* hard stack unlimited

        1. 关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

        1. 关闭SELinux

vi /etc/selinux/config

SELINUX=disabled

        1. 创建安装用户

新增普通用户 admin

useradd admin

改用户密码

passwd admin

配置用户admin sudo权限

vi /etc/sudoers

        1. 修改系统时区

将系统时区设置为中国的+8区

tzselect

分别依次选择 5) Asia、9) China、1) Beijing Time、1) Yes

vi /etc/profile

export TZ='Asia/Shanghai'

#生效修改

source /etc/profile

        1. 磁盘目录配置

模拟生产环境中使用LV进行数据存储。

创建pv

pvcreate /dev/nvme0n1

pvcreate /dev/nvme1n1

创建vg

vgcreate vgdata /dev/nvme0n1

vgcreate vgredo /dev/nvme1n1

创建lv

lvcreate -l 100%free vgdata -n lvdata

lvcreate -L 50G vgredo -n lvredo

格式化文件系统

mkfs.ext4 /dev/mapper/vgdata-lvdata

mkfs.ext4 /dev/mapper/vgredo-lvredo

挂载文件系统

mkdir -p /data /redo

vi /etc/fstab

/dev/mapper/vgdata-lvdata /data/1 ext4 defaults,noatime,nodiratime,nodelalloc,barrier=0 0 0

/dev/mapper/vgredo-lvredo /data/log1 ext4 defaults,noatime,nodiratime,nodelalloc,barrier=0 0 0

mount -a

        1. 初始化目录

创建相关目录

mkdir -p /home/admin/{oceanbase,logs}

      1. 部署单副本OceanBase集群

包括代理服务obproxy和obclient。

        1. 安装程序包文件

tar -zxvf obpoc_20220506_arm\ .tar.gz

cd ocp-ob-obp-odc-antman_20220506_arm

yum -y install t-oceanbase-antman-1.4.2-20220430002909.alios7.aarch64.rpm

        1. 安装oceanbase数据库程序

rpm --ivh oceanbase-3.2.3.0-20220418212020.el7.aarch64.rpm

        1. 安装obclient客户端程序

rpm -ivh obclient-1.2.8-20210918193105.el7.alios7.aarch64.rpm

        1. 安装obproxy代理程序

#执行如下命令

rpm -ivh obproxy-3.2.3.2-20220413115557.el7.aarch64.rpm

        1. 启动节点observer

#执行如下命令启动单节点单副本observer进程

su - admin

cd /home/admin/oceanbase

bin/observer -p 2881 -P 2882 -z zone1 -d ~/oceanbase/store/obcluster -r '192.168.0.26:2882:2881' -c 1673835228 -n obcluster -o "datafile_size=50G,__min_full_resource_pool_memory=268435456,config_additional_dir=/data/1/admin/etc3;/data/log1/admin/etc2"

        1. 初始化集群

#执行如下命令初始化集群(初始密码为空)

obclient -h 192.168.0.26 -P 2881 -uroot -p -c -A

alter system bootstrap ZONE 'zone1' SERVER '192.168.0.26:2882';

退出重新登录(租户sys),执行如下命令:

obclient -h 192.168.0.26 -P 2881 -uroot@sys -p -c -A oceanbase

并查看当前server列表

select zone, svr_ip, svr_port, with_rootserver, status from __all_server order by zone, with_rootserver desc;

        1. 设置相关密码

alter user root identified by 'root123';

grant select on oceanbase.* to proxyro identified by 'proxyro';

        1. 启动obproxy进程

启动OBPROXY进程也推荐在软件安装目录,进程obproxy会在该目录下生成目录etc保存OBPROXY的运行参数,以及目录log保存运行日志。

执行如下命令启动obproxy进程

bin/obproxy -r "192.168.0.26:2881" -p 2883 -o "enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false" -c obcluster

登录obproxy,查看系统管理员密码参数

obclient -h10.64.8.28 -P2883 -uroot@sys#admin -p -A

show proxyconfig like '%sys_password%';

    1. 验证OceanBase集群
      1. 登录测试OceanBase集群

登录使用命令:obclient -h192.168.0.28 -P2883 -uroot@sys#admin -p -A

      1. 创建租户

#查看当前资源规格及资源池配置:

Use oceanbase;

select unit_config_id, name from __all_unit_config;

select resource_pool_id, name from __all_resource_pool;

#创建租户所需的资源规格和资源池

create resource unit my_unit1 max_cpu=1, max_memory='1g', max_iops=128, max_disk_size='5g', max_session_num=64, min_cpu=1, min_memory='1g', min_iops=128;

create resource pool my_pool1 unit='my_unit1', unit_num=1, zone_list=('zone1');

#再次查看资源规格及资源池配置

#执行如下命令创建一个租户对象

create tenant my_tenant1 resource_pool_list=('my_pool1');

      1. 创建业务数据库

重新登录数据库,连接新建业务租户:my_tenant1

执行命令:obclient -h 192.168.0.26 -P 2883 -u root@my_tenant1 -p -c -A oceanbase

注:新建租户下默认管理员密码为空

      1. 创建业务数据表

create table user1(id int(4) primary key, name varchar(20));

# 新增数据表记录

insert into user1(id, name) values(1, '张三');

insert into user1(id, name) values(2, '李四');

相关推荐
ActionTech9 天前
ChatDBA VS DeepSeek:快速诊断 OceanBase 集群新租户数据同步异常
oceanbase·deepseek·chatdba·爱可生
码农老起10 天前
从Oracle到OceanBase数据库迁移:全方位技术解析
数据库·oracle·oceanbase
OceanBase数据库官方博客10 天前
数据文件误删除,OceanBase中如何重建受影响的节点
oceanbase·分布式数据库·运维管理·实践经验
码农老起13 天前
OceanBase数据库基于脚本的分布式存储层性能深度优化
数据库·分布式·oceanbase
码农老起13 天前
万亿级数据量的OceanBase应用从JVM到协议栈立体化改造实现性能调优
jvm·oceanbase
OceanBase数据库官方博客15 天前
OceanBase 读写分离最佳实践
oceanbase·分布式数据库·读写分离·最佳实践
OceanBase数据库官方博客17 天前
网易云信架构升级实践,故障恢复时间缩至8秒
oceanbase·分布式数据库·架构选型·布道师计划
OceanBase数据库官方博客19 天前
自然语言秒转SQL—— 免费体验 OB Cloud Text2SQL 数据查询
数据库·sql·ai·oceanbase·分布式数据库·向量·text2sql
OceanBase数据库官方博客1 个月前
关于OceanBase与CDH适配的经验分享
oceanbase·分布式数据库·cdh
OceanBase数据库官方博客1 个月前
石基大商:OceanBase + Flink CDC,搭建连锁零售系统数据湖
flink·oceanbase·分布式数据库·实时数仓·零售