三步走,Halo DB 安装指引

news2024/11/17 19:45:11
alt

前文介绍了国产数据库新星 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

安装步骤如下:

  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的包了

  • 后 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 / --

alt

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

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1710896.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

美光拟投巨资在日本广岛建DRAM厂,目标2027年底投产

美光科技&#xff08;Micron Technology&#xff09;据日本媒体报道&#xff0c;计划在日本广岛县新建一座DRAM芯片生产工厂&#xff0c;目标最快于2027年底投入运营。这一举措标志着美光在增强其内存芯片生产能力方面的又一重大步伐。 报道称&#xff0c;新工厂的总投资规模预…

【CALayer-CALayer的基本属性 Objective-C语言】

一、接下来,我们来说这个Layer啊, 1.首先,Layer能接触到的,就是我们之前说截图啊,就是我们self.view里面,有一个layer属性, [self.view.layer renderInContext:(CGContextRef t)]; 那个里面,有一个layer属性,然后呢,是CALayer类型的, 接下来,我们就来学习一…

union all 以及标量子查询执行计划

SELECT 1, (SELECT ID1 FROM TE WHERE IDA.ID2) FROM .TA A WHERE COLA X UNION ALL SELECT 1, (SELECT ID2 FROM TD WHERE IDA.ID1) FROM .TB A WHERE COLA X UNION ALL SELECT 1,COL2 AS PARENT_UUID FROM .TC a WHERE COLA X 三个union all 看着像是5个table joi…

做好开源快速开发平台研发创新 助力行业高效发展!

随着信息化时代的到来&#xff0c;科技的力量无处不在。为了提高办公效率&#xff0c;很多大中型企业倾向于使用更为先进的软件平台来助力企业降本增效。在众多助力神器之中&#xff0c;开源快速开发平台低代码技术平台深得广大新老客户朋友的喜爱&#xff0c;它与生俱来的优势…

Python中Web开发-Django框架

大家好&#xff0c;本文将带领大家进入 Django 的世界&#xff0c;探索其强大的功能和灵活的开发模式。我们将从基础概念开始&#xff0c;逐步深入&#xff0c;了解 Django 如何帮助开发人员快速构建现代化的 Web 应用&#xff0c;并探讨一些最佳实践和高级技术。无论是初学者还…

APM2.8内置罗盘校准

如果你有外置罗盘&#xff0c;可以不用校准内置罗盘&#xff0c;可以忽略此文。推荐使用外置罗盘&#xff0c;内置罗盘容易受干扰。 使用内置罗盘需要插入飞控GPS接口旁边的跳线帽。如图&#xff1a; 如果要使用内置罗盘&#xff0c;而又加了GPS的&#xff0c;记得一定要把GPS…

手机性能过剩?三年前的改名芯片卡顿明显,中端机太弱鸡了

业界人士都喜欢说手机的性能已经严重过剩&#xff0c;笔者近期从运营商购买了两款手机&#xff0c;搭载的芯片是联发科的改名芯片&#xff0c;以及高通的低端芯片&#xff0c;使用中明显卡顿&#xff0c;显示出这些改名芯片的性能早已落后于时代。 其中一款为OPPO A2&#xff0…

【Mybatis】映射文件中获取参数的符号#{}和${}的区别

在xml映射文件中获取参数的符号都是用的#{}的方式&#xff0c;其实Mybatis还支持另一种符号来接收传递过来的参数值&#xff0c;就是${}&#xff0c;他们是区别就在与底层使用jdbc的statement不一样 #{}对应的是PreparedStatementd对象来执行sql语句 ${}对应的是Statement对象…

【TCP协议中104解析】wireshark抓取流量包工具,群殴协议解析基础

Tcp ,104 ,wireshark工具进行解析 IEC104 是用于监控和诊断工业控制网络的一种标准&#xff0c;而 Wireshark则是一款常用的网络协议分析工具&#xff0c;可以用干解析TEC104 报文。本文将介绍如何使用 Wireshark解析 IEC104报文&#xff0c;以及解析过 程中的注意事项。 一、安…

Revit——(2)模型的编辑、轴网和标高

目录 一、关闭缩小的隐藏窗口 二、标高&#xff08;可创建平面&#xff0c;其他标高线复制即可&#xff09; 三、轴网 周围的四个圈和三角表示四个里面&#xff0c;可以移动&#xff0c;不要删除 一、关闭缩小的隐藏窗口 二、标高&#xff08;可创建平面&#xff0c;其他标…

JDK9-21新特性概览(持续更新)

JDK9-21新特性概览 一、JDK9新特性1.1 JEP 102: Process API Updates简介案例风险 1.2 JEP 193: Variable Handles简介案例风险 1.3 JEP 200: The Modular JDK简介案例风险 1.4 JEP 213: Milling Project Coin简介案例1.1 try-with-resources增强1.2 接口中私有方法 1.5 JEP 22…

Sentinel-2 哨兵二号数据介绍及下载

1 Sentinel-2简介 SENTINEL-2 is a European wide-swath, high-resolution, multi-spectral imaging mission. Sentinel-2 是高分辨率多光谱成像卫星&#xff0c;一颗卫星的重访周期为10天&#xff0c;两颗互补&#xff0c;重访周期为5天。分为2A和2B两颗卫星。2A于2015年6月…

【Mybatis】映射文件中获取参数的类型是集合或数组处理

基本数据类型的参数或者对象作为参数的情况&#xff0c;在Mybatis还有一些特殊处理的参数类型要特别注意&#xff1a;如果参数类型是集合Collection&#xff08;List&#xff0c;Set&#xff09;或者是数组&#xff0c;Mybatis也会把这些类型的参数封装在一个Map对象中传递到xm…

电脑记事软件哪款安全?好用且安全的桌面记事工具

在快节奏的现代生活中&#xff0c;我们每天都要用电脑处理大量的工作。电脑不仅提升了工作效率&#xff0c;还成为了我们记录重要事项和灵感的得力助手。比如&#xff0c;在策划项目时&#xff0c;我会直接在电脑上列出要点和步骤&#xff1b;在开会时&#xff0c;我也会用电脑…

Python | Leetcode Python题解之第117题填充每个节点的下一个右侧节点指针II

题目&#xff1a; 题解&#xff1a; class Solution:def connect(self, root: Node) -> Node:if not root:return Nonestart rootwhile start:self.last Noneself.nextStart Nonep startwhile p:if p.left:self.handle(p.left)if p.right:self.handle(p.right)p p.nex…

【Mybatis】映射文件中获取单个参数和多个参数的写法

xml的映射文件中获取接口方法中传来的参数是直接用#{}的方式来获取的 那么接下来&#xff0c;我们就具体来说一下获取参数里边的各种规则和用法 1.单个参数&#xff0c;比如上面的getOneUser&#xff0c;只有一个id值作为参数 Mybatis对于只有一个参数的情况下&#xff0c;不…

【深度学习】Transformer梳理

零、前言 对于transformer&#xff0c;网上的教程使用记号、术语不一 。 最关键的一点&#xff0c;网上各种图的简化程度不一 &#xff08;画个图怎么能这么偷懒&#xff09; &#xff0c;所以我打算自己手画一次图。 看到的最和善&#xff08;但是不是那么靠谱&#xff0c;我…

Qt 项目(CMake)支持多国语言(2024/05)

目录 1.在工程手动创建languages文件夹2.修改CMakeLists.txt3.在qml上随便添加一下文字内容4.执行CMake5.把.ts和.qm添加到项目中6.翻译成英文的示例7.在main里面加载语言文件8.启动软件自动获取电脑的语言遗留问题 参考:Qt 项目(CMake)设置国际化支持 1.在工程手动创建langua…

AIGC中国开发者大会:AI Agent中国落地发展现状及多模态结合具身智能的发展展望

引言 2024年5月25日&#xff0c;第三届AIGC中国开发者大会在昆仑巢成功举办。本次大会围绕“AI Agent的国内应用现状及多模态结合具身智能的发展展望”这一主题&#xff0c;邀请了多位知名企业家、投资人以及技术专家&#xff0c;共同探讨大模型在中国各行各业的应用现状及未来…

基于粒子群算法的网络最优节点部署优化matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于粒子群算法的网络最优节点部署优化,实现WSN网络的节点覆盖最大化。 2.测试软件版本以及运行结果展示 MATLAB2022A版本运行 3.核心程序 .................…