数据库管理-第120期 初探Halo数据库(202301201)
数据库管理-第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 |
操作系统配置
- 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
- 关闭SELinux
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
setenforce 0
[reboot]
- 安装依赖包
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
- 创建用户及用户组
groupadd -g 3000 halo
useradd -u 3000 -g halo halo
- 修改系统参数
vim /etc/sysctl.conf
kernel.sem = 4096 4194304 32768 1024
sysctl -p
- 修改用户资源限制
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数据库
- 创建目录
mkdir -p /u01/app/halo
chown -R halo:halo /u01/app/halo
- 上传安装介质并解压
[halo_14.el7.x86_64.build231130.tar.gz]
tar zxf halo_14.el7.x86_64.build231130.tar.gz -C /u01/app/halo/
压缩包已包含数据库license(这里为内部版本,正式版应以实际使用版本为准)
(这官方建议的安装路径和解压路径,是不是有点那么个似曾相识的赶脚)
3. 配置halo用户环境变量
vim ~/.bash_profile
export HALO_HOME=/u01/app/halo/product/dbms/14
export LD_LIBRARY_PATH=$HALO_HOME/lib
export PGHOST=/var/run/halo
export PATH=$HALO_HOME/bin:$PATH
- 验证安装版本
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
- 创建数据目录
mkdir -p /u01/app/halo/data/halo
chown -R halo:halo /u01/app/halo/data
(文档写的/data/halo,我想让似曾相识继续下去)
- 初始化数据库
pg_ctl init -D /u01/app/halo/data/halo
8. 启动数据库
vim ~/.bash_profile
增加
export PGDATA=/u01/app/halo/data/halo
pg_ctl start
9. 查看数据库版本
psql
select version();
至此,Halo数据库安装完成,后续配置和基本测试还需要继续摸索。
总结
从安装步骤来看,Halo数据库安装的难度和MySQL、PostgreSQL等开源数据库二进制部署方式类似,并没有太难。
老规矩,知道写了些啥。