三步走,Halo DB 安装指引

alt

前文介绍了国产数据库新星 Halo 数据库是什么,

HaloDB是基于原生PG打造的新一代高性能安全自主可控全场景通用型统一数据库。 业内首次创造性的提出插件式内核架构设计,通过配置的方式,适配不同的应用场景,打造全场景覆盖的能力,满足企业大部分数据存储处理需求。从而消除数据孤岛,降低系统复杂度,保护企业既有投资,降低企业成本。同时支持x86、arm等异构平台之间的混合部署。

我们了解到 Halo DB 是基于 PostgreSQL 的,那么安装 HaloDB 就可以借鉴安装 PG 的一些思路。

安装步骤

在开始安装HaloDB之前,我们需要确保系统环境满足安装要求。本文以CentOS 7.9为例,展示如何在该环境下安装HaloDB。

考虑到性能优化和系统稳定性,建议在安装前对操作系统进行必要的性能调整和优化。但由于本文的安装环境是本地测试环境,所以 OS 一些性能相关设定我们先忽略。

[shawnyan@centos7 ~]$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[shawnyan@centos7 ~]$ uname -r
3.10.0-1160.114.2.el7.x86_64

安装步骤如下:

  1. 安装系统依赖,创建 halo 用户
  2. 解压 Halo 数据库安装包,并复制授权文件 licence
  3. 初始化数据目录,启动 halo 数据库

接下来,具体演示:

Step 1: 安装系统依赖,创建 halo 用户

在安装HaloDB之前,需要安装一系列的系统依赖。这些依赖包括但不限于编译工具、库文件、网络工具等。需要安装的依赖较多,这里不一一进行讲解,直接给出安装命令。

sudo yum install -y 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++ ksh uuid-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 libicu libicu-devel lz4 lz4-devel

需要注意的是,如果在 RHEL 9 或其衍生发行版,有些包已经改名,上面安装依赖的命令需要作出相应调整。

这里Q一下Halo研发,希望下一个大版本支持el9,毕竟PG16已经不提供el7的包了

创建、指定 halo 的用户和组 id 为 2024

sudo groupadd -g 2024 halo
sudo useradd -u 2024 -g halo halo

检查:

[shawnyan@centos7 ~]$ id halo
uid=2024(halo) gid=2024(halo) groups=2024(halo)

Step 2: 解压 Halo 数据库安装包,并复制授权文件 licence

上传安装包和授权文件到服务器:

[shawnyan@centos7 tmp]$ ls
halo_14.el7.x86_64.build231130.tar.gz
license.lic                          

创建安装目录,并给目录授权:

sudo mkdir -p /opt/halo
sudo chown -R halo:halo /opt/halo

切换到 halo 用户,解压缩安装包到指定目录:

tar zxf halo_14.el7.x86_64.build231130.tar.gz -C /opt/halo/

将License文件,名称为license.lic拷贝至数据库根目录:

cp license.lic /opt/halo/product/dbms/14/

Step 3: 初始化数据目录,启动 halo 数据库

配置环境,将以下行加入 /home/halo/.bashrc 的末尾:

cat >> /home/halo/.bashrc << EOF
export HALO_HOME=/opt/halo/product/dbms/14/
export LD_LIBRARY_PATH=\$HALO_HOME/lib
export PGDATA=/data/halo
export PATH=\$HALO_HOME/bin:\$PATH
EOF

初始化数据目录:

pg_ctl init

输出:

The files belonging to this database system will be owned by user "halo".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /data/halo ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Asia/Tokyo
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

initdb: warning: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    /opt/halo/product/dbms/14/bin/pg_ctl -D /data/halo -l logfile start

启动halo数据库:

/opt/halo/product/dbms/14/bin/pg_ctl -D /data/halo -l logfile start

查看版本信息:

$ hsql
psql (1.0.14.10 (231130))
Type "help" for help.

halo0root=# select version();
                                                        version
-----------------------------------------------------------------------------------------------------------------------
 羲和(Halo) 1.0.14.10 (231130) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit
(1 row)

创建超级用户:

halo0root=# CREATE USER shawnyan SUPERUSER PASSWORD '1';
CREATE ROLE

使用新用户连接数据库:

$ hsql -Ushawnyan
psql (1.0.14.10 (231130))
Type "help" for help.

halo0root=# \conninfo
You are connected to database "halo0root" as user "shawnyan" via socket in "/tmp" at port "1921".

halo0root=# \l
                              List of databases
   Name    | Owner | Encoding |   Collate   |    Ctype    | Access privileges
-----------+-------+----------+-------------+-------------+-------------------
 halo0root | halo  | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | halo  | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/halo          +
           |       |          |             |             | halo=CTc/halo
 template1 | halo  | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/halo          +
           |       |          |             |             | halo=CTc/halo
(3 rows)

halo0root=# \du halo
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 halo      | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

总结

好像这样安装还是有点麻烦,有没有更简单、更快捷的方式呢?

有的,留言带你进《HaloDB产品吐槽群》,获取一键安装脚本。

🌻 往期精彩 ▼


-- / END / --

alt

如果这篇文章为你带来了灵感或启发,就请帮忙点『赞』or『在看』or『转发』吧,感谢!(๑˃̵ᴗ˂̵)

本文由 mdnice 多平台发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值