echo never > /sys/kernel/mm/transparent_hugepage/enabled
10.8.16.150 oceanbase1
10.8.16.151 oceanbase2
10.8.16.152 oceanbase3
10.8.16.153 oceanbase4
便捷脚本
#!/usr/bin/bash
#ip列表,密码
SERVERS=("root@oceanbase1" "root@oceanbase2" "root@oceanbase3" "root@oceanbase4")
PASSWORD="cqie"
keygen() {
sudo yum -y install expect
expect -c "
spawn ssh-keygen -t rsa
expect {
*(~/.ssh/id_rsa):* { send -- \r;exp_continue}
*(y/n)* { send -- y\r;exp_continue}
*Enter* { send -- \r;exp_continue}
*(y/n)* { send -- y\r;exp_continue}
*Enter* { send -- \r;exp_continue}
eof {exit 0}
}
expect eof
"
}
copy(){
expect -c "
set timeout -1
spawn ssh-copy-id $1
expect {
*(yes/no)* { send -- yes\r; exp_continue }
*password:* { send -- $PASSWORD\r; exp_continue}
eof {exit 0}
}
expect eof
"
}
ssh_copy_id_to_all(){
keygen ;
for host in ${SERVERS[@]}
do
copy $host
done
}
ssh_copy_id_to_all
yum install ntp ntpdate -y
如果您计划部署分布式 OceanBase 集群,需要保证集群内各机器的时间同步,否则集群无法启动,服务在运行时也会出现异常。OceanBase 集群允许的时钟偏差不能超过 2s。当超过 2s 时,会出现无主情况。恢复时钟同步后,重启 OceanBase 集群,可以恢复正常
systemctl start ntpd
systemctl enable ntpd
这里使用oceanbase1作为NTP服务端服务器
#以 root 用户登录 NTP 服务端服务器,运行以下命令编辑配置文件:
vi /etc/ntp.conf
#在配置文件中添加以下内容:
server cn.pool.ntp.org
#保存并关闭配置文件。
#重启ntp服务
systemctl restart ntpd
unlimited
,最大文件句柄数设置为 655350
,Core 文件大小设置为 unlimited
。执行以下命令,打开 /etc/security/limits.conf
配置文件:
vi /etc/security/limits.conf
/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/sysctl.conf
配置文件:vi /etc/sysctl.conf
/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 = 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
# 此处为 OceanBase 数据库的 data 目录
kernel.core_pattern = /data/core-%e-%p-%t
sysctl -p
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
#执行以下命令,打开 /etc/selinux/config 配置文件:
vi /etc/selinux/config
#在 /etc/selinux/config 配置文件中修改对应配置项为以下内容:
SELINUX=disabled
#执行以下命令或重启服务器,使更改生效:
setenforce 0
#执行以下命令,查看更改是否生效:
sestatus
本文采用三副本部署模式,推荐使用四台机器,您可以根据自己实际情况选择合适的部署方案。本文中四台机器的使用情况如下:
角色 | 机器 | 备注 |
---|---|---|
OBD | 10.8.16.150 | 安装在中控机上的自动化部署软件 |
OBServer 节点 | 10.8.16.151 | OceanBase 数据库 Zone1 |
OBServer 节点 | 10.8.16.152 | OceanBase 数据库 Zone1 |
OBServer 节点 | 10.8.16.153 | OceanBase 数据库 Zone1 |
OBAgent | 10.8.16.151、10.8.16.152、10.8.16.153 | OceanBase 数据库监控采集框架 |
ODP | 10.8.16.150 | OceanBase 数据库专用的反向代理软件 |
OCP Express | 10.8.16.150 | 基于 Web 的 OceanBase 数据库 4.x 管理工具 |
若您的机器可以连接网络,可执行如下命令在线安装。
bash -c "$(curl -s https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/installer.sh)"
source ~/.oceanbase-all-in-one/bin/env.sh
若您的机器无法连接网络,可参考如下步骤离线安装。
从 OceanBase 软件下载中心 下载最新的 all-in-one 安装包,并将其复制到中控机任意目录下。
在安装包所在目录下执行如下命令解压安装包并安装。
tar -xzf oceanbase-all-in-one-*.tar.gz
cd oceanbase-all-in-one/bin/
./install.sh
source ~/.oceanbase-all-in-one/bin/env.sh
启动白屏界面
命令行执行 obd web
命令启动白屏界面,单击输出的地址访问白屏界面,在白屏界面中单击 开启体验之旅 即可进入到 OceanBase 数据库的配置界面。
obd web
说明
obd web -p <PORT>
命令指定端口。