oceanbase安装

Nolan_Chan Nolan_Chan     2022-10-09     321

关键词:

背景:

OceanBase是阿里巴巴、蚂蚁金服自主研发的可扩展的分布式关系数据库,实现了数千亿条记录、数百 TB 数据上的跨行跨表事务,主要支持支付宝核心的交易、支付、会员和账务系统等 OLTP 和 OLAP 在线业务。

在2017年双11期间,OceanBase承担了100%的交易,全球支付总笔数14.8亿笔,支付峰值25.6万笔/笔,数据库处理峰值4200万次/秒。

 

OceanBase群集架构:

OceanBase使用Paxos协议保证数据写到至少两个Zone中,一般情况下建议为三个Zone。也就是说若出现两个Zone都出现问题,需要DBA介入设置才能正常对外提供服务。

 

 

 

 

Oceanbase群集架构图

 

概念科普:

Zone:由多台OBServer组成,成为N-N-N部署架构,其中N表示OBServer的个数。

每个Zone包含两种角色:

RootService:总控服务,一主两备

PartitionService:分区服务,每个OBServer都提供

每个Zone只需一个RootService

 

推荐部署方式:

由于官方推荐OceanBase集群至少需要包含三个Zone,推荐三副本或者五副本的部署方式。

 

部署模式

说明

三副本部署

1-1-1 三机部署是最小规模,每个 zone 一台机器。 生产环境主要包括两地三中心部署模式, 是最普遍的模式。

五副本部署

包括两地三中心,三地五中心的部署模式,能够实现城市级无损容灾。

 

根据三副本的部署方式有同城三机房部署、两地三中心部署的解决方案,根据五副本的部署方式有两地三中心五副本部署、三地三中心五副本部署的解决方案。

 

 

 

同城三机房部署架构图

 

今天的分享我们是以同城三机房部署为案例,进行OceanBase群集进行安装部署。

 

安装流程:

OceanBase群集安装流程如图

 

 

 

安装流程图

 

l  软件要求

类别

要求

操作系统

Linux Redhat 6 x86-64

内核

2.6.32 及以上版本, 生产系统推荐 64 核

CPU

至少8个CPU

内存

16G 及以上,生产系统推荐 512G

磁盘类型

推荐 SSD

磁盘空间

内存大小的 4 倍以上

网卡

推荐万兆互联

 

l  安装规划

规划建议均以1-1-1 三副本最小部署 OceanBase 集群为例

  • 主机规划

规划项

规划

服务器 IP

snc-ob1:192.168.22.99

snc-ob2:192.168.22.98

snc-ob3:192.168.22.97

网卡名称

eth0/bond0

端口(端口必须为2881和2882无法更改!)

RPC:服务端口 2882。

MySQL:客户端端口 2881。

安装用户

admin

用户密码

******

安装目录

/home/admin/oceanbase

集群 ID

1

App名

snc

  • 磁盘规划

目录名

目录用途

空间大小

/data/1

数据盘承载了基线数据, 物理上只有一个基线数据文件 block_file,在安装目录 store/sstable 下。通过 OBServer 进程启动时一次性创建,大小根据启动参数datafile_disk_percentage 采用磁盘预分配策略,默认值为 95%,创建后无法调整大小。

根据存放数据量进行配置

/data/log1

事务日志盘包含多个固定大小的小文件, 位于安装目录store/{clog,ilog,slog}, 按需自动创建和清除,磁盘写到 80%会触发自清除逻辑,但前提是这部分日志数据对应的内存数据已经通过合并融合到了基线数据中,才能被删除。

至少内存数据大小的三倍,建议值为五倍

/home/admin/oceanbase

基线数据文件和事务日志文件会通过软连接指向上述的两个独立磁盘,还有另外一个不断增长的文件是 OB 运行日志,在安装目录 log 下。

40GB

 

l  准备安装环境

  • 检查操作系统版本

使用root用户执行确认操作系统版本

# cat /proc/version

预期结果:

内核要求在 2.6.32 及以上版本64位操作系统上运行。

  • 修改操作系统配置

²  检查网卡名称和 IP

使用root用户执行

# ifconfig

预期结果:IP地址与端口与规划一致,以snc-ob1为例

 

 

²  配置“sysctl.conf” 文件

为保证 OceanBase 正常运行,使用root用户在安装前运行vi编辑器修改“sysctl.conf” 文件以提高Linux 的系统性能。添加以下内容:

# for oceanbase

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

执行命令以下使配置生效。

# /sbin/sysctl -p /etc/sysctl.conf

²  验证 NTP 时间同步

为什么要在这里特别提出ntp同步,oceanbase群集有一个硬性规定,若群集内各个机器的时间相差不能超过100毫秒,会导致群集无法启动。

使用root用户执行

# ntpstat

预期结果:

时间同步成功,建议同一个机房内的机器均采用同一个时钟同步源。

 

 

 

 

 

 

 

 

²  配置操作系统 ulimit 资源限制

