目录
1.修改配置文件(all-components-min.yaml)
OceanBase 数据库(OceanBase Database)是一款蚂蚁集团完全自研的企业级原生分布式数据库,在普通硬件上实现金融级高可用,首创“三地五中心”城市级故障自动无损容灾新标准,刷新 TPC-C 标准测试,单集群规模超过 1500 节点,具有云原生、强一致性、高度兼容 Oracle/MySQL 等特性。
一、体系架构
如图所示,数据服务层表示一个 OceanBase 数据库集群。该集群由三个子集群(Zone)组成,一个 Zone 由多台物理机器组成,每台物理机器称之为数据节点(OBServer 节点)。OceanBase 数据库采用 Shared-Nothing 的分布式架构,每个数据节点都是对等的。
OceanBase 数据库中存储的数据分布在一个 Zone 的多个数据节点上,其它 Zone 存放多个数据副本。如图所示的 OceanBase 数据库集群中的数据有三个副本,每个 Zone 存放一份。这三个 Zone 构成一个整体的数据库集群,为用户提供服务。
根据部署方式的不同,OceanBase 数据库可以实现各种级别容灾能力:
- 服务器(Server)级无损容灾:能够容忍单台服务器不可用,自动无损切换。
- 机房(Zone)级无损容灾:能够容忍单个机房不可用,自动无损切换。
- 地区(Region)级无损容灾:能够容忍某个城市整体不可用,自动无损切换。
当数据库集群部署在一个机房的多台服务器时,实现服务器级别容灾。当集群的服务器在一个地区的多个机房中时,能够实现机房级别容灾。当集群的服务器在多个地区的多个机房中时,能够实现地区级别容灾。
二、部署规划
角色 | 机器 | 备注 |
---|---|---|
OBD | 192.168.1.219 | 安装在中控机上的自动化部署软件 |
OBServer 节点 | 192.168.1.219 | OceanBase 数据库节点 |
OBProxy | 192.168.1.219 | OceanBase 高性能反向代理服务器 |
OBAgent | 192.168.1.219 | OceanBase 数据库监控采集框架 |
三、配置要求
1.Linux操作系统
2.安装jdk
3.可用内存不少于8G(生产环境最低要求 16 GB,长期使用要求不低于 32 GB,推荐 256 GB 及以上)
4.安装目录空间不少于50G
四、部署前配置
1.配置 limits.conf
将会话级别的最大栈空间大小设置为 unlimited
,最大文件句柄数设置为 655350
,Core 文件大小设置为 unlimited。
vi /etc/security/limits.conf
root soft nofile 655350
root hard nofile 655350
* soft nofile 655350
* hard nofile 655350
* soft stack 20480
* hard stack 20480
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited
需查看 /etc/security/limits.d/20-nproc.conf
文件中是否存在 nproc 的配置,若存在需同步修改该文件中 nproc 的值。
2.配置 sysctl.conf
vi /etc/sysctl.conf
#for oceanbase
#修改内核异步 I/O 限制
fs.aio-max-nr=1048576#网络优化
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 = 16777216net.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=0vm.swappiness = 0
vm.min_free_kbytes = 2097152fs.file-max = 6573688
#修改进程可以拥有的虚拟内存区域数量
vm.max_map_count = 655360#此处为 OceanBase 数据库的 data 目录
kernel.core_pattern = /oceanbase/data/core-%e-%p-%t
3.关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
4.关闭 SELinux
vi /etc/selinux/config
5.创建用户和数据目录
OceanBase后续的扩容默认使用admin用户,因此这里最好同步创建该账号。
#新建用户并修改密码
useradd admin
passwd admin
账户 admin 设置 sudo 权限
vim /etc/sudoers
添加如下内容:
#Same thing without a password
#%wheel ALL=(ALL) NOPASSWD: ALL
admin ALL=(ALL) NOPASSWD: ALL
创建数据目录
mkdir -p /oceanbase/data
mkdir -p /oceanbase/redo
chown -R admin:admin /oceanbase
6.设置无密码 SSH 登录
ssh-keygen #一路回车
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys#复制文件到其他服务器
scp -rp ~/.ssh 192.168.1.220: #最后是英文冒号
scp -rp ~/.ssh 192.168.1.225: #最后是英文冒号
7.安装jdk
OBD所在服务器需要安装jdk。OBD默认使用/usr/bin/java命令,所以还需要配置软连接:
ln -s /home/admin/tools/jdk1.8.0_202/bin/java /usr/bin/java
五、解压执行安装
1.解压:tar -zxf oceanbase-all-in-one-4.1.0.0-100120230423105040.el7.x86_64.tar.gz
2.进入解压目录 oceanbase-all-in-one,执行:./bin/install.sh 安装
3.配置环境变量
source ~/.oceanbase-all-in-one/bin/env.sh
4.禁用远程仓库
obd mirror disable remote
六、OBD部署集群
1.配置OBD
通过解压 all-in-one 安装包的方式安装,则可在 ~/.oceanbase-all-in-one/obd/usr/obd/example 目录下查看 OBD 提供的配置文件示例。
小规格开发模式,适用于个人设备(内存不低于 8 GB):
- 本地单机部署配置样例:mini-local-example.yaml
- 单机部署配置样例:mini-single-example.yaml
- 单机部署 + ODP 配置样例:mini-single-with-obproxy-example.yaml
- 分布式部署 + ODP 配置样例:mini-distributed-with-obproxy-example.yaml
- 分布式部署 + ODP + OCP Express 配置样例:default-components-min.yaml
- 分布式部署全部组件:all-components-min.yaml
专业开发模式,适用于高配置 ECS 或物理服务器(可用资源不低于 16 核 64 GB):
- 本地单机部署配置样例:local-example.yaml
- 单机部署配置样例:single-example.yaml
- 单机部署 + ODP 配置样例:single-with-obproxy-example.yaml
- 分布式部署 + ODP 配置样例:distributed-with-obproxy-example.yaml
- 分布式部署 + ODP + OCP Express 配置样例:default-components.yaml
- 分布式部署全部组件:all-components.yaml
复制~/.oceanbase-all-in-one/conf/mini-single-example.yaml 文件,到当前目录的conf目录(conf目录需要创建),以单机实例部署。
a)修改用户名和密码
b)修改oceanbase-ce机器的 IP、端口和相关目录,并配置内存相关参数及密码。
c)修改oceanbase-ce网络适配器名称
2.部署 OceanBase 集群
obd cluster deploy obtest -c conf/mini-single-example.yaml
3.启动 OceanBase 集群
obd cluster start obtest
七、访问数据库
1.使用obclient访问
obclient -h127.0.0.1 -P2881 -uroot -Doceanbase -A
2.使用mysql客户端访问
mysql -uroot -P2881 -h192.168.1.219 -Doceanbase -A