实践练习二:手动部署OceanBase集群

本实践练习实现手动部署单副本单节点集群、多副本多节点集群和集群扩容。

一、手动部署OB单副本集群

本实验手动部署单节点单副本集群。

1、部署环境

服务器信息

IP地址

10.0.14.22

网卡名

enp0s8

OS

CentOS Linux release 7.8.2003 (Core)

CPU

16C

内存

20G

磁盘1

本地盘/dev/sdd(300G ) (sdd盘lvm /data、/redo)

机器和角色划分

角色

机器

备注

OBPROXY

10.0.14.22

OceanBase反向代理访问

OBSERVER

10.0.14.22

OceanBase数据库

OBCLIENT

10.0.14.22

OceanBase命令行客户端

2、服务器初始化

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

内核参数修改

vim /etc/sysctl.conf

net.core.somaxconn = 2048

net.core.netdev_max_backlog = 10000

net.core.rmem_default = 16777216

net.core.wmem_default = 16777216

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.ipv4.ip_local_port_range = 3500 65535

net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

net.ipv4.tcp_syncookies = 0

net.ipv4.tcp_rmem = 4096 87380 16777216

net.ipv4.tcp_wmem = 4096 65536 16777216

net.ipv4.tcp_max_syn_backlog = 16384

net.ipv4.tcp_fin_timeout = 15

net.ipv4.tcp_max_syn_backlog = 16384

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_slow_start_after_idle=0

vm.swappiness = 0

vm.min_free_kbytes = 2097152

vm.max_map_count=655360

fs.aio-max-nr=1048576

让配置生效

sysctl -p

修改会话变量设置

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

关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

关闭SELinux

vi /etc/selinux/config

SELINUX=disabled

创建安装用户

# 新增普通用户 admin

useradd admin

# 改用户密码

passwd admin

# 配置用户admin sudo权限

vi /etc/sudoers

磁盘目录配置

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

# 创建pv

pvcreate /dev/sdd

# 创建vg

vgcreate vg /dev/sdd

# 创建lv

lvcreate -L 200G -n data1 vg

lvcreate -L 20G vg -n datalog1 vg

# 格式化文件系统

mkfs.ext4 /dev/mapper/vg-data1

mkfs.ext4 /dev/mapper/vg-datalog1

# 挂载文件系统

mkdir -p /redo

mkdir -p /data

vi /etc/fstab

/dev/mapper/vg-data1 /data ext4 defaults 0 0

/dev/mapper/vg-datalog1 /redo ext4 defaults 0 0

mount -a

初始化目录

# 创建相关目录

mkdir -p /home/admin/oceanbase/store/obdemo

mkdir -p /data/obdemo/{sstable,etc2}

mkdir -p /redo/obdemo/{clog,ilog,slog,etc3}

# 建立目录链接

for f in {sstable,etc2}; do ln -s /data/obdemo/$f /home/admin/oceanbase/store/obdemo/$f; done

for f in {clog,ilog,slog,etc3}; do ln -s /redo/obdemo/$f /home/admin/oceanbase/store/obdemo/$f ; done

# 修改目录所有者权限

chown -R admin:admin /data

chown -R admin:admin /redo

# 查看目录结构

tree /data/obdemo

tree /redo/obdemo

tree /home/admin/oceanbase/store/

3、部署OceanBase集群

本实验手动部署单节点单副本OceanBase集群,包括代理服务obproxy和obclient。

下载安装程序包文件

使用如下命令下载相关程序包文件:

安装oceanbase数据库程序

#执行如下命令

su - admin

cd software

sudo rpm -ivh oceanbase-ce-libs-3.1.3-10000292022032916.el7.x86_64.rpm

sudo rpm -ivh oceanbase-ce-3.1.3-10000292022032916.el7.x86_64.rpm

安装obclient客户端程序

#执行如下命令

sudo rpm -ivh libobclient-2.0.0-2.el7.x86_64.rpm

sudo rpm -ivh obclient-2.0.1-2.el7.x86_64.rpm

安装obproxy代理程序

#执行如下命令

sudo rpm -ivh obproxy-ce-3.2.3-2.el7.x86_64.rpm

启动节点observer

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

su - admin

cd oceanbase

cd ~/oceanbase && bin/observer -i enp0s8 -p 2881 -P 2882 -z zone1 -d ~/oceanbase/store/obdemo -r '10.0.14.22:2882:2881' -c 20220712 -n obdemo -o "memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=268435456,system_memory=3G,memory_chunk_cache_size=128M,cpu_count=10,net_thread_count=4,datafile_size=50G,stack_size=1536K,config_additional_dir=/data/obdemo/etc3;/redo/obdemo/etc2"

初始化集群

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

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

set session ob_query_timeout=1000000000;

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

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

obclient -h 10.0.14.22 -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;

设置相关密码

主要是修改管理员root的密码,以及创建obproxy代理用户。

#集群管理员(root@sys)密码默认集群管理员(root@sys)的密码是空的,这里需要设置一个密码。

alter user root identified by 'rootroot';

#OBPROXY用户(proxyro)密码默认OBPROXY连接OceanBase集群使用用户proxyro,这个用户不存在需要创建。

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

启动obproxy进程

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

# 执行如下命令启动obproxy进程

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

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

obclient -h10.0.14.22 -P 2883 -u root@proxysys -p

show proxyconfig like '%sys_password%';

# 设置相关密码

修改OBPROXY用户密码是通过修改参数的方式,命令是:alter proxyconfig set

alter proxyconfig set obproxy_sys_password = 'obproxy';

同时还需要修改OBPROXY连接OceanBase集群用户proxyro的密码。这样OBPROXY才能跟 OceanBase集群正常连接。这个密码就是前面 OceanBase 集群初始化后创建的用户proxyro的密码。

alter proxyconfig set observer_sys_password = 'proxyro';

4、验证OceanBase集群

部署成功oceanbase集群、客户端和obproxy代理之后,验证相关功能时直接登录obproxy代理访问数据库。

登录测试OceanBase集群

登录使用命令:obclient -h 10.0.14.22 -P 2883 -uroot@sys -p -c -A 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');

创建业务数据库

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

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

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

# 修改管理员密码

alter user root identified by 'rootroot';

# 创建数据库 userdb

create database userdb;

创建业务数据表

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

#新增数据表记录

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

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

insert into user(id, name) values(3, '王五');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值