0
点赞
收藏
分享

微信扫一扫

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

一、目的

1、手动部署一个 OB 单副本集群,包括一个 OBProxy 节点。

2、创建一个业务租户、一个业务数据库,以及一些表等。

二、环境

硬件:CPU:16C 内存:20G 硬盘1:/dev/mapper/vgdata-lvdata  硬盘2:/dev/mapper/vgredo-lvredo

操作系统:CentOS Linux release 7.9.2009 (Core)

三、服务器初始化

安装相关工具软件

yum install epel-release -y

yum install -y net-tools lrzsz wget tree htop dstat

详细配置请参考:

​​https://open.oceanbase.com/docs/tutorials/quickstart/V1.0.0/2-4-how-to-initialize-the-server-environment​​

内核参数修改:

实践练习二:手动部署OceanBase集群_初始化

修改会话变量设置:

实践练习二:手动部署OceanBase集群_初始化_02

配置时间同步服务:

实践练习二:手动部署OceanBase集群_文件系统_03

校准时间服务器:

实践练习二:手动部署OceanBase集群_文件系统_04

磁盘文件系统划分:

实践练习二:手动部署OceanBase集群_初始化_05

#创建pv

pvcreate /dev/sdb

pvcreate /dev/sdc

#创建vg

vgcreate vgdata /dev/sdb

vgcreate vgredo /dev/sdc

#创建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 ext4 defaults,noatime,nodiratime,nodelalloc,barrier=0 0 0

/dev/mapper/vgredo-lvredo /redo ext4 defaults,noatime,nodiratime,nodelalloc,barrier=0 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/

实践练习二:手动部署OceanBase集群_初始化_06

四、部署OceanBase集群

[root@ob /]# mkdir setupfiles

[root@ob setupfiles]#

wget ​​https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/oceanbase-ce-libs-3.1.1-4.el7.x86_64.rpm​​

wget ​​https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/oceanbase-ce-3.1.1-4.el7.x86_64.rpm​​

wget ​​https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/obproxy-3.2.0-1.el7.x86_64.rpm​​

wget ​​https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/libobclient-2.0.0-2.el7.x86_64.rpm​​

wget ​​https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/obclient-2.0.0-2.el7.x86_64.rpm​​

创建安装用户

# 新增普通用户 admin

[root@ob /]# useradd admin

# 修改用户密码

[root@ob /]# passwd admin

# 配置用户admin sudo权限

vi /etc/sudoers

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

#安装oceanbase数据库程序

#执行如下命令

[root@ob /]# su - admin

[admin@ob ~]$cd /obsetupfiles

[admin@ob setupfiles]$ sudo rpm -ivh oceanbase-ce-libs-3.1.1-4.el7.x86_64.rpm

[admin@ob setupfiles]$ sudo rpm -ivh oceanbase-ce-3.1.1-4.el7.x86_64.rpm

#安装obclient客户端程序

#执行如下命令

[admin@ob setupfiles]$ sudo rpm -ivh libobclient-2.0.0-2.el7.x86_64.rpm

[admin@ob setupfiles]$ sudo rpm -ivh obclient-2.0.0-2.el7.x86_64.rpm

#安装obproxy代理程序

#执行如下命令

[admin@ob setupfiles]$ sudo rpm -ivh obproxy-3.2.0-1.el7.x86_64.rpm

#启动节点observer

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

[admin@ob ~]$echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/oceanbase/lib' >> ~/.bash_profile

[admin@ob ~]$. ~/.bash_profile

[admin@ob ~]$cd ~/oceanbase && bin/observer -i ens192 -p 2881 -P 2882 -z zone1 -d ~/oceanbase/store/obdemo -r '172.200.60.200:2882:2881' -c 20200322 -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=16,net_thread_count=4,datafile_size=50G,stack_size=1536K",config_additional_dir=/data/obdemo/etc2;/redo/obdemo/etc3" -d ~/oceanbase/store/obdemo

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

有报错:create pid dir fail: ./run/

解决:ob进程没有起来,observer.log日志没生成,后检查发现oceanbase目录及store目录还是root,修改目录权限为admin再执行启动命令未报错,查询ob端口已启动。

实践练习二:手动部署OceanBase集群_初始化_09

初始化集群

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

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

set session ob_query_timeout=1000000000;

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

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

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

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

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

设置相关密码

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

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

alter user root identified by 'AAaa@@123';

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

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

实践练习二:手动部署OceanBase集群_初始化_12

启动obproxy进程

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

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

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

实践练习二:手动部署OceanBase集群_数据库_13

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

obclient -h 172.200.60.200 -P 2883 -u root@proxysys -p

show proxyconfig like '%sys_password%';

实践练习二:手动部署OceanBase集群_初始化_14

# 设置相关密码

修改OBPROXY用户密码是通过修改参数的方式,命令是:alter proxyconfig set obproxy_sys_password = 'AAaa@@123';

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

alter proxyconfig set observer_sys_password = 'AAaa@@123';

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

五、验证OceanBase集群

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

登录测试OceanBase集群

登录使用命令:obclient -h 172.200.60.200 -P 2883 -uroot@sys -p -c -A oceanbase

实践练习二:手动部署OceanBase集群_文件系统_16

六、创建租户、资源规格和资源池

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

select unit_config_id, name from __all_unit_config;

select resource_pool_id, name from __all_resource_pool;

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

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

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');

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

实践练习二:手动部署OceanBase集群_文件系统_18

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

create tenant my_tenant1 resource_pool_list=('my_pool1');

实践练习二:手动部署OceanBase集群_文件系统_19

七、创建业务数据库、数据表

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

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

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

# 修改管理员密码

alter user root identified by 'AAaa@@123';

# 创建数据库 dbtest

create database dbtest;

实践练习二:手动部署OceanBase集群_文件系统_20

创建业务数据表

use dbtest

CREATE TABLE Course(Cno VARCHAR(20) ,Cname VARCHAR(20) ,Tno VARCHAR(20) );

INSERT INTO course values ("3-105","计算机导论",825);

INSERT INTO course values ("3-245","操作系统",804);

INSERT INTO course values ("6-166","数字电路",856);

INSERT INTO course values ("9-888","高等数学",831);

select * from Course;

实践练习二:手动部署OceanBase集群_文件系统_21

实践结束。



















举报

相关推荐

0 条评论