資料庫管理-第120期 初探Halo資料庫(202301201)

yhw1809發表於2023-12-01

資料庫管理-第120期 初探Halo資料庫(202301201)

12月份正好也是第120期,新的一篇文章,嘗試一條新的路線。其實吧,Halo(羲和)這個資料庫我較早時間就聽說過(早於今年DTCC,透過資料庫圈某能做資料庫核心演算法層的大佬)。而更加深入的瞭解主要是上週SACC上海站向量資料庫專場主持人正好是來自於孕育Halo資料庫的易景科技合夥人兼CTO章晨曦老師,對Halo資料庫有了進一步稍微深入的瞭解,本期就將我的第一次國產資料庫文章獻給Halo。(下面來一個章總帥氣的出場,不含我)

Halo簡介

Halo羲和資料庫,源自於杭州易景科技,是一個基於PostgreSQL,以解決實際問題為導向的高效能高可用易用型資料庫。其餘詳盡介紹可以登入官網檢視,本次也是很榮幸從章總那裡拿到了資料庫的安裝介質,本期主要是完成Halo資料庫的安裝,對比一下主流資料庫的安裝難易度。

Halo安裝

環境與版本

主機名 作業系統 IP地址 資料庫版本
halo201 CentOS 7.9 192.168.19.201 Halo 14

作業系統配置

  1. 關閉防火牆
systemctl stop firewalld.service 
systemctl disable firewalld.service
  1. 關閉SELinux
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
setenforce 0
[reboot]
  1. 安裝依賴包
yum -y install iproute bind iptables which sudo sysstat ftp make cmake gcc uuid uuid-devel bison flex perl perl-devel python-devel readline readline-devel libxml2 libxml2-devel iotop tcpdump strace gdb systemtap net-tools xdpyinfo libstdc++-devel gcc-c++ kshuuid-devel libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools zlib-devel tcl glibc glibc-devel openssl openssl-devel bc binutils nfs-utils perl-ExtUtils-Embed zstd zstd-devel libcurl libcurl-devel lz4 lz4-devel libicu libicu-devel autoconf
  1. 建立使用者及使用者組
groupadd -g 3000 halo
useradd -u 3000 -g halo halo
  1. 修改系統引數
vim /etc/sysctl.conf
kernel.sem = 4096 4194304 32768 1024
sysctl -p
  1. 修改使用者資源限制
vim /etc/security/limits.conf
halo soft nproc unlimited
halo hard nproc unlimited
halo soft nofile 1024000
halo hard nofile 1024000
halo soft stack unlimited
halo hard stack unlimited
halo soft memlock unlimited
halo hard memlock unlimited
halo soft core unlimited
halo hard core unlimited

安裝Halo資料庫

  1. 建立目錄
mkdir -p /u01/app/halo
chown -R halo:halo /u01/app/halo
  1. 上傳安裝介質並解壓
[halo_14.el7.x86_64.build231130.tar.gz]
tar zxf halo_14.el7.x86_64.build231130.tar.gz -C /u01/app/halo/

壓縮包已包含資料庫license(這裡為內部版本,正式版應以實際釋出為準)

20231201-1e6b8cf1-e8f8-4992-b935-469b69f0984b.png

(這官方建議的安裝路徑和解壓路徑,是不是有點那麼個似曾相識的趕腳)
3. 配置halo使用者環境變數

vim ~/.bash_profileexport HALO_HOME=/u01/app/halo/product/dbms/14export LD_LIBRARY_PATH=$HALO_HOME/libexport PGHOST=/var/run/haloexport PATH=$HALO_HOME/bin:$PATH
  1. 驗證安裝版本
pg_ctl -V

(又是另一種似曾相識)
5. 建立程式路徑
預設路徑/var/run/halo,如不存在需要手工建立

mkdir /var/run/halo
chown halo:halo /var/run/halo#重啟後/var/run目錄下內容會被自動清理,因此可以透過以下方式實現開機後建立對應目錄vim /etc/rc.local
/usr/bin/mkdir /var/run/halo
/usr/bin/chown halo:halo /var/run/halo
chmod +x /etc/rc.d/rc.local
  1. 建立資料目錄
mkdir -p /u01/app/halo/data/halo
chown -R halo:halo /u01/app/halo/data

(文件寫的/data/halo,我想讓似曾相識繼續下去)

  1. 初始化資料庫
pg_ctl init -D /u01/app/halo/data/halo

    20231201-72e95149-db6a-45fc-bb94-88df0e807281.png

8. 啟動資料庫

vim ~/.bash_profile
增加export PGDATA=/u01/app/halo/data/halo
pg_ctl start

9. 檢視資料庫版本

psql
select version();

至此,Halo資料庫安裝完成,後續配置和基本測試還需要繼續摸索。

總結

從安裝步驟來看,Halo資料庫安裝的難度和MySQL、PostgreSQL等開源資料庫二進位制部署方式類似,並沒有太難。
老規矩,知道寫了些啥。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31466763/viewspace-2998426/,如需轉載,請註明出處,否則將追究法律責任。

相關文章