OceanBase数据库-OceanBase集群部署v1

前言

目前有关OceanBase功能、案例、故事的文章已经很多,对OceanBase感兴趣的朋友都想安装一个数据库试试。本文就是分享初学者如何手动搭建一个OceanBase集群。这也是学习理解OceanBase集群原理的第一步。在生产环境,我们有自动化运维平台OCP可以负责生产环境的OceanBase集群部署和运维。同时官网上提供的下载文件里也有python脚本自动化部署OceanBase集群,大家熟悉了安装原理后就可以自己动手使用自动化脚本安装。

OceanBase是分布式数据库,以集群的形式存在,是share-nothing架构。各个节点就是普通的x86服务器,使用本地盘(SSD),不依赖共享存储,也没有集群文件系统。各个节点之间网络互通即可,不需要直连线。所以OceanBase集群的搭建相比ORACLE RAC集群而言,还是很简单的。

目前OceanBase对内存资源要求不低,建议学习环境每个节点在32G以上,64G更好。并且OceanBase集群至少包含三个节点,节点数以奇数递增。如果有三台机器更好,但是如果只有一台机器,但是内存够大(192G以上),那也可以启动三个OceanBase进程来模拟三个节点。

OBServer安装

OceanBase分布式数据库是以集群形式存在,至少三个节点,在每个节点里存在形式是一个observer进程,不同节点上多个observer进程组成一个集群对外提供服务。

1. 安装规划

本次安装目标会搭建一个2-2-2架构的OceanBase集群,理论上这个需要6台机器,实际上我只有3台。因此我会在每个机器上启动2个observer进程来模拟2个节点。

机器节点规划如下。如果你只有一台大内存的机器,可以在上面起3个或者6个OceanBase进程,注意RPC PortConnect Port不要重复或者跟其他应用端口冲突即可。

ZoneIPRPC PortConnect Port

Zone1

192.168.1.241

2882

2881

Zone1

192.168.1.241

3882

3881

Zone2

192.168.1.81

2882

2881

Zone2

192.168.1.81

3882

3881

Zone3

192.168.1.86

2882

2881

Zone3

192.168.1.86

3882

3881

由于OceanBase是分布式数据库,应用的数据可能分布在任一节点上,所以应用需要通过一个反向代理OBProxy来访问OceanBase集群。OBProxy可以安装在任意机器上,包括OceanBase数据库节点上。这里我安装在其中一个节点上。

 

2. 机器环境准备

OceanBase机器节点环境主要是安装用户、内核参数配置、防火墙和SELinux设置、时间同步设置、和用户会话限制等。

  • 安装用户和配置目录

OceanBase默认会安装在用户admin下。可以选择安装在其他用户下(不使用RPM包安装)。

通常建议admin用户配置sudo权限,这样安装过程中就不需要root账户介入。

groupadd -g 500 admin

useradd -g 500 -u 500 admin -d /home/admin
passwd admin

mkdir /data

mkdir -p /data/1 /data/log1

chown -R admin:admin /data

# 赋予sudo权限
chmod u+w /etc/sudoers
vi /etc/sudoers
root ALL=(ALL) ALL
admin ALL=(ALL) ALL
chmod u-w /etc/sudoers

  • 用户会话设置

使用命令ulimit可以查看用户会话默认限制。修改下面文件可以默认会话限制修改永久生效。

sudo vi /etc/security/limits.conf

* soft nofile 655350
* hard nofile 655350
* soft stack 20480
* hard stack 20480
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited

退出重登录,检查设置生效

  • 内核参数配置

内核参数主要是网络、内存相关的设置。

sudo vi /etc/sysctl.conf

fs.aio-max-nr = 65536
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
kernel.core_pattern = /data/1/core-%e-%p-%t
vm.min_free_kbytes = 2097152
vm.max_map_count=655360

修改后使用下面命令生效,并检查

sudo sysctl -p

 

  • 关闭防火墙和SELinux

Linux的防火墙和SELinux安全特性可能会导致OceanBase各个节点之间通信异常,所以都建议关闭

sudo systemctl disable firewalld
sudo systemctl stop firewalld
sudo systemctl status firewalld

sudo vi /etc/selinux/config
SELINUX=disabled

sudo setenforce 0

  • 节点时间同步设置

OceanBase是个分布式数据库,要求各个节点的时间保持同步,时间误差控制在50ms以内。节点时间误差偏大时,后面初始化OceanBase集群会失败,或者现有的OceanBase集群会出现异常。

