首页 > 其他分享 >OBD部署OceanBase 4.0社区版集群

OBD部署OceanBase 4.0社区版集群

时间:2022-11-11 20:05:19浏览次数:47  
标签:ok 4.0 OceanBase OBD 192.168 oceanbase ce el7

360wallpaper.jpg

环境说明

名词解释

  • 中控机器 存储 OceanBase 数据库安装包和集群配置信息的机器。
  • 目标机器 安装 OceanBase 数据库的机器。
  • OBD OceanBase Deployer,OceanBase 开源软件的安装部署工具,简称为 OBD。
  • OBProxy OceanBase Database Proxy,OceanBase 高性能反向代理服务器,简称为 OBProxy
  • 机器列表

IP地址 主机名 机器配置 系统版本 内核版本 角色
192.168.31.150 obcontrol 1C2G CentOS 7.5 Linux3.10.0 OBD,中控机
192.168.31.151 z1 2C8G CentOS 7.5 Linux3.10.0 OBserver
192.168.31.152 z2 2C8G CentOS 7.5 Linux3.10.0 OBserver
192.168.31.153 z3 2C8G CentOS 7.5 Linux3.10.0 OBserver

部署准备

配置hosts

四台机器都要配置hosts

[root@obcontrol ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.31.150 obcontrol
192.168.31.151 z1
192.168.31.152 z2
192.168.31.153 z3

配置免密登录

以下操作在中控机进行

ssh-keygen -t rsa
scp -p ~/.ssh/id_rsa.pub root@z1:/root/.ssh/authorized_keys
scp -p ~/.ssh/id_rsa.pub root@z2:/root/.ssh/authorized_keys
scp -p ~/.ssh/id_rsa.pub root@z3:/root/.ssh/authorized_keys

配置NTP时钟同步

服务端(中控机)上配置

cat /etc/ntp.conf
server 127.127.1.0
service ntpd restart
chkconfig ntpd on

客户端(OBserver)上配置

cat /etc/ntp.conf
server 192.168.31.150 prefer
service ntpd restart
chkconfig ntpd on

查看NTP信息

[root@z2 .ssh]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-time.cloudflare 10.211.8.4       3 u   34   64    3  139.541   -3.923   0.495
*tock.ntp.infoma .GPS.            1 u   35   64    3  223.843    2.985   0.957
+119.28.183.184  100.122.36.196   2 u   35   64    3   40.520    0.713   0.576
+119.28.206.193  100.122.36.196   2 u   31   64    3   45.111    1.564   0.914
 obcontrol       .INIT.          16 u    -   64    0    0.000    0.000   0.000

配置 limits.conf

所有机器进行如下配置:

cat /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

配置 sysctl.conf

由于只是测试用,我们只配置fs.aio-max-nr

cat /etc/sysctl.conf
# # for oceanbase
# ## 修改内核异步 I/O 限制
fs.aio-max-nr=1048576
sysctl -p
fs.aio-max-nr = 1048576

关闭防火墙

关闭防火墙

systemctl stop firewalld.service

永久关闭防火墙

systemctl disable firewalld.service

查看防火墙状态

systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

Nov 11 11:56:01 z3 systemd[1]: Starting firewalld - dynamic firewall daemon...
Nov 11 11:56:14 z3 systemd[1]: Started firewalld - dynamic firewall daemon.
Nov 11 15:55:00 z3 systemd[1]: Stopping firewalld - dynamic firewall daemon...
Nov 11 15:55:01 z3 systemd[1]: Stopped firewalld - dynamic firewall daemon.

关闭SELinux

vim /etc/selinux/config
SELINUX=disabled

重启服务器,使更改生效

setenforce 0

查看更改是否生效

sestatus

创建用户

groupadd -g 300 ob
useradd -u 300 -g ob ob
passwd ob

在线部署

部署模式

本次测试采用三副本部署模式,共使用四台机器。

  • 使用一台机器部署 OBProxy、Grafana、Prometheus。
  • 使用三台机器部署 OceanBase 集群。

安装 all-in-one package

在官网下载all-in-one package https://open.oceanbase.com/softwareCenter/community 解压安装包

tar zxvf oceanbase-all-in-one.4.0.0.0-beta-100120221102135736.el7.x86_64.tar.gz

安装

cd oceanbase-all-in-one/bin/
./install.sh
name: grafana
version: 7.5.17
release:1
arch: x86_64
md5: 1bf1f338d3a3445d8599dc6902e7aeed4de4e0d6
add /software/oceanbase-all-in-one/rpms/grafana-7.5.17-1.el7.x86_64.rpm to local mirror
name: obagent
version: 1.2.0
release:4.el7
arch: x86_64
md5: 0e8f5ee68c337ea28514c9f3f820ea546227fa7e
add /software/oceanbase-all-in-one/rpms/obagent-1.2.0-4.el7.x86_64.rpm to local mirror
name: obproxy-ce
version: 4.0.0
release:5.el7
arch: x86_64
md5: de53232a951184fad75b15884458d85e31d2f6c3
add /software/oceanbase-all-in-one/rpms/obproxy-ce-4.0.0-5.el7.x86_64.rpm to local mirror
name: oceanbase-ce
version: 4.0.0.0
release:100000272022110114.el7
arch: x86_64
md5: 42611dc51ca9bb28f36e60e4406ceea4a74914c7
add /software/oceanbase-all-in-one/rpms/oceanbase-ce-4.0.0.0-100000272022110114.el7.x86_64.rpm to local mirror
name: oceanbase-ce-libs
version: 4.0.0.0
release:100000272022110114.el7
arch: x86_64
md5: 188919f8128394bf9b62e3989220ded05f1d14da
add /software/oceanbase-all-in-one/rpms/oceanbase-ce-libs-4.0.0.0-100000272022110114.el7.x86_64.rpm to local mirror
name: prometheus
version: 2.37.1
release:10000102022110211.el7
arch: x86_64
md5: 58913c7606f05feb01bc1c6410346e5fc31cf263
add /software/oceanbase-all-in-one/rpms/prometheus-2.37.1-10000102022110211.el7.x86_64.rpm to local mirror
Disable remote ok

#####################################################################
 Install Finished 
=====================================================================
Setup Environment:     source ~/.oceanbase-all-in-one/bin/env.sh 
Quick Start:           obd demo 
More Details:          obd -h 
=====================================================================

检查是否安装成功

# which obd
/root/.oceanbase-all-in-one/obd/usr/bin/obd
# which obclient
/root/.oceanbase-all-in-one/obclient/u01/obclient/bin/obclient

部署 OceanBase 集群

编辑default-example.yaml 位置在/root/.oceanbase-all-in-one/conf/autodeploy

## Only need to configure when remote login is required
user:
   username: ob
   password: ob123
#   key_file: your ssh-key file path if need
#   port: your ssh port, default 22
#   timeout: ssh connection timeout (second), default 30
oceanbase-ce:
  servers:
    - name: z1
      # Please don't use hostname, only IP can be supported
      ip: 192.168.31.151
    - name: z2
      ip: 192.168.31.152
    - name: z3
      ip: 192.168.31.153
  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: 1
    redo_dir: /oceanbase/redo
    data_dir: /oceanbase/data
    # please set memory limit to a suitable value which is matching resource. 
    memory_limit: 6G
    system_memory: 4G
    stack_size: 512K
    max_syslog_file_count: 4
    # observer cluster name, consistent with obproxy's cluster_name
    appname: ob_cluster
    root_password: 123456
    proxyro_password: 123456
  z1:
    mysql_port: 2881
    rpc_port: 2882
    home_path: /oceanbase/home/observer
    zone: zone1
  z2:
    mysql_port: 2881
    rpc_port: 2882
    home_path: /oceanbase/home/observer
    zone: zone2
  z3:
    mysql_port: 2881
    rpc_port: 2882
    home_path: /oceanbase/home/observer
    zone: zone3
obproxy-ce:
  servers:
    - 192.168.31.150
  global:
    listen_port: 2883
    home_path: /oceanbase/home/obproxy
    # oceanbase root server list
    # format: ip:mysql_port,ip:mysql_port
    rs_list: 192.168.31.151:2881;192.168.31.152:2881;192.168.31.153:2881
    enable_cluster_checkout: false
    # observer cluster name, consistent with oceanbase-ce's appname
    cluster_name: ob_cluster
    obproxy_sys_password: 123456
    observer_sys_password: 123456

在中控机部署OceanBase集群

obd cluster autodeploy ob_cluster -c default-example.yaml 
install oceanbase-ce-4.0.0.0 for local ok
install obproxy-ce-4.0.0 for local ok
Cluster param config check ok
Open ssh connection ok
Generate observer configuration ok
Generate obproxy configuration ok
install oceanbase-ce-4.0.0.0 for local ok
install obproxy-ce-4.0.0 for local ok
+--------------------------------------------------------------------------------------------+
|                                          Packages                                          |
+--------------+---------+------------------------+------------------------------------------+
| Repository   | Version | Release                | Md5                                      |
+--------------+---------+------------------------+------------------------------------------+
| oceanbase-ce | 4.0.0.0 | 100000272022110114.el7 | 42611dc51ca9bb28f36e60e4406ceea4a74914c7 |
| obproxy-ce   | 4.0.0   | 5.el7                  | de53232a951184fad75b15884458d85e31d2f6c3 |
+--------------+---------+------------------------+------------------------------------------+
Repository integrity check ok
Parameter check ok
Open ssh connection ok
Cluster status check ok
Initializes observer work home ok
Initializes obproxy work home ok
Remote oceanbase-ce-4.0.0.0-100000272022110114.el7-42611dc51ca9bb28f36e60e4406ceea4a74914c7 repository install ok
Remote oceanbase-ce-4.0.0.0-100000272022110114.el7-42611dc51ca9bb28f36e60e4406ceea4a74914c7 repository lib check !!
Remote obproxy-ce-4.0.0-5.el7-de53232a951184fad75b15884458d85e31d2f6c3 repository install ok
Remote obproxy-ce-4.0.0-5.el7-de53232a951184fad75b15884458d85e31d2f6c3 repository lib check ok
Try to get lib-repository
install oceanbase-ce-libs-4.0.0.0 for local ok
Remote oceanbase-ce-libs-4.0.0.0-100000272022110114.el7-188919f8128394bf9b62e3989220ded05f1d14da repository install ok
Remote oceanbase-ce-4.0.0.0-100000272022110114.el7-42611dc51ca9bb28f36e60e4406ceea4a74914c7 repository lib check ok
ob_cluster deployed
Get local repositories ok
Search plugins ok
Open ssh connection ok
Load cluster param plugin ok
Check before start observer ok
[WARN] OBD-1007: (192.168.31.151) The recommended number of max user processes is 12288 (Current value: 4096)
[WARN] (192.168.31.151) clog and data use the same disk (/)
[WARN] OBD-1007: (192.168.31.152) The recommended number of max user processes is 12288 (Current value: 4096)
[WARN] (192.168.31.152) clog and data use the same disk (/)
[WARN] OBD-1007: (192.168.31.153) The recommended number of max user processes is 12288 (Current value: 4096)
[WARN] (192.168.31.153) clog and data use the same disk (/)

Check before start obproxy ok
Start observer ok
observer program health check ok
Connect to observer ok
Initialize cluster ok
Start obproxy ok
obproxy program health check ok
Connect to obproxy ok
Initialize cluster ok
Wait for observer init ok
+--------------------------------------------------+
|                     observer                     |
+----------------+---------+------+-------+--------+
| ip             | version | port | zone  | status |
+----------------+---------+------+-------+--------+
| 192.168.31.151 | 4.0.0.0 | 2881 | zone1 | ACTIVE |
| 192.168.31.152 | 4.0.0.0 | 2881 | zone2 | ACTIVE |
| 192.168.31.153 | 4.0.0.0 | 2881 | zone3 | ACTIVE |
+----------------+---------+------+-------+--------+
obclient -h192.168.31.151 -P2881 -uroot -p123456 -Doceanbase

+--------------------------------------------------+
|                     obproxy                      |
+----------------+------+-----------------+--------+
| ip             | port | prometheus_port | status |
+----------------+------+-----------------+--------+
| 192.168.31.150 | 2883 | 2884            | active |
+----------------+------+-----------------+--------+
obclient -h192.168.31.150 -P2883 -uroot@proxysys -p123456 -Doceanbase
ob_cluster running

连接 OceanBase 数据库

obclient -h192.168.31.150 -P2883 -uroot@proxysys -p123456
ERROR 2027 (HY000): received malformed packet
[root@obcontrol autodeploy]# obclient -h192.168.31.150 -P2883 -uroot -p123456
Welcome to the OceanBase.  Commands end with ; or \g.
Your OceanBase connection id is 12
Server version: OceanBase_CE 4.0.0.0 (r100000272022110114-6af7f9ae79cd0ecbafd4b1b88e2886ccdba0c3be) (Built Nov  1 2022 14:57:18)

Copyright (c) 2000, 2018, OB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

obclient [(none)]> 
obclient [(none)]> 
obclient [(none)]> 
obclient [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| LBACSYS            |
| mysql              |
| oceanbase          |
| ORAAUDITOR         |
| SYS                |
| test               |
+--------------------+
7 rows in set (0.029 sec)

obclient [(none)]> use oceanbase;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
obclient [oceanbase]> show tables;
+-------------------------------------------+
| Tables_in_oceanbase                       |
+-------------------------------------------+
| CDB_INDEXES                               |
| CDB_IND_COLUMNS                           |
| CDB_IND_PARTITIONS                        |
| CDB_IND_SUBPARTITIONS                     |
| CDB_OBJECTS                               |
| CDB_OB_ARCHIVELOG                         |

问题梳理

问题一

[ERROR] (192.168.31.151) /home not enough disk space. (Avail: 10.2G, Need: 50.0G).
[ERROR] (192.168.31.152) /home not enough disk space. (Avail: 10.2G, Need: 50.0G).
[ERROR] (192.168.31.153) /home not enough disk space. (Avail: 10.2G, Need: 50.0G).

原因是observer三个节点home_path设置在/home目录下,而由于安装系统时候/home目录只设置了10G空间。 解决方法: 修改default-example.yaml文件的home_path配置,寻找空间大于50G的目录。

问题二

[WARN] OBD-1007: (192.168.31.151) The recommended number of max user processes is 12288 (Current value: 4096)
[ERROR] OBD-2000: (192.168.31.151) not enough memory. (Free: 7.0G, Need: 8.0G)
[WARN] (192.168.31.151) clog and data use the same disk (/)
[WARN] OBD-1007: (192.168.31.152) The recommended number of max user processes is 12288 (Current value: 4096)
[ERROR] OBD-2000: (192.168.31.152) not enough memory. (Free: 7.0G, Need: 8.0G)
[WARN] (192.168.31.152) clog and data use the same disk (/)
[WARN] OBD-1007: (192.168.31.153) The recommended number of max user processes is 12288 (Current value: 4096)
[ERROR] OBD-2000: (192.168.31.153) not enough memory. (Free: 7.0G, Need: 8.0G)
[WARN] (192.168.31.153) clog and data use the same disk (/)

解决方法 每台observer最大物理内存8G,memory_limit设置为8G。安装提示内存不足,修改default-example.yaml memory_limit: 6G。

问题三

[ERROR] Deploy "ob_cluster" is deployed. You could not deploy an deployed cluster.
See https://www.oceanbase.com/product/ob-deployer/error-codes .

解决方法 重新执行部署之前,需要对部署一半的集群进行清理。

obd cluster destroy ob_cluster

参考文档: https://www.oceanbase.com/docs https://zhuanlan.zhihu.com/p/448637597

标签:ok,4.0,OceanBase,OBD,192.168,oceanbase,ce,el7
From: https://blog.51cto.com/u_12592884/5845278

相关文章

  • .net 4.0环境下支持 async 异步编程
      这时候编译器会报一个错误:CS1061“Task”未包含“GetAwaiter”的定义,并且找不到可接受第一个“Task”类型参数的可访问扩展方法“GetAwaiter”(是否缺少using指......
  • 开源多语言 CMS MyCms v4.0 发布,新增多语言资讯模板
    MyCms是一款基于Laravel开发的开源免费的开源多语言商城CMS企业建站系统。MyCms基于Apache2.0开源协议发布,免费且可商业使用,欢迎持续关注我们。V4.0更新内容新......
  • 开源多语言 CMS MyCms v4.0 发布,新增多语言资讯模板
    MyCms是一款基于Laravel开发的开源免费的开源多语言商城CMS企业建站系统。MyCms基于Apache2.0开源协议发布,免费且可商业使用,欢迎持续关注我们。V4.0更新内容......
  • pip error: Microsoft Visual C++ 14.0 or greater is required
    https://zhuanlan.zhihu.com/p/471661231去官网下载cpp编译工具:https://my.visualstudio.com/Downloads/Featured?mkt=zh-cn下载后直接安装默认值比起有的教程安装......
  • manim 4.0
    前言这是最终优化的版本。因为这是基于manim源码的理解,然后进行优化。但是实际上也不能算是最终优化的版本,因为我无法真正理解manim的源码,只能按照某种形式模仿。例如,我无......
  • manim 4.0 预备知识
    1、实现自定义动画使用了UpdateFromAlphaFunc(),它提供一个alpha变量从0到1:defcso(a):defspiral_out(mob,t):r=......
  • 安全狗v4.0绕过
    安全狗新升级拦截界面都变了and1=1:尝试输入payload到and还没有拦截但是输入and1=1之后就拦截了我尝试了几次还认为是检测and后面的数字因为没有数字过后就不......
  • c# .net 4.0 发布nuget
    一、下载工具1.下载NuGet命令行工具 https://dist.nuget.org/win-x86-commandline/v5.8.0/nuget.exe 将NuGet配置为系统环境变量或者C:\Windows目录下2.下载NuGetPack......
  • 后疫情时代,PCB+SMT制造业弯道超车:加速打造智能制造信息化4.0
    后疫情时代,工业企业利润都在大幅下降,1~9月累计,全国规模以上工业企业利润总额同比下降2.3%,降幅较前值扩大0.2个百分点,创2022年10月以来最低。做为工业企业生产中的电子生产......
  • python ------ selenium find的使用 4.0新版本
     selenium是一款十分强大的Web应用自动化框架,我们可以通过它来自动操控浏览器。操控浏览器的实质是操控浏览器的界面元素,因此定位元素是使用selenium的关键,selenium中通......