-
- 手动部署一个 OB 单副本集群,包括一个 OBProxy 节点
- 部署环境
- 手动部署一个 OB 单副本集群,包括一个 OBProxy 节点
服务器信息
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命令行客户端 |
-
-
- 服务器初始化
-
执行OceanBase数据库软件部署前对服务器的相关初始化配置。
-
-
-
- 内核参数修改
-
-
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
-
-
-
- 修改会话变量设置
-
-
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
-
-
-
- 修改系统时区
-
-
将系统时区设置为中国的+8区
tzselect
分别依次选择 5) Asia、9) China、1) Beijing Time、1) Yes
vi /etc/profile
export TZ='Asia/Shanghai'
#生效修改
source /etc/profile
-
-
-
- 磁盘目录配置
-
-
模拟生产环境中使用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
-
-
-
- 初始化目录
-
-
# 创建相关目录
mkdir -p /home/admin/{oceanbase,logs}
-
-
- 部署单副本OceanBase集群
-
包括代理服务obproxy和obclient。
-
-
-
- 安装程序包文件
-
-
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
-
-
-
- 安装oceanbase数据库程序
-
-
rpm –ivh oceanbase-3.2.3.0-20220418212020.el7.aarch64.rpm
-
-
-
- 安装obclient客户端程序
-
-
rpm -ivh obclient-1.2.8-20210918193105.el7.alios7.aarch64.rpm
-
-
-
- 安装obproxy代理程序
-
-
#执行如下命令
rpm -ivh obproxy-3.2.3.2-20220413115557.el7.aarch64.rpm
-
-
-
- 启动节点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"
-
-
-
- 初始化集群
-
-
#执行如下命令初始化集群(初始密码为空)
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;
-
-
-
- 设置相关密码
-
-
alter user root identified by 'root123';
grant select on oceanbase.* to proxyro identified by 'proxyro';
-
-
-
- 启动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%';
-
- 验证OceanBase集群
- 登录测试OceanBase集群
- 验证OceanBase集群
登录使用命令:obclient -h192.168.0.28 -P2883 -uroot@sys#admin -p -A
-
-
- 创建租户
-
#查看当前资源规格及资源池配置:
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');
-
-
- 创建业务数据库
-
重新登录数据库,连接新建业务租户:my_tenant1
执行命令:obclient -h 192.168.0.26 -P 2883 -u root@my_tenant1 -p -c -A oceanbase
注:新建租户下默认管理员密码为空
-
-
- 创建业务数据表
-
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, '李四');