使用root用户运行vi编辑器修改/etc/security/limits.conf 配置文件添加以下内容

* soft nofile 655350

* hard nofile 655350

* soft stack 20480

* hard stack 20480

* soft core unlimited

* hard core unlimited

执行命令,使全局生效

# ulimit -a

  • 创建安装用户

使用root用户执行以下命令创建admin用户

# useradd -d /home/admin -s /bin/bash -m admin

l  准备安装包

把OceanBase RPM安装包和Mysql客户端RPM包上传至/opt目录下。

l  安装 OceanBase 软件

在安装前,需要用root用户对admin用户配置sudo操作,该操作不在此次分享范围内。

使用admin用户执行以下命令进行OceanBase软件安装,切记不能使用yum进行安装OceanBase RPM包!!!否则会导致群集无法启动!!!不建议使用不标准的方式,包括目录只要一改就一堆的问题!!!

$ sudo rpm -ivh oceanbase-1.XX.el6.x86_64.rpm --prefix=/home/admin/oceanbase;

将安装目录赋给“admin” 用户

$ sudo chown -R admin:admin /home/admin/oceanbase

l  创建所需目录

使用admin用户创建相关目录并创建相关链接

$ mkdir -p /data/1/abcbank/{sstable,etc3,sort_dir} /data/log1/abcbank/{slog,clog,ilog,etc2} /home/admin/oceanbase/store/abcbank

$ ln -sf /data/1/abcbank/sstable /home/admin/oceanbase/store/abcbank/sstable && ln -sf /data/1/abcbank/sort_dir /home/admin/oceanbase/store/abcbank/sort_dir && ln -sf /data/log1/abcbank/slog /home/admin/oceanbase/store/abcbank/slog && ln -sf /data/log1/abcbank/clog /home/admin/oceanbase/store/abcbank/clog && ln -sf /data/log1/abcbank/ilog /home/admin/oceanbase/store/abcbank/ilog

l  启动 OceanBase

在每台ZONE机器上用admin用户执行以下命令,启动OceanBase

 

 

ZONE_1这个地方需要修改为对应的ZONE名

服务 

参数 

说明

observer

{-h | --help} 

命令帮助。

{-z | --zone} zone 

指定 zone 信息。

{-p | --mysql_port} port 

设置 MySQL 协议端口。

{-P | --rpc_port} port 

RPC 协议端口。

{-N | --nodaemon} 

不运行守护进程

{-n | --appname} appname 

指定服务的 App 名称。

{-c | --cluster_id} ID 

集群 ID。

{-d | --data_dir} DIR 

指定数据文件目录

{-i | --devname} dev 

网卡名。

{-o | --optstr} parameterexpr 

其他参数。

{-r | --rs_list} rs_list 

rootservice 服务器列表。

{-l, --log_level} log_level 

日志级别。

这里需要注意:ootservice_list默认第一个列出的ip为主节点,datafile_disk_percent_percentage强烈不建议创建后修改该值,创建后会预分配空间。

l  初始化 OceanBase

使用admin用户使用mysql客户端进行远程登录任意一ZONE,并运行BootStrap完成初始化。

$ mysql -h192.168.22.99 -P2881 –uroot

SQL> ALTER      SYSTEM       BOOTSTRAP

REGION      'HANGZHOU'     ZONE    'ZONE_1'      SERVER       '192.168.22.99:2882',

REGION      'HANGZHOU'     ZONE    'ZONE_2'      SERVER       '192.168.22.98:2882',

REGION      'HANGZHOU'     ZONE    'ZONE_3'      SERVER       '192.168.22.97:2882';

 

 

oceanbase-安装(代码片段)

...&解压安装OBD安装数据库部署规划本文主要是安装部署oceanbase4.0.按照官方的要求,测试环境要求最低2C8G(实测可用内存最少10g,虚拟机设置12g采购)我准备了几台centos7.9的虚拟机,配置如下机器名ip地址配... 查看详情

蚂蚁金服庆涛:oceanbase支撑2135亿成交额背后的技术原理

演讲嘉宾简介:梅庆(花名:庆涛)现任蚂蚁金服OceanBase团队技术专家,曾经支持过阿里云数据库和天猫双11大促业务,在分布式数据库的开发和架构上有着丰富的经验。目前主要从事OceanBase对外输出的解决方案设计和技术推广... 查看详情

springboot整合oceanbase,实现oracle无缝切换到oceanbase(代码片段)

...💅开源项目:【轮子之王】文章目录前言Springboot整合Oceanbase一、引入依赖二、添加数据库连接配置三、处理异常Mybatis-plus框架异常四、数据库方言五、设 查看详情

springboot整合oceanbase,实现oracle无缝切换到oceanbase(代码片段)

...💅开源项目:【轮子之王】文章目录前言Springboot整合Oceanbase一、引入依赖二、添加数据库连接配置三、处理异常Mybatis-plus框架异常四、数据库方言五、设 查看详情

oceanbase的bilibili

