oceanbase 社区版安装
# 一、环境准备
|节点类别|主机名|IP|
|-|-|-|
|OBSERVER|observer1|192.168.3.41|
|OBSERVER|observer2|192.168.3.42|
|OBSERVER|observer3|192.168.3.43|
|ocp |ocpserver|192.168.3.47|
|中控机 |obcontrol|192.168.3.48|
# 二、名词解析
中控机:存储Oceanbase数据库安装包和集群配置信息的机器
目标机器:安装OceanBase数据库的机器
OBD:Oceanbase Deployer,Oceanbase 开源软件的安装部署工具,简称OBD
OBProxy:Oceanbase Database Proxy, OceanBase高性能反向代理服务器,简称OBProxy
OCP: OceanBase cloud Platform OceanBase运维管理工具,简称OCP
# 三、主机安装步骤
## 3.1 配置hosts文件和磁盘的规划
```
echo "192.168.3.41 observer1"> /etc/hosts
echo "192.168.3.42 observer2">> /etc/hosts
echo "192.168.3.43 observer3">> /etc/hosts
echo "192.168.3.47 ocpserver">> /etc/hosts
echo "192.168.3.48 obcontrol">> /etc/hosts
cat /etc/hosts
pvcreate /dev/sdb /dev/sdc
vgcreate redovg /dev/sdb
vgcreate datavg /dev/sdc
lvcreate -n datalv -L 200000M datavg
lvcreate -n adminlv -L 100000M datavg
lvcreate -n redolv -L 100000M redovg
mkfs.xfs /dev/datavg/datalv
mkfs.xfs /dev/datavg/adminlv
mkfs.xfs /dev/redovg/redolv
cat >> /etc/fstab << EOF
/dev/datavg/datalv /data xfs defaults 0 0
/dev/datavg/adminlv /home/admin xfs defaults 0 0
/dev/redovg/redolv /redo xfs defaults 0 0
EOF
cat /etc/fstab
```
## 3.2 创建目录和admin用户
```
mkdir -p /data/soft
mkdir /redo
mkdir /home/admin
mount /data
mount /home/admin
mount /redo
rm -fr /var/spool/mail/admin
userdel -r admin
groupadd -g 66000 admin
useradd -u 66000 -g admin -m -d /home/admin -s /bin/bash admin
cp /etc/skel/.bash* /home/admin/
echo "admin" | passwd --stdin admin
chown -R admin:admin /data
chown -R admin:admin /redo
chown -R admin:admin /home/admin
```
## 3.3 配置 sudoers文件和 字符集
```
cat >> /etc/sudoers << EOF
Admin ALL=(ALL) NOPASSWD: ALL
EOF
测试:
su - admin
sudo -su root
exit
exit;
echo "export LANG=en_US.UTF8" >> ~/.bash_profile
cat ~/.bash_profile
echo "export LANG=en_US.UTF8" >> /home/admin/.bash_profile
systemctl set-default multi-user.target
```
## 3.4 配置yum
```
mkdir /media/cdrom
mount /dev/cdrom /media/cdrom
cd /etc/yum.repos.d
mkdir bk
mv -f *.repo bk/
vi /etc/yum.repos.d/oracle.repo
[Server]
name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
baseurl=file:///media/cdrom
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
yum install -y expect mariadb mariadb-devel python-devel openssl-devel gcc gcc-gfortran gcc-c++ python-setuptools bc et-tools mtr chrony bind-utils libaio tree
```
## 3.5 配置limits.conf和sysctl.conf
```
cat >> /etc/security/limits.conf << EOF
* soft nofile 655360
* hard nofile 655360
* soft nproc 655360
* hard nproc 655360
* hard core unlimited
* soft core unlimited
* hard stack 10240
* soft stack 10240
* hard cpu unlimited
* soft cpu unlimited
EOF
cat >> /etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
vm.swappiness=1
vm.max_map_count=655360
kernel.pid_max=819200
#vm.nr_hugepages = 0
kernel.core_pattern=/data/1/core-%e-%p-%t
vm.min_free_kbytes=204800
net.core.somaxconn=32768
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=10000 65535
net.ipv4.ip_forward=1
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.default.accept_source_route=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_tw_reuse=1
net.ipv4.tcp_slow_start_after_idle=0
EOF
sysctl -p
```
## 3.6 配置时间服务
```
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock
echo "SELINUX=disabled" > /etc/selinux/config
echo "#SELINUXTYPE=targeted " >> /etc/selinux/config
cat /etc/selinux/config
setenforce 0
systemctl stop firewalld.service
systemctl disable firewalld.service
cat >> /home/admin/.vimrc << EOF
map <F10>:set paste<CR>
map <F11>:set nopaste<CR>
EOF
cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
cat >> /etc/rc.d/rc.local << EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF
chmod +x /etc/rc.d/rc.local
/etc/rc.d/rc.local
# vim set_deadline.sh
for DISK in `ls /sys/block | grep "sd\?"` ; do echo deadline > /sys/block/$DISK/queue/scheduler ; done
yum -y install chrony
192.168.3.48:
/etc/chrony.conf
cp /etc/chrony.conf /etc/chrony.conf.bak
cat >> /etc/chrony.conf << EOF
server 127.127.1.0
allow 192.168.3.0/24
local stratum 10
EOF
systemctl start chronyd
systemctl enable chronyd
其他主机
cp /etc/chrony.conf /etc/chrony.conf.bak
cat >> /etc/chrony.conf << EOF
server 192.168.3.48
allow 192.168.3.0/24
local stratum 10
EOF
systemctl start chronyd
systemctl enable chronyd
timedatectl set-timezone Asia/Shanghai
chronyc -a makestep
chronyc sources -v
date
```
## 3.7 配置ssh
```
cd ssh
chmod u+x ssh
./ssh -user admin -hosts "observer1 observer2 observer3 observer4 observer5 observer6 ocpserver obcontrol " -advanced -exverify -confirm
chmod 600 /home/admin/.ssh/config
su - admin
ssh observer1 date
ssh observer2 date
ssh observer3 date
ssh observer4 date
ssh observer5 date
ssh observer6 date
ssh ocpserver date
ssh obcontrol date
```
# 四、 安装oceanbase
## 4.1 下载ob的软件 和上传软件
## 4.2 删除阿里云*.repo
```
cd /data
chown -R admin:admin soft
su - admin
cd /data/soft/
sudo rpm -ivh ob-deploy-1.2.1-9.el7.x86_64.rpm
source /etc/profile.d/obd.sh
rpm -ql `rpm -qa|grep ob-deploy`
obd mirror list
/bin/rm -rf ~/.obd/mirror/remote/*.repo
obd mirror clone /data/soft/*.rpm
obd mirror list local
```
## 4.3 配置 dbobce-3zones.yaml
```
cd /data
vi dbobce-3zones.yaml
:set paste
# Only need to configure when remote login is required
user:
username: admin
password: admin
oceanbase-ce:
servers:
- name: observer1
# Please don't use hostname, only IP can be supported
ip: 192.168.3.41
- name: observer2
ip: 192.168.3.42
- name: observer3
ip: 192.168.3.43
global:
# Please set devname as the network adaptor's name whose ip is in the setting of severs.
# if set severs as "127.0.0.1", please set devname as "lo"
# if current ip is 192.168.1.10, and the ip's network adaptor's name is "eth0", please use "eth0"
devname: enp0s3
cluster_id: 2
# please set memory limit to a suitable value which is matching resource.
memory_limit: 8G # The maximum running memory for an observer
system_memory: 3G # The reserved system memory. system_memory is reserved for general tenants. The default value is 30G.
stack_size: 512K
cpu_count: 16
cache_wash_threshold: 1G
__min_full_resource_pool_memory: 268435456
workers_per_cpu_quota: 10
schema_history_expire_time: 1d
# The value of net_thread_count had better be same as cpu's core number.
net_thread_count: 4
major_freeze_duty_time: Disable
minor_freeze_times: 10
enable_separate_sys_clog: 0
enable_merge_by_turn: FALSE
#datafile_disk_percentage: 3 # The percentage of the data_dir space to the total disk space. This value takes effect only when datafile_size is 0. The default value is 90.
datafile_size: 10G
syslog_level: WARN # System log level. The default value is INFO.
enable_syslog_wf: false # Print system logs whose levels are higher than WARNING to a separate log file. The default value is true.
enable_syslog_recycle: true # Enable auto system log recycling or not. The default value is false.
max_syslog_file_count: 10 # The maximum number of reserved log files before enabling auto recycling. The default value is 0.
# observer cluster name, consistent with obproxy's cluster_name
appname: eduobce
root_password: 123123 # root user password, can be empty
proxyro_password: rootroot # proxyro user pasword, consistent with obproxy's observer_sys_password, can be empty
observer1:
mysql_port: 2881 # External port for OceanBase Database. The default value is 2881.
rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882.
# The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
home_path: /home/admin/oceanbase-ce
# The directory for data storage. The default value is $home_path/store.
data_dir: /data
# The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
redo_dir: /redo
zone: zone1
observer2:
mysql_port: 2881 # External port for OceanBase Database. The default value is 2881.
rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882.
# The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
home_path: /home/admin/oceanbase-ce
# The directory for data storage. The default value is $home_path/store.
data_dir: /data
# The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
redo_dir: /redo
zone: zone2
observer3:
mysql_port: 2881 # External port for OceanBase Database. The default value is 2881.
rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882.
# The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
home_path: /home/admin/oceanbase-ce
# The directory for data storage. The default value is $home_path/store.
data_dir: /data
# The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
redo_dir: /redo
zone: zone3
obproxy:
servers:
- 192.168.3.41
- 192.168.3.42
- 192.168.3.43
# Set dependent components for the component.
# When the associated configurations are not done, OBD will automatically get the these configurations from the dependent components.
depends:
- oceanbase-ce
global:
listen_port: 2883 # External port. The default value is 2883.
prometheus_listen_port: 2884 # The Prometheus port. The default value is 2884.
home_path: /home/admin/obproxy
# oceanbase root server list
# format: ip:mysql_port;ip:mysql_port
rs_list: 192.168.3.41:2881;192.168.3.42:2881;192.168.3.43:2881
enable_cluster_checkout: false
# observer cluster name, consistent with oceanbase-ce's appname
cluster_name: eduobce
obproxy_sys_password: rootroot # obproxy sys user password, can be empty
observer_sys_password: rootroot # proxyro user pasword, consistent with oceanbase-ce's proxyro_password, can be empty
```
## 4.4安装eduobce
```
su - admin
obd cluster deploy eduobce -c dbobce-3zones.yaml
obd cluster list
obd cluster start eduobce
```
## 4.5 安装客户端
```
sudo rpm -ivh libobclient-2.0.0-2.el7.x86_64.rpm obclient-2.0.0-2.el7.x86_64.rpm
IPS="192.168.3.41 192.168.3.42 192.168.3.43"
for ob in $IPS;do echo $ob; ssh $ob "netstat -ntlp" ; done
```
## 4.6 查看集群状态
```
[admin@obcontrol ~]$ obd cluster display eduobce
Get local repositories and plugins ok
Open ssh connection ok
Cluster status check ok
Connect to observer ok
Wait for observer init ok
+------------------------------------------------+
| observer |
+--------------+---------+------+-------+--------+
| ip | version | port | zone | status |
+--------------+---------+------+-------+--------+
| 192.168.3.41 | 3.1.2 | 2881 | zone1 | active |
| 192.168.3.42 | 3.1.2 | 2881 | zone2 | active |
| 192.168.3.43 | 3.1.2 | 2881 | zone3 | active |
+--------------+---------+------+-------+--------+
Connect to obproxy ok
+------------------------------------------------+
| obproxy |
+--------------+------+-----------------+--------+
| ip | port | prometheus_port | status |
+--------------+------+-----------------+--------+
| 192.168.3.41 | 2883 | 2884 | active |
| 192.168.3.42 | 2883 | 2884 | active |
| 192.168.3.43 | 2883 | 2884 | active |
+--------------+------+-----------------+--------+
[admin@obcontrol ~]$
```
最新文章
- Android,适合Restful网络请求封装
- 小谈一下JavaScript中的JSON
- 分布式事务操作之Spring+JTA
- Linux常用命令(三)
- beeline vs hive cli
- Ms sql server sql优化技巧
- SQL第二课-创建数据表
- SQL查询优化
- codevs 1515 跳 贪心+lucas
- [Android学习笔记]ShareSDK的使用
- Zookeeper理解
- Mysql:输出到文件
- sockaddr结构体
- 游戏AI-行为树理论及实现
- Tomcat内核之Tomcat的类加载器
- 数据库_Redis 入门基础到高级
- Scala学习教程笔记三之函数式编程、集合操作、模式匹配、类型参数、隐式转换、Actor、
- Expo大作战(四十一)【完】--expo sdk 之 Assets,BarCodeScanner,AppLoading
- 编码实现字符串类CNString实现运算符重载
- mysql之show engine innodb status解读(转)