节点间的时间同步要靠Linux的NTP同步来保证。检查时间误差使用clockdiff命令

clockdiff 192.168.1.86
clockdiff 192.168.1.81
clockdiff 192.168.1.241

配置节点的NTP同步

sudo vi /etc/ntp.conf
server 192.168.1.239

停掉ntpd服务,强行同步一次时间,再启动ntpd服务。后续时间同步靠ntpd服务。

sudo service ntpd stop; 
sudo ntpdate 192.168.1.239;
sudo service ntpd start;

ntpq -4p

3. 软件安装

  • 软件目录

目前oceanbase.alipay.com上提供了OCP试用版下载,里面包含了OCP和OB的很多文件,手动安装只需要里面两个RPM文件:obproxyoceanbase。获取方法如下:

wget https://gw.alipayobjects.com/os/downloads/ossupload/ocp-release.zip
unzip ocp-release.zip
tar zxvf ocp-setup.tar.gz
cd ocp_yh
ls -lrth
obproxy-1.3.3-1506155.el7.x86_64.rpm

oceanbase-1.4.60-1571952.el7.x86_64.rpm

我们先看一下oceanbaseRPM包内容,

[admin@observer1 ]rpm2cpio oceanbase-1.4.60-1571952.el7.x86_64.rpm |cpio –div

[admin@observer1 ]cd home/admin;tar czvf ob1.4.6.tar.gz oceanbase/
[admin@observer1 ]scp home/admin/ob1.4.6.tar.gz 192.168.1.241:/tmp/;
[admin@observer1 ]scp home/admin/ob1.4.6.tar.gz 192.168.1.81:/tmp/;

可以看到目录结构如下。其中bin下有可执行文件observeretc目录用于存放配置和相关脚本。

如果直接安装该RPM包,则会安装在admin用户的根目录下。由于我们要在一个机器上启动两个observer进程,彼此软件目录要分开。所以改用解压缩RPM包文件然后复制到两个目录,目录owneradmin

  • 存储目录

OceanBase的存储目录是在软件目录下的store文件夹里。存储目录会包含数据文件目录和相关日志文件目录。出于性能考虑,数据文件目录和相关日志文件目录都需要单独的文件系统(如果底层是独立的盘会更好)。然后把实际目录映射到软件目录下的store目录下。

su - admin
kill -9 `pidof observer`
sleep 3
/bin/rm -rf /data/1/obdemo
/bin/rm -rf /data/log1/obdemo
/bin/rm -rf /home/admin/oceanbase/store/obdemo /home/admin/oceanbase/log/* /home/admin/oceanbase/etc/*config*
ps -ef|grep observer
df -h |egrep home\|data


su - admin
mkdir -p /data/1/obdemo/{etc3,sort_dir,sstable}
mkdir -p /data/log1/obdemo/{clog,etc2,ilog,slog,oob_clog}
mkdir -p /home/admin/oceanbase/store/obdemo
for t in {etc3,sort_dir,sstable};do ln -s /data/1/obdemo/$t /home/admin/oceanbase/store/obdemo/$t; done
for t in {clog,etc2,ilog,slog,oob_clog};do ln -s /data/log1/obdemo/$t /home/admin/oceanbase/store/obdemo/$t; done

由此一个完整的OBServer进程的相关目录如下:

  • 依赖RPM包安装

OceanBase会对数据进行压缩,所以依赖两个压缩协议的RPM文件:snappy.x86_64lzo.x86_64

rpm -q snappy.x86_64 lzo.x86_64

yum -y install snappy.x86_64 lzo.x86_64

  • 安装 OB 客户端

obclient-*.rpm ,这个是 OceanBase 命令行客户端,可以访问 Oc
eanBase 的 MySQL 和 ORACLE 租户

$ sudo rpm -ivh obclient-1.1.6-20191211162923.el7.alios7.x86_64.rpm
$ which obclient
/usr/bin/obclient

 安装 OBProxy

OceanBase 是分布式数据库,三副本的  OceanBase 集群至少有三台机器,业务数
据的读写可能在其中任意一台主机上,对业务方(客户端)来记录这么多主机
地址并不合理,所以 OceanBase 产品还提供了一个分布式代理 OBProxy 进程
,用于监听客户端的连接并转发请求到后端  OBServer 机器。默认监听端口是 28
83,可以自定义为 3306 或 1521、或者其他端口

OBProxy 的作用类似 ORACLE 的监听进程,不同之处是  OBProxy 会一直承担连接
中转角色。转发到后端  OBServer 的请求返回数据时,依然要通过  OBProxy 回发给
客户端。OBProxy 跟分布式数据库中间件的代理节点不同的区别在于  OBProxy
只做路由转发,不做 SQL 运算(合并、排序、过滤等逻辑)。所以  OBProxy 很
轻量,是无状态的,可以部署多个进程。但是  OBProxy 进程之间没有集群能力

$ sudo rpm -ivh obproxy-*.rpm

obproxy 安装目录在/ opt / taobao / install 下,通常我们作一个 到 obproxy 的软链接比较好
[admin@xxx /opt/taobao/install]
$pwd
/opt/taobao/install
[admin@xxx /opt/taobao/install]
$sudoln -s obproxy-1.5.8 obproxy
[admin@xxx /opt/taobao/install]
$ll
total 12
drwxr-xr-x 9 admin admin 4096 Dec 18 2018 ajdk-8.0.0-b60
lrwxrwxrwx 1 admin admin 13 Jan 9 15:12 obproxy -> obproxy-1.5.8
drwxr-xr-x 6 admin admin 4096 Jan 9 15:14 obproxy-1.5.8

OceanBase 集群初始化

1. OBServer启动

  • 启动参数

首先分别在每个节点上启动第一个observer进程,监听端口是2881和2882. 下图中灰色斜体部分都根据实际情况调整。注意根据实际情况修改zone名称、IP, 网卡名字等。

参数里指定数据文件的大小、内存的大小,以方便个别环境资源不足想精
确控制observer对资源的占用。具体说明如下:
-i 后接网卡名称。如果有 2 个网卡,要指定业务 IP 所在的网卡名称。
-z 后接 Zone 名称,可以自定义。 Zone 是逻辑机房概念,三台机器分属于不同机房,不能重复。
-d 后跟集群主目录,除集群名字 obdemo 外,其他不要变动。
-r 后跟一组服务器信息,格式是 ip:2882:2881,分号分割,表示 rootservice 信息。三台
机器参数一致。
-c 后跟集群 ID,一组数字,可以自定义。不同集群不要重复即可。
-n 后跟集群名称,可以自定义,不同集群名称不要重复即可。
-o 后跟集群参数,需要根据实际情况设置。 system_memory 指定 OB 内部保留内存,默
认是 30G,机器内存比较少的情况下把这个调小,影响就是可能在性能测试时有内存
不足问题。 datafile _ size 指定 OceanBase 数据文件 sstable 的大小(一次性初始化),根据
/data/1/ 可用空间评估,建议不少于100G,同时又保留一些剩余空间。如果/data/1跟
/data/log1本身就是一个文件系统(共用一个盘),那么务必保证留给/data/log1的空间大
小是内存的 2-4 倍。 config _ additional _ dir 指定参数文件的冗余目录。

192.168.1.241:2881:2882 zone1 注意修改 zone, IP, 网卡名字

ZONE1 

su - admin
cd /home/admin/oceanbase &&

/home/admin/oceanbase/bin/observer -i bond0 -P 2882 -p 2881 -z zone1 -d /home/admin/oceanbase/store/obdemo -r '11.*.84.78:2882:2881;11.*.84.79:2882:2881;11.*.84.84:2882:2881' -c 20200102 -n obdemo -o "system_memory=10G,datafile_size=100G,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"
sleep 5
ps -ef|grep observer

ZONE2 

su - admin
cd /home/admin/oceanbase && /home/admin/oceanbase/bin/observer -i bond0 -P 2882 -p 2881 -z zone2 -d /home/admin/oceanbase/store/obdemo -r '11.*.84.78:2882:2881;11.*.84.79:2882:2881;11.*.84.84:2882:2881' -c 20200102 -n obdemo -o "system_memory=10G,memory_limit=61440M,datafile_size=100G,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"
sleep 5
ps -ef|grep observer

 

其他两个节点的启动名分别如下:

192.168.1.81:2881:2882 zone2 注意修改 zone, IP, 网卡名字

2. 集群初始化

3节点OBServer都启动后,这一步集群初始化命令就至关重要,成败在此一举。

首先使用mysql命令登录任一节点,然后执行bootstrap命令。注意命令中不要有空格和空白。

mysql -h192.168.1.241 -uroot -P2881 -p

set session ob_query_timeout=1000000000;

alter system bootstrap ZONE 'zone1' SERVER '11.*.84.78:2882', ZONE 'zone2' SERVER '11.*.84.79:2882', ZONE 'zone3' SERVER '11.*.84.84:2882';

大概十几秒后集群启动成功。此时重新退出再登录集群。登录命令的username格式需要变化一下。登录成功后修改默认sys租户管理员root@sys

mysql -h192.168.1.241 -uroot@sys -P2881 -p -c -A oceanbase
alter user root identified by 'rootpwd';

如果是搭建单副本集群,则如下:

mysql -h127.1 -uroot -P2881 -p
Enter password:
set session ob_query_timeout=1000000000;alter system bootstrap ZONE 'zone1' SERVER '11.*.84.78:2882';

退出使用密码登录验证,同时查看集群资源信息。

mysql -h192.168.1.241 -uroot@sys -P2881 -prootpwd -c -A oceanbase

$mysql -h127.1 -uroot@sys -P2881 -p -c -A

obclient> show databases;

select

zone,

svr_ip,

inner_port,

cpu_total, cpu_assigned,

cpu_assigned_percent cpu_ass_percent, round(mem_total/1024/1024/1024) mem_total_gb,

round(mem_assigned/1024/1024/1024) mem_ass_gb,

round(disk_total/1024/1024/1024) disk_total_gb,

unit_num, substr(build_version,1,6) version
from __all_virtual_server_stat
order by zone, svr_ip, inner_port;

sys 租户的  root  密码默认为空,初始化成功后请修改密码。

obclient> alter user root identified by "123456";

--初始化obproxy

启动  OBProxy 时,请在 admin 用户下并在  OBProxy 软件的  home 目录。其他用
户或者其他目录下启动都可能带来问题。
OBProxy 启动时需要知道  OceanBase 集群在哪里,这是通过参数  rootservice_list 指
定。下面以三副本  OceanBase 集群为例。

mysql -h127.1 -uroot@sys -P2881 -p -c -A
Enter password:
CREATE USER proxyro IDENTIFIED BY password '*e9c2bcdc178a99b7b08dd25db58ded2ee5bff050' ;
GRANT SELECT ON *.* to proxyro;
show grants for proxyro;

$ cd /opt/taobao/install/obproxy && bin/obproxy -r "11.*.84.78:2881;11.*.84.79:2881;11.*.84.84:2881" -p 2883 -o "enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false" -c obdemo

如果前面模拟了  OCP Web 服务,也可以指定 API 地址。(可选)

$ cd /opt/taobao/install/obproxy && bin/obproxy -p2883 -cobdemo -o "obproxy_config_server_url=http://11.*.84.83:8088/services?Action=GetObProxyConfig&User_ID=alibaba-inc&uid=ocpmaster,enable_cluster_checkout=false,enable_strict_kernel_release=false,
enable_metadb_used=false"

启动之后,可以检查进程是否存在
$ ps -ef|grep obproxy
停止 OBProxy 进程的方法是直接 kill
$ kill -9 `pidof obproxy`
再次启动 OBProxy 进程时就不需要指定那么参数。因为参数已经写到参数文件
里。
$ cd /opt/taobao/install/obproxy && bin/obproxy

OB 连接示例

$mysql -h11.*.84.83 -uroot@sys#obdemo -P2883 -p -c -A oceanbase

$mysql -h11.*.84.83 -uobdemo:sys:root -P2883 -p -c -A oceanbase

obproxy的一些参数配置用于减少运行日志量或降低 CPU 消耗,请根据实际情况修改。
alter proxyconfig set slow_proxy_process_time_threshold='1000ms';
alter proxyconfig set xflush_log_level=ERROR;
alter proxyconfig set syslog_level=WARN;
alter proxyconfig set enable_compression_protocol=false;
MySQL [OceanBase]> show proxyconfig like '%compress%'\G

3. 集群扩容

目前搭建的还是1-1-1布局的OceanBase集群,需要再添加3个节点,扩容到2-2-2布局。这里就直接在3台机器上再启动第二个observer进程,监听端口是3881和3882。

  • 节点准备

192.168.1.241:3881:3882 zone1 注意修改node zone, ip, port, 网卡名字

cd /ob/oceanbase && /ob/oceanbase/bin/observer -i eth0 -P 3882 -p 3881 -z zone1 -d /home/admin/node2/oceanbase/store/obdemo -r '192.168.1.241:2882:2881;192.168.1.81:2882:2881;192.168.1.86:2882:2881' -c 20190423 -n obdemo -o "cpu_count=24,memory_limit=61440M,datafile_size=100G,config_additional_dir=/data/data/2/obdemo/etc3;/data/log/log2/obdemo/etc2"

ps -ef|grep observer

vi log/observer.log

192.168.1.81:2881:2882 zone2 注意修改node zone, ip, port, 网卡名字

 

cd /ob/oceanbase && /ob/oceanbase/bin/observer -i eth3 -P 3882 -p 3881 -z zone2 -d /home/admin/node2/oceanbase/store/obdemo -r '192.168.1.241:2882:2881;192.168.1.81:2882:2881;192.168.1.86:2882:2881' -c 20190423 -n obdemo -o "cpu_count=24,memory_limit=61440M,datafile_size=100G,config_additional_dir=/data/data/2/obdemo/etc3;/data/log/log2/obdemo/etc2"

ps -ef|grep observer

vi log/observer.log

192.168.1.86:2881:2882 zone3 注意修改node zone, ip, port, 网卡名字

cd /ob/oceanbase && /ob/oceanbase/bin/observer -i eth3 -P 3882 -p 3881 -z zone3 -d /home/admin/node2/oceanbase/store/obdemo -r '192.168.1.241:2882:2881;192.168.1.81:2882:2881;192.168.1.86:2882:2881' -c 20190423 -n obdemo -o "cpu_count=24,memory_limit=61440M,datafile_size=100G,config_additional_dir=/data/data/2/obdemo/etc3;/data/log/log2/obdemo/etc2"

ps -ef|grep observer

vi log/observer.log

  • 集群扩容

将新增的3节点加入到OceanBase集群中。注意zone名称和IP要对应正确。

alter system add server '192.168.1.241:3882' zone 'zone1';
alter system add server '192.168.1.81:3882' zone 'zone2';
alter system add server '192.168.1.86:3882' zone 'zone3';

select zone, svr_ip, inner_port, cpu_total,

cpu_assigned, cpu_assigned_percent cpu_ass_percent,

round(mem_total/1024/1024/1024) mem_total_gb,

round(mem_assigned/1024/1024/1024) mem_ass_gb,

round(disk_total/1024/1024/1024) disk_total_gb, unit_num,

substr(build_version,1,6) version
from __all_virtual_server_stat
order by zone, svr_ip, inner_port; 

OceanBase 集群运维

OceanBase分布式数据库跟传统数据库或者其他分布式数据库产品的一个显著的区别就是它有资源管理的思想在里面。OceanBase集群把多台主机的资源(CPU、内存和空间)聚合在一个大的池子里,然后从中分配出指定规格的资源给一个具体的业务使用。这个提供给业务使用的就是租户,也叫实例。

下面简单演示一个租户的创建过程。

1. 租户的创建

  • 定义资源规格 创建UNIT

mysql -h192.168.1.241 -uroot@sys#obdemo -P2883 -prootpwd -c -A oceanbase

create resource unit unit_4c20g512g, max_cpu=4, max_memory='20G', min_memory='10G', max_iops=10000, min_iops=1000, max_session_num=1000000, max_disk_size=53687091200;
create resource unit unit_8c40g1024g, max_cpu=8, max_memory='40G', min_memory='20G', max_iops=20000, min_iops=5000, max_session_num=1000000, max_disk_size=107374182400;
create resource unit unit_16c80g2048g, max_cpu=16, max_memory='80G', min_memory='40G', max_iops=50000, min_iops=10000, max_session_num=1000000, max_disk_size=214748364800;

select unit_config_id,name,max_cpu,min_cpu,round(max_memory/1024/1024/1024) max_mem_gb, round(min_memory/1024/1024/1024) min_mem_gb, round(max_disk_size/1024/1024/1024) max_disk_size_gb
from __all_unit_config
order by unit_config_id;

  • 创建资源池

mysql -h192.168.1.241 -uroot@sys#obdemo -P2883 -prootpwd -c -A oceanbase

create resource pool pool_demo unit = 'unit_4c20g512g', unit_num = 1;

select resource_pool_id, name,unit_count, unit_config_id, zone_list, tenant_id, gmt_modified
from __all_resource_pool order by resource_pool_id ;

  • 创建租户

mysql -h192.168.1.241 -uroot@sys#obdemo -P2883 -prootpwd -c -A oceanbase

create tenant t_obdemo resource_pool_list=('pool_demo');

select tenant_id, tenant_name, zone_list, locality ,gmt_modified from __all_tenant;

  • 登录租户

    租户连接 断开sys租户,连接用户租户

mysql -h192.168.1.241 -uroot@t_obdemo#obdemo -P2883 oceanbase -A -p

show databases;

create database sysbenchtest;
grant all privileges on sysbenchtest.* to testuser@'%' identified by 'testpwd';

2. 租户扩容

  • 租户内查看自己的资源能力

mysql -h192.168.1.241 -uroot@t_obdemo#obdemo -P2883 oceanbase -A -p

select tenant_id,tenant_name, unit_id, zone, svr_ip,svr_port,max_cpu,min_cpu,round(max_memory/1024/1024/1024) max_mem_gb, round(min_memory/1024/1024/1024) min_mem_gb, round(max_disk_size/1024/1024/1024) max_disk_size_gb
from gv$unit;
 

如果业务觉得数据库很慢且瓶颈是在资源,则对租户的资源能力进行扩容。

  • 租户扩容

租户扩容有两个思路,一是提升资源单元规格,二是增加资源单元数量。

mysql -h192.168.1.241 -uobdemo:sys:root -P2883 -prootpwd -c -A oceanbase

alter resource pool pool_demo unit = 'unit_8c40g1024g';
alter resource pool pool_demo unit_num = 2;

//缩容同理

alter resource pool pool_demo unit_num = 1;

3. 集群参数配置

至此,OceanBase集群和租户都搭建好了。为了避免学习环境因为资源紧张导致OceanBase不稳定,还需要做一些参数配置,类似于ORACLE中的参数变更。

  • 集群参数修改

配置日志相关参数

mysql -h192.168.1.241 -uobdemo:sys:root -P2883 -prootpwd -c -A oceanbase

-- observer log自清理设置
alter system set enable_syslog_recycle=True;
alter system set max_syslog_file_count=5;

show parameters where name in ('enable_syslog_recycle', 'max_syslog_file_count');

配置OBProxy参数

-- obproxy设置:
alter proxyconfig set enable_metadb_used=False;
alter proxyconfig set enable_proxy_scramble=True;
alter proxyconfig set proxy_mem_limited=2G;
alter proxyconfig set log_dir_size_threshold=10G;

配置冻结合并参数

-- 关闭轮转合并,设置转储次数
alter system set enable_merge_by_turn = false;
alter system set minor_freeze_times=3;
alter system set minor_warm_up_duration_time='300s';

  • 租户变量修改

OceanBase还支持对租户的行为进行配置,这些是通过租户变量的修改实现。类似于MySQL中的变量修改。

mysql -h192.168.1.241 -uroot@t_obdemo#obdemo -P2883 oceanbase -A -p
set global ob_query_timeout=100000000;

OceanBase 集群清理

如果前面在集群初始化中出现报错,则需要清理所有步骤重新来过。

OceanBase安装环境清理

pkill observer
Sleep 10

rpm -qa|grep oceanbase
rpm -qa|grep obproxy
sudo rpm -e

su - admin
/bin/rm -rf ~/node1 ~/node2
/bin/rm -rf /data/data/* /data/log/*

转载于:https://www.cnblogs.com/mq44944/p/obinstall.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OceanBase MiniOB是阿里云自主研发的一种高可用、高性能的分布式关系型数据库。它在扩展性、可用性、性能和易用性方面都具备很高的优势。 首先,OceanBase MiniOB具备良好的扩展性。它采用了分布式架构和共享存储的方式,能够在大规模节点上进行水平拓展,并支持PB级别的数据量。它还具备分布式多租户的能力,使多个业务可以在同一个集群上独立地运行,满足企业多样化的需求。 其次,OceanBase MiniOB具备高可用性。它采用多副本的数据容灾方式,在数据中心级别的故障发生时,仍然能够保持数据的可读写和访问能力。它还支持自动的容灾切换和副本数据的自动同步,保证数据的一致性和可用性。 另外,OceanBase MiniOB在性能方面表现出色。它采用了基于内存的存储引擎,配合优化的查询处理和并发控制策略,能够提供高吞吐量和低延迟的数据访问能力。它还支持多种查询语言和复杂查询操作,适用于各种场景下的需求。 最后,OceanBase MiniOB具备易用性。它提供了全面的管理工具和监控系统,方便管理员对数据库进行管理和监控。同时,它也提供了简洁明了的API和丰富的开发工具,支持开发人员进行开发和调试工作,提高开发效率。 总之,OceanBase MiniOB作为一种先进的分布式关系型数据库,具备了扩展性强、高可用性、高性能和易用性等优势。它能够满足企业在海量数据存储和高并发访问方面的需求,是当前业界领先的数据库解决方案之一。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值