..._哔哩哔哩_BilibiliOB小话唠,github:https://github.com/oceanbase/oceanbase欢迎大家star;OB小话唠的主页、动态、视频、专栏、频道、收藏、订阅等。哔哩哔哩Bilibili,你感兴趣的视频都在B站。https://space.bilibili.com/1918759067 查看详情

oceanbase的bilibili

..._哔哩哔哩_BilibiliOB小话唠,github:https://github.com/oceanbase/oceanbase欢迎大家star;OB小话唠的主页、动态、视频、专栏、频道、收藏、订阅等。哔哩哔哩Bilibili,你感兴趣的视频都在B站。https://space.bilibili.com/1918759067 查看详情

oceanbase的bilibili

..._哔哩哔哩_BilibiliOB小话唠,github:https://github.com/oceanbase/oceanbase欢迎大家star;OB小话唠的主页、动态、视频、专栏、频道、收藏、订阅等。哔哩哔哩Bilibili,你感兴趣的视频都在B站。https://space.bilibili.com/1918759067 查看详情

猿创征文|国产数据库实战之使用docker部署oceanbase数据库(代码片段)

猿创征文|国产数据库实战之使用Docker部署OceanBase数据库一、OceanBase介绍1.OceanBase介绍2.OceanBase特点3.OceanBase数据库基础概念4.OceanBase相关概念①OBServer②区域(zone)③资源池④租户⑤数据分区⑥副本5.本次实践介绍二、检查... 查看详情

oceanbase数据库备份恢复描述不正确

参考技术AOceanBase数据库是一个读写分离的系统。OceanBase内部数据按照存储方式,划分为基于SSTable格式的基线数据和基于MemTable格式的增量数据。Oceanbase数据库备份是一个读写分离的系统。OceanBase的物理备份就是把某次合并的基... 查看详情

大名鼎鼎的oceanbase居然在买star了?

OceanBase,相信大家都不陌生了吧?OceanBase是由蚂蚁集团完全自主研发的企业级分布式关系数据库,始创于2010年。OceanBase具有数据强一致、高可用、高性能、在线扩展、高度兼容SQL标准和主流关系数据库、低成本等特... 查看详情

封仲淹:oceanbase开源技术生态全景解析

欢迎访问OceanBase官网获取更多信息:https://www.oceanbase.com/3月25日,第一届OceanBase开发者大会在北京举行,OceanBase开源生态资深研发总监封仲淹为大家带来了《OceanBase开源技术生态全景解析》的分享。以下为演讲实录... 查看详情

猿创征文|破世界纪录的国产数据库-oceanbase

...处请大家指正。猿创征文|破世界纪录的国产数据库-OceanBase本文关键字:VLDB、国产、数据库、OceanBase、金融文章目录猿创征文|破世界纪录的国产数据库-OceanBase一、7.07亿tpmC1.TPMC2.VLDB二、OceanBase1.数据库介绍2.数据库... 查看详情

oceanbase-概述

...tidb的体系架构,了解了其运行原理;今儿了解下OceanBase;产品家族先看下官网:https://w 查看详情

oceanbase创建租户(代码片段)

OceanBase创建租户使用root用户连接sysy租户使用root用户连接sys租户[admin]#mysql-h192.168.1.71-P2881-Doceanbase-uroot@sys-pOceanbase2881-A创建单元规格查看已创有的资源单元规格obclient[oceanbase]>select*from__all_unit_config;+----------------------------+---------... 查看详情

阿里技术分享:阿里自研金融级数据库oceanbase的艰辛成长之路

本文原始内容由作者“阳振坤”整理发布于OceanBase技术公众号。1、引言OceanBase是蚂蚁金服自研的分布式数据库,在其9年的发展历程里,从艰难上线到找不到业务场景濒临解散,最后在双十一的流量考验下浴火重生,成为蚂蚁金... 查看详情

2021oceanbase数据库大赛来了!

 Datawhale赛事 主办方:OceanBase、蚂蚁集团学术团队在数据库领域,有这样一家企业,一直坚持做难而正确的事情。早在2010年,这个由20人组成的团队便开始筑梦之路,通过完全自主研发,实现心中那个真... 查看详情

mavenpom.xml文件中添加本地jar包

oceanbase-client-ojdbc-4.6.1.ja一、怎么添加jar到本地仓库呢?步骤:1.cmd命令进入该jar包所在路径2.执行命令:mvninstall:install-file-Dfile=oceanbase-client-ojdbc-4.6.1.jar-DgroupId=oceanbase-client-ojdbc-DartifactId=oceanbase-client-ojdbc-Dversi... 查看详情

mavenpom.xml文件中添加本地jar包

oceanbase-client-ojdbc-4.6.1.ja一、怎么添加jar到本地仓库呢?步骤:1.cmd命令进入该jar包所在路径2.执行命令:mvninstall:install-file-Dfile=oceanbase-client-ojdbc-4.6.1.jar-DgroupId=oceanbase-client-ojdbc-DartifactId=oceanbase-client-ojdbc-Dversi... 查看详情