前文介绍了国产数据库新星 Halo 数据库是什么,
-
哈喽,国产数据库!Halo DB!
★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
安装步骤如下:
-
安装系统依赖,创建 halo 用户 -
解压 Halo 数据库安装包,并复制授权文件 licence -
初始化数据目录,启动 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的包了
后 EL 7 时代,PG 16 如何在 CentOS 7 上运行
创建、指定 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产品吐槽群》,获取一键安装脚本。
🌻 往期精彩 ▼
-
从 PG 技术峰会南京站汲取的那些干货 -
PG 扩展推荐:pgpasswd & PG 密碼長度 -
即将告别PG 12,建议升级到PG 16.3版本 -
PG Style! 盘点几个常用的 Postgres 环境变量 -
后 EL 7 时代,PG 16 如何在 CentOS 7 上运行
-- / END / --
如果这篇文章为你带来了灵感或启发,就请帮忙点『赞』or『在看』or『转发』吧,感谢!(๑˃̵ᴗ˂̵)
本文由 mdnice 多平台发布