[转帖]OceanBase 在线与离线安装方式详解

oceanbase,在线,离线,安装,方式,详解 · 浏览次数 : 0

小编点评

**两者的选择方法** **在线安装** * 网络条件良好,方便自动检测最新版本进行部署。 * 每次能够自动检测最新版本进行部署。 **离线安装** * 安全或其他因素考虑,服务器并不能上网。 * 更简单,因为需要提前下载和上传软件包。 **选择方法的比较** | 特点 | 线上安装 | 离线安装 | |---|---|---| | 网络条件 | 良好 | 正常 | | 最近版本检测 | 可以 | 不可能 | | 每次部署 | 自动 | 手动 | | 安全性 | 高 | 低 | | 简单性 | 低 | 高 | **其他提示** * 在在线安装之前,请确保您的服务器已安装了操作系统和必要的软件。 * 离线安装过程中,请仔细阅读日志,以了解安装过程中的错误。 * 如果您遇到任何问题,请不要害怕,请到 OceanBase 社区论坛或技术群中寻求帮助。

正文

各位好,今天给大家带来一篇有关 OceanBase 在线与离线安装方式的解读。首先我们来讨论一下一日常工作中的一些场景,大家经常会遇到以下几种情况:

  • 公司网络条件很不错,在线下载速度很快,安装软件直接从互联网下载安装即可,不需要考虑其他因素;
  • 公司人数众多,在线下载速度很慢,下载一个rpm包都要等很久,有时候还会出现网络断开的情况;
  • 公司允许软件安装时临时接通外部网络,安装完成后即刻断开;
  • 公司出于安全考虑,服务器全部禁止了互联网访问,只能通过本地安装的方式进行程序部署。

相信我一说,大家就知道要描述什么问题。没错,就是安全,普通公司尤如此,那在一些相关国计民生,对安全要求高的机构,比如研究院、公共安全部门、铁路等等,由于网络安全做的不到位发生的数据泄漏事故,也屡见不鲜,就比如最近发生的某市人口库10亿数据脱库的严重事故。

针对以上种种情况,尤其考虑到安全的因素,很多数据库的安装都提供离线部署的方式,离线部署、离线运行,可能是目前为止最为保险的方式了。今天我们就来详细聊聊 OceanBase 对在线和离线安装的支持方式。希望本文能带给大家一个完整的 OB 安装视角。

本文论述分析内容采用 OB 经典的部署工具 obd 展开,希望大家在看以下内容之前,达成一个共识

  • 本文以部署 3 节点 OceanBase 集群为例,架构图如下图
    在这里插入图片描述
  • 本文采用黑屏部署工具 obd(obdeploy) 为例进行演示
  • 本文不包含操作系统配置部分,例如:sysctl.conf/limits.conf/SELINUX/ntp 等的配置,如有需要请参考官方文档对应部分
  • 本文配置命令可能只对 Anolis、CentOS 和 RedHat 操作系统有效,仅供参考

1. 在线安装详解

所谓在线安装,就是安装过程从互联网自动下载软件并安装,这也是 OceanBase 提供的最简单的安装方式。整个过程也比较简单,obd 工具帮我们屏蔽了很多内容,方便大家在开发测试环境中先快速上手使用。安装过程大概分为以下几个部分。

1.1 在线安装 OBD

执行以下命令,使用 OceanBase 的官方软件源安装 OBD:

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
sudo yum install -y ob-deploy # 该操作只需要在 OB 中控机上执行,因为 OBD 是一个黑屏部署、管理和运维工具,统一从一台机器上发起操作,所以不需要每台机器均安装

    1.2 在线安装 OBLibs

    oblibs 是 OceanBase 运行时依赖部分第三方动态库,需要在所有机器上安装一下。

    sudo yum install -y yum-utils # 如果上一步已经执行该操作,请忽略
    sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo # 如果上一步已经执行该操作,请忽略
    sudo yum install -y oceanbase-ce-libs # 所有机器均需安装
    

      1.3 在线安装 OBClient

      obclient 是 OceanBase 黑屏连接客户端,类似于 Oracle 的 sqlplus 或 mysql 的黑屏客户端工具,可以只在中控机器上安装,也可以选择在所有服务器安装,方便后期排错等操作。

      sudo yum install -y libobclient
      sudo yum install -y obclient
      

        1.4 在线部署 OceanBase 集群

        上面三步均完成以后,当前我们的服务器环境中,已经具备基本环境了,下面就开始部署 OB 集群,我采用以下配置部署 2 obproxy + 3 observer 集群(机器有复用)。

        user:
          username: admin
          password: admin
        oceanbase-ce:
          servers:
            - name: observer1
              ip: 192.168.3.171
            - name: observer2
              ip: 192.168.3.172
            - name: observer3
              ip: 192.168.3.173
          global:
            home_path: /home/admin/observer
            data_dir: /data/obdata
            redo_dir: /data/obdata/redo
            devname: eno1
            mysql_port: 2881
            rpc_port: 2882
            zone: zone1
            datafile_size: 3000G
            appname: obcluster
            root_password: observer
            proxyro_password: obproxy
          observer1:
            zone: zone1
          observer2:
            zone: zone2
          observer3:
            zone: zone3
        obproxy-ce:
          depends:
            - oceanbase-ce
          servers:
            - 192.168.3.171
            - 192.168.3.172
          global:
            home_path: /home/admin/obproxy
            skip_proxy_sys_private_check: true
            enable_strict_kernel_release: false
            listen_port: 2883
            prometheus_listen_port: 2884
            cluster_name: obcluster
            obproxy_sys_password: obproxy-sys
            observer_sys_password: obproxy
        

          执行下面的命令进行初始化,此时仔细观察打印的日志,描述了整个在线安装的过程:

          obd cluster autodeploy obcluster -c obcluster.yml
          
          • 1

          在线安装的过程大概有如下几步:

          1. 检测当前环境中的配置库信息,如有更新会拉取最新的配置;
          2. 从 OB 仓库中拉取最新版本的 observer 和 obproxy;
          3. 将 observer 和 obproxy 安装包分发到对应集群机器上进行安装;
          4. 服务器配置参数校验 及 集群初始化。

          1.5 结语

          真正在在线安装过程中,不会像文中提到的这么顺滑,您可能遇到各种各样的问题,比如资源配置不足、NTP时间同步有问题、缺少对应的库文件等等,一款好的数据库,需要大家去适应,当然 OB 也在向着易用性上不断迈进。所以如果您在安装过程中遇到了任何问题,请不要焦虑,多尝试分析,多到论坛或技术群中咨询,总能把问题解决掉。

          2. 离线安装详解

          离线安装的整体过程与在线安装一致,唯一不同的就是我们不能直接从 OceanBase 官方仓库上自动拉取文件了。只能使用 rpm 本地部署的方式执行安装过程好在,obd 提供了配置本地镜像仓库的方式,安装也很方便。

          OceanBase 社区版离线安装包可以从该地址获取:https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/ 尽量选用最新版本。

          2.1 离线安装 OBD

          下载获取到的最新版本 obd,上传到服务器,执行以下命令安装(只在中控机安装即可):

          sudo yum install -y ob-deploy-1.4.0-13.el7.x86_64.rpm
          

            2.2 离线安装 OBLibs

            下载获取到的最新版本 oblibs,上传到服务器,执行以下命令安装(在所有机器上安装):

            sudo yum install -y oceanbase-ce-libs-3.1.4-10000092022071511.el7.x86_64.rpm
            

              2.3 离线安装 OBClient

              下载获取到的最新版本 obclient,上传到服务器,执行以下命令安装(只在中控机安装即可,也可以在所有机器上安装,方便本地调试):

              sudo yum install libobclient-x.x.x.el7.x86_64.rpm
              sudo yum install obclient-x.x.x-2.el7.x86_64.rpm
              

                2.4 离线部署 OceanBase 集群

                离线安装部署,必须禁用远程仓库

                obd mirror disable remote
                

                  然后,跳转到刚才下载了 rpm 包的目录下,目录下必须包含的文件有 observer rpm 包 和 obproxy rpm 包,然后将安装包添加到本地镜像

                  obd mirror clone *.rpm
                  

                    可以通过 obd mirror list 命令查看本地镜像仓库状态:
                    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yPXgLobu-1661315467195)(./media/online-vs-offline-install/obd-local-mirror.png)]

                    最后,采用同样的配置文件,尝试初始化集群即可:

                    obd cluster autodeploy obcluster -c obcluster.yml
                    

                      在这里插入图片描述

                      在集群初始化过程中,可以仔细观察一下日志,其实整体过程上,与在线安装并无二异。

                      2.5 结语

                      离线安装整体来说也特别简单,仅仅多了提前下载和上传软件包的步骤。如果大家在日常部署过程中并不能访问外网,可以采用这种方式。

                      3. 二者如何选择

                      相信经过上面的过程陈述后,大家心里已经有了答案了,最后我们来一起总结一下两种方式如何选择:

                      1. 如果网络条件良好,且公司允许的情况下,还是推荐在线安装方式,更简洁,并且每次能够自动检测最新版本进行部署;
                      2. 如果出于安全或其他因素考虑,服务器并不能上网,那推荐采用离线安装方式,也很简单。

                      最后的最后,OceanBase 为大家的各种需求都提供了详细的解决方案,如果您有任何疑问,不要慌张,请花点时间到社区里问一问(https://ask.oceanbase.com),一定会有您满意的答案。

                      与[转帖]OceanBase 在线与离线安装方式详解相似的内容:

                      [转帖]OceanBase 在线与离线安装方式详解

                      各位好,今天给大家带来一篇有关 OceanBase 在线与离线安装方式的解读。首先我们来讨论一下一日常工作中的一些场景,大家经常会遇到以下几种情况: 公司网络条件很不错,在线下载速度很快,安装软件直接从互联网下载安装即可,不需要考虑其他因素;公司人数众多,在线下载速度很慢,下载一个rpm包都要等很久

                      [转帖]「更易用的OceanBase」|OceanBase 4.0 一体化安装包 - 把简单留给用户

                      https://www.modb.pro/db/565842 1. OceanBase 3.x 版本安装浅谈 我是在 OceanBase 3.1.4 版本的时候开始尝试入手测试的。刚开始 OB 3.x 版本部署时,各种各样的部署方式着实是让我花了好多时间在上面。现在回想一下,大体有以下几个痛点: 采

                      [转帖]Mysql DBA运维命令大全

                      Mysql DBA运维命令大全 https://www.modb.pro/db/97499 中国DBA联盟(ACDU)成员,目前从事DBA及程序编程(Web\java\Python)工作,主要服务于生产制造 现拥有 Oracle 11g OCP/OCM、Mysql、Oceanbase(OBCA)认证

                      [转帖]

                      Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

                      [转帖]

                      https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

                      [转帖]ISV 、OSV、 SIG 概念

                      ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、

                      [转帖]Redis 7 参数 修改 说明

                      2022-06-16 14:491800原创Redis 本文链接:https://www.cndba.cn/dave/article/108066 在之前的博客我们介绍了Redis 7 的安装和配置,如下: Linux 7.8 平台 Redis 7 安装并配置开机自启动 操作手册https://ww

                      [转帖]HTTPS中间人攻击原理

                      https://www.zhihu.com/people/bei-ji-85/posts 背景 前一段时间,公司北京地区上线了一个HTTPS防火墙,用来监听HTTPS流量。防火墙上线之前,邮件通知给管理层,我从我老大那里听说这个事情的时候,说这个有风险,然后意外地发现,很多人原来都不知道HTTPS防

                      [转帖]关于字节序(大小端)的一点想法

                      https://www.zhihu.com/people/bei-ji-85/posts 今天在一个技术群里有人问起来了,当时有一些讨论(不完全都是我个人的观点),整理一下: 为什么网络字节序(多数情况下)是大端? 早年设备的缓存很小,先接收高字节能快速的判断报文信息:包长度(需要准备多大缓存)、地

                      [转帖]awk提取某一行某一列的数据

                      https://www.jianshu.com/p/dbcb7fe2da56 1、提取文件中第1列数据 awk '{print $1}' filename > out.txt 2、提取前2列的文件 awk `{print $1,$2}' filename > out.txt 3、打印完第一列,然后打