手动部署 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, '李四');

相关推荐
OceanBase数据库官方博客2 天前
如何在 Ubuntu 上 部署 OceanBase
ubuntu·oceanbase·分布式数据库·安装部署
靖顺2 天前
【OceanBase 知识点】—— OceanBase 数据库开发规范最佳实践
oceanbase·数据库开发
OceanBase数据库官方博客3 天前
OceanBase JDBC (Java数据库连接)的概念、分类与兼容性
java·oceanbase·分布式数据库
OceanBase数据库官方博客3 天前
微澜:用 OceanBase 搭建基于知识图谱的实时资讯流的应用实践
知识图谱·oceanbase·分布式数据库·应用实践
小至尖尖4 天前
使用ob_tools包收集分析oceanbase数据库oracle租户缓慢sql语句
sql·oceanbase·sql优化
OceanBase数据库官方博客4 天前
在 Mac 和 Windows 系统中快速部署 OceanBase
oceanbase·分布式数据库·安装部署
老年DBA4 天前
Oceanbase-Topk直方图
oceanbase
OceanBase数据库官方博客4 天前
OceanBase 4.3.3 功能解析:列存副本
oceanbase·分布式数据库·列存
OceanBase数据库官方博客4 天前
OceanBase 应用实践:如何处理数据空洞,降低存储空间
oceanbase·分布式数据库·最佳实践
OceanBase数据库官方博客4 天前
Json 类型与多值索引 — OceanBase 4.3.2 AP 功能体验
json·oceanbase·分布式数据库