社群版部署

数据库小白(专注)發表於2024-03-27

OceanBase社群版部署

目錄
  • OceanBase社群版部署
    • 前言
    • 部署方式
      • OceanBase 企業版:
      • OceanBase 社群版:
      • 適用場景
        • 1. OceanBase 企業版:
        • 2.OceanBase 社群版:
    • 軟硬體要求
      • 軟體資源介紹
      • 硬體資源準備
    • 部署流程
      • 賬號建立:
      • limits.conf配置
      • sysctl.conf配置
      • 關閉防火牆和 SELinux
      • 時鐘同步配置
      • 免密配置(admin賬號)
      • 關閉透明大頁
      • jdk配置
      • devname 配置項指定網路卡
      • 線上部署
      • 離線部署
      • 操作步驟
    • 部署特定版本元件
    • 叢集命令

前言

企業版和社群版區別
詳情查詢官網

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000507492

部署方式

OceanBase 企業版:

使用 OCP 部署 OceanBase 叢集
使用 OBD 部署 OceanBase 叢集
使用命令列部署 OceanBase 叢集

OceanBase 社群版:

使用 OBD 部署 OceanBase 叢集
使用 OCP 部署 OceanBase 叢集
使用 Docker 映象的方式部署 OceanBase 叢集
在 Kubernetes 環境中使用 ob-operator 部署 OceanBase 叢集

適用場景

1. OceanBase 企業版:

  • 對於生產環境,建議使用 OCP 部署 OceanBase 叢集。具體操作請參見 使用 OCP 部署三副本 OceanBase 叢集。(https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000510447)
  • 對於非生產環境,可以使用命令列部署 OceanBase 叢集。具體操作請參見 使用命令列部署三副本 OceanBase 叢集。(https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000510435)
  • 對於非生產環境的快速體驗場景,可以使用 OBD 部署 OceanBase 叢集。具體操作參見 快速體驗 OceanBase 資料庫 中的 方案一:部署 OceanBase 演示環境(https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000507531) 或 方案二:部署 OceanBase 叢集環境。()

2.OceanBase 社群版:

  • 對於非原生支援的作業系統(比如 MAC 和 Windows)的快速體驗場景,建議使用 Docker 映象的方式進行部署。具體操作參見 快速體驗 OceanBase 資料庫 中的 方案三:部署 OceanBase 容器環境 一節。(https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000507531)

  • 對於原生支援的作業系統(Linux 系列,具體見支援的作業系統列表)的快速體驗場景,建議使用 OBD 進行部署;具體操作參見 快速體驗 OceanBase 資料庫 中的 方案:部署 OceanBase 演示環境 或 方案二:部署 OceanBase 叢集環境。(https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000507531)

  • 對於線下環境,建議使用 OBD 進行標準部署。具體操作參見 透過 OBD 白屏部署 OceanBase 叢集。(https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000510451)

  • 對於 kubernetes 環境,建議使用 ob-operator 的方式部署。具體操作參見 在 Kubernetes 叢集中部署 OceanBase 資料庫。(https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000507812)

軟硬體要求

OceanBase 資料庫是一個分散式叢集產品,在生產環境中至少要求三臺機器,學習環境可以部署單機版本。OceanBase 資料庫的部署跟傳統資料庫的部署相比,存在很多共同的地方,對作業系統硬體、軟體設定等會有一些最佳實踐建議,這些是 OceanBase 資料庫發揮高效能穩定執行的基礎。

軟體資源介紹

下表列出了不同作業系統版本適用的安裝包:

作業系統	安裝包下載地址
Alibaba Cloud Linux 2、CentOS 7、RedHat 7、Ubuntu 16.X、Debian 9.X	el7 下載地址(https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/)
Anolis OS 8.X、Alibaba Cloud Linux 3、CentOS 8、RedHat 8、Debian 10	el8 下載地址(https://mirrors.aliyun.com/oceanbase/community/stable/el/8/x86_64/)

硬體資源準備

OceanBase 資料庫在以下配置進行了系統性測試驗證,推薦您使用以下軟硬體配置:

專案	描述
系統	
Anolis OS 8.X 版本(核心 Linux 3.10.0 版本及以上)
Alibaba Cloud Linux 2/3 版本(核心 Linux 3.10.0 版本及以上)
Red Hat Enterprise Linux Server 7.X 版本、8.X 版本(核心 Linux 3.10.0 版本及以上)
CentOS Linux 7.X 版本、8.X 版本(核心 Linux 3.10.0 版本及以上)
Debian 9.X 版本及以上版本(核心 Linux 3.10.0 版本及以上)
Ubuntu 16.X 版本及以上版本(核心 Linux 3.10.0 版本及以上)
SUSE / openSUSE 15.X 版本及以上版本(核心 Linux 3.10.0 版本及以上)
KylinOS V10 版本
統信 UOS V20 版本
中科方德 NFSChina 4.0 版本及以上
浪潮 Inspur kos 5.8 版本
物理 CPU	
測試環境最低要求 2 核。
生產環境最低要求 4 核,推薦 32 核及以上。
效能測試場景推薦 24 核及以上。
記憶體	
測試環境最低要求 8 GB。
生產環境最低要求 16 GB,長期使用要求不低於 32 GB,推薦設定在 256 GB 至 1024 GB 範圍內。
效能測試場景推薦設定在 128 GB 至 1024 GB 範圍內。
注意
當部署多個叢集時,推薦使用 OCP 進行統一運維管理,當部署叢集比較少時,建議使用 OBD 進行安裝部署。

磁碟型別	使用 SSD 儲存
磁碟儲存空間	最低要求 19 GB
檔案系統	EXT4 戓 XFS,當資料超過 16TB 時,使用 XFS
網路卡	千兆互聯及以上

部署流程

  • 線上部署:OBD 所在機器需保證能訪問外部網路,無需提前配置部署所需安裝包,部署過程中 OBD 會從遠端映象倉庫獲取部署所需安裝包。
  • 離線部署:部署過程中無需訪問外部網路,您需提前將部署所需安裝包上傳至 OBD 本地映象庫。選擇離線部署時推薦直接下載所需版本的 all-in-one 安裝包。
    根據不同的部署方式有不同的準備軟體方法,您可根據實際情況選擇合適的方法準備軟體。

賬號建立:

 useradd -U admin -d /home/admin -s /bin/bash
 echo "admin:admin" | chpasswd

配置admin的sudo許可權

echo "admin       ALL=(ALL)       NOPASSWD: ALL" >> /etc/sudoers

limits.conf配置

OceanBase 資料庫的程序涉及的限制包括執行緒最大棧空間大小(Stack)、最大檔案控制代碼數(Open Files)和 core 檔案大小 (Core File Size)

vi /etc/security/limits.conf
root soft nofile 655350
root hard nofile 655350
* soft nofile 655350
* hard nofile 655350
* soft stack unlimited
* hard stack unlimited
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited

ulimit -a

從結果中可以看出:

core file size 表示核心檔案的最大閾值(以塊為單位),對應 limits.conf 配置檔案中的 core 引數,需檢視值是否為 unlimited。
open files 表示最大開啟檔案描述符數,對應 limits.conf 配置檔案中的 nofile 引數,需檢視值是否為 655350。
stack size 表示堆疊大小(以千位元組為單位),對應 limits.conf 配置檔案中的 stack 引數,需檢視值是否為 unlimited。
max user processes 表示最大使用者程序數,對應 limits.conf 配置檔案中的 nproc 引數,需檢視值是否為 655360。

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 = 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 = 1 
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
fs.file-max = 6573688

#修改程序可以擁有的虛擬記憶體區域數量
vm.max_map_count = 655360

#此處為 OceanBase 資料庫的 data 目錄
kernel.core_pattern = /data/core-%e-%p-%t

其中,kernel.core_pattern 中的 /data 為 OceanBase 資料庫的 data 目錄。
max_map_count 配置不合理的情況下,可能會導致嚴重的記憶體洩露。

載入配置;

sysctl -p

關閉防火牆和 SELinux

關閉防火牆

systemctl disable firewalld 
systemctl stop firewalld
systemctl status firewalld

關閉 SELinux

vi /etc/selinux/config
SELINUX=disabled

時鐘同步配置

免密配置(admin賬號)

1.在中控機器上執行以下命令檢視金鑰是否存在:

su - admin
ls ~/.ssh/id_rsa.pub

如結果顯示金鑰已經存在,則無需生成新的金鑰。

2.(可選)在中控機器上執行以下命令生成 SSH 公鑰和私鑰:

ssh-keygen -t rsa

3.將中控機的公鑰複製到目標機器的 authorized_keys 檔案中:

ssh-copy-id -i ~/.ssh/id_rsa.pub <user>@<server_ip>

關閉透明大頁

對於 Red Hat 作業系統 RHEL 9 之前版本,需要執行以下命令,手動關閉透明大頁:

echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled

對於 Red Hat 作業系統 RHEL 9 版本或 CentOS 作業系統,需要執行以下命令,手動關閉透明大頁:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

jdk配置

ob 4.2.2版本需要配置jdk1.8或者以上的版本
由於 OBD 是透過遠端執行指令碼部署 OCP Express,所以需要透過 SSH 方式驗證 Java 環境,直接在機器上執行 java -version 可能無效。

建立軟連結
ln -s /opt/jdk1.8.0_333/bin/java /usr/bin/java
java -version 出現了正確的版本號就說明配置成功了

如您已安裝符合條件的 Java 但是驗證卻沒有透過,可以透過以下任一方法解決:
方法一:透過元件頁面 更多配置 配置 java_bin 路徑
如下圖,在配置項 java_bin 中配置 Java 的真實路徑,如 /jdk8/bin/java。

方法二:將 Java 可執行檔案軟連結到 /usr/bin/java 中

devname 配置項指定網路卡

部署叢集時需要指定devname 引數,表示叢集之間進行互動的網路卡名稱

線上部署

當您選擇線上部署時,可以參考本節命令在中控機上安裝 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
source /etc/profile.d/obd.sh

離線部署

當您選擇離線部署時,可參考本節命令下載並安裝 all-in-one 安裝包。
您可從 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 命令啟動白屏介面,單擊輸出的地址訪問白屏介面。

obd web
start OBD WEB in 0.0.0.0:8680
please open http://10.10.10.1:8680

說明:
白屏介面預設使用 8680 埠,您可使用 obd web -p <PORT> 命令指定埠。
在阿里雲或其他雲環境下,可能出現程式無法獲取公網 IP,從而輸出內網地址的情況,此 IP 非公網地址,您需要使用正確的地址訪問白屏介面。
obd web 命令繫結在 0.0.0.0 上,在多網路卡部署的情況下,您可透過任一一個可訪問的 IP 訪問白屏介面。

其中:

模式配置 可選擇 最大佔用 或 最小可用,最大佔用 模式將最大化利用環境資源,保證叢集的效能與穩定性,推薦使用;最小可用 模式配置滿足叢集正常執行的資源引數。兩種模式的詳細介紹可參考 模式配置規則 一文。

root@sys 密碼 預設為 OBD 自動生成的隨機字串,可自定義設定。支援數字、英文、特殊字元,長度 8~32 之內,特殊字元僅支援「~!@#%^&*_-+=`|(){}[]:;',.?/」

叢集的資料目錄和日誌目錄預設在 節點配置 頁面中配置的軟體路徑下,需為以 / 開頭的絕對路徑,支援自定義設定,但需確保設定的目錄為空。

資料庫和各元件的埠均為預設值,可自定義設定(僅支援 1024~65535 範圍),需確保設定對的埠未被佔用。

單擊開啟 更多配置 按鈕檢視對應的叢集或元件引數,可使用自動分配的配置,也可自定義各個引數。

部署特定版本元件

使用 all-in-one 安裝包部署時,all-in-one 的包是基於 OceanBase 版本進行迭代,若包中有其他元件存在更新版本,您可從 OceanBase 軟體下載中心(https://www.oceanbase.com/softwarecenter) 下載最新版本的元件,參考如下步驟將其上傳至本地映象庫,OBD 部署時會自動獲取本地映象庫中的最新版本。

進到元件安裝包所在目錄下,將安裝包新增至本地映象庫

[admin@test001 rpm]$ obd mirror clone *.rpm

檢視本地映象中安裝包列表

[admin@test001 rpm]$ obd mirror list local

叢集命令

檢視叢集列表
obd cluster list

檢視叢集狀態,以部署名為 myoceanbase 為例
obd cluster display myoceanbase

停止執行中的叢集,以部署名為 myoceanbase 為例
obd cluster stop myoceanbase

銷燬已部署的叢集,以部署名為 myoceanbase 為例
obd cluster destroy myoceanbase

相關文章