实践练习二(必选):手动部署 OceanBase 集群

一、系统环境

系统配置:4C16G500G

操作系统:centOS 7.9.2009

 

二、系统参数配置

1、修改系统参数

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

退出当前会话,重新登录。执行以下命令,查看配置是否生效:

ulimit -a

 

2、防火墙设置

查看防火墙状态,如果开启状态改则进行永久关闭

systemctl status firewalld

systemctl disable firewalld

systemctl stop firewalld

 

3、关闭 SELinux

修改 SELinux 配置文件中的 SELINUX 选项。

vi /etc/selinux/config

 

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#    enforcing - SELinux security policy is enforced.

#    permissive - SELinux prints warnings instead of enforcing.

#    disabled - No SELinux policy is loaded.

SELINUX=disabled

配置文件修改后需等到重启主机后才可生效,您可使用下面命令使其立即生效。

setenforce 0

三、安装数据库

1、创建admin用户并设置密码

创建用户:useradd admin

设置密码:passwd admin

 

admin 用户增加 sudo 权限

Usermod -G wheel admin

 

切换admin用户

 

2、初始化目录并查看目录结构

sudo mkdir -p ~/oceanbase/store/obdemo /data/obdemo/{sstable,etc3} /redo/obdemo/{clog,ilog,slog,etc2}

3、将文件夹所有者改为admin

chown -R admin:admin /data /redo /home/admin/oceanbase

 

4、初始化目录

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

for f in {sstable,etc3}; do ln -s /data/obdemo/$f ~/oceanbase/store/obdemo/$f; done

5、安装tree

yum install tree

 

6、查看文件结构

tree oceanbase/ /data/ /redo/

 

7、安装oceanbase数据库

提前现在安装文件,放置服务器/home/rpm目录下

查看安装文件:ls -lrth /home/rpm/oceanbase-ce-*.rpm

安装数据库及相应依赖包:sudo rpm -ivh /home/rpm/oceanbase-ce*.rpm

 

 

8、查看安装信息

rpm -ql oceanbase-ce

 

9、设置LD_LIBRARY_PATH环境变量,启动observer

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/oceanbase/lib' >> ~/.bash_profile

. ~/.bash_profile

cd ~/oceanbase && bin/observer -i ens33 -p 2881 -P 2882 -z zone1 -d ~/oceanbase/store/obdemo -r '192.168.3.232:2882:2881' -c 20220306 -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/etc3;/redo/obdemo/etc2" -d ~/oceanbase/store/obdemo

 

 

10、安装客户端并连接

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

sudo rpm -ivh /home/rpm/obclient-2.0.0-2.el7.x86_64.rpm

 

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

 

11、集群自举(初始化)

set session ob_query_timeout=1000000000; alter system bootstrap ZONE 'zone1' SERVER '192.168.3.232:2882';

 

12、查看当前所有数据库

show databases;

 

13、设置集群管理员密码及OBPROXY 用户

设置集群管理员密码及OBPROXY 用户(proxyro)密码默认OBPROXY 连接 OceanBase 集群使用用户 proxyro 。这个用户不存在,需要创建。

alter user root identified by 'root123';

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

 

14、安装obproxy

sudo rpm -ivh /home/rpm/obproxy-3.2.0-1.el7.x86_64.rpm

 

tree ~/obproxy-3.2.0/

 

15、启动obproxy

cd ~/obproxy-3.2.0/ && bin/obproxy -r "192.168.3.232:2881" -p 2883 -o "enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false" -c obdemo

 

16、登陆obproxy

obclient -h 192.168.3.232 -u root@proxysys -P 2883 -p 默认密码为空

 

17、设置 obproxy 与 observer 间的通信密码

修改 OBPROXY 用户密码,同时需要修改OBPROXY 连接 OceanBase 集群用户 proxyro 的密码

alter proxyconfig set obproxy_sys_password = 'proxyro123' ;

 

alter proxyconfig set observer_sys_password = 'root123' ;

 

show proxyconfig like '%sys_password%';

 

18、通过proxy使用密码登录验证

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

 

obclient -h 192.168.3.232 -P 2883 -uroot@sys#obdemo -proot123 -c -A oceanbase

 

 

19、创建业务规格及资源池

alter resource unit sys_unit_config min_cpu=5;

 

CREATE resource unit S4C1G max_cpu=4, min_cpu=4, max_memory=’1G’, min_memory=‘1G’, max_iops=10000, min_iops=1000, max_session_num=1000000, max_disk_size=‘1024G’;

 

CREATE resource pool pool1 unit = ‘S4C1G’, unit_num = 1;

 

20、创建租户

create tenant obmysql resource_pool_list=(‘pool1’), primary_zone=‘RANDOM’,comment ‘mysql tenant/instance’, charset=‘utf8’ set ob_tcp_invited_nodes=’%’, ob_compatibility_mode=‘mysql’;

 

obclient -h 192.168.3.232 -P 2883 -uroot@obmysql#obdemo -p -c -A oceanbase

 

21、创建业务库

创建业务库:create database frm_test;

跳转业务库:use frm_test;

 

 

22、创建业务表并插入数据

常见业务表:create table user(id bigint not null auto_increment primary key,name varchar(50),sex varchar(1),age int);

 

查询表:show tables;

 

插入表数据:insert into user values(1,’张三’,’男’,11);

 

查询表数据:select * from user;