首页 > 数据库 > 数据库开发技术 > 国产数据库初体验——HaloDB安装
作者:Digital Observer(施嘉伟)
Oracle ACE Associate: Database
PostgreSQL ACE Partner
11年数据库行业经验,现主要从事数据库服务工作
拥有Oracle OCM、DB2 10.1 Fundamentals、MySQL 8.0 OCP、WebLogic 12c OCA、KCP、PCTP、PCSD、OCI、PolarDB技术专家、达梦师资认证、数据安全咨询高级等认证
ITPUB认证专家、PolarDB开源社区技术顾问
国内某高校企业实践指导教师
公众号:Digital Observer;CSDN:施嘉伟;ITPUB:sjw1933;PGFans:施嘉伟。
Halo数据库是一款国产化数据库产品。它拥有先进的内核架构、多平台兼容能力、异构平台支持等关键特性。本次有幸能拿到测试资格,故给大家分享一波安装初体验。
为能够更好比较数据库性能,最好能够和现有生产相同配置。开始安装之前,请先确认计算机是否满足以下最低配置需求:
配置需求 |
CPU |
内存 |
磁盘 |
网络 |
最低配置 |
8C |
32GB |
512GB |
千兆 |
建议配置 |
64C 及以上 |
256GB 及以上 |
1TB SSD 及以上 |
10G 光口/千兆 |
本次安装环境为:Red Hat Enterprise Linux 7.5
操作系统 |
X86 |
ARM |
银河麒麟 |
√ |
√ |
中标麒麟 |
√ |
√ |
统信 |
√ |
√ |
CentOS |
√ |
√ |
openEuler |
√ |
√ |
Ubuntu |
√ |
|
RHEL |
√ |
√ |
FreeBSD |
√ |
|
凝思 |
√ |
√ |
普华 |
√ |
√ |
deepin |
√ |
|
debian |
√ |
|
方德 |
√ |
关闭运行中的服务
#systemctl stop firewalld.service
关闭操作系统自启动
#systemctl disable firewalld.service
检查关闭情况
systemctl status firewalld.service
dead表示未开启开机启动;inactive表示现在的状态是关闭
关闭selinux:
编辑/etc/selinux/config 文件
[root@DBServer1 ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
Halo14需要以下RPM依赖包:
挂载光驱
mount /dev/cdrom /mnt
配置yum:
vi /etc/yum.repos.d/dvd.repo 添加如下:
[dvd]
name=dvd
baseurl=file:///mnt
gpgcheck=0
yum install -y iproute bind iptables which sudo sysstat make cmake gcc gcc-c++ uuid uuid-devel bison flex perl perl-devel perl-ExtUtils-Embed readline readline-devel libxml2 libxml2-devel iotop tcpdump strace gdb systemtap net-tools xdpyinfo smartmontools ksh bc libaio libaio-devel libX11 libXau libXi libXtst libicu libicu-devel libXrender libXrender-devel libxcb libgcc libstdc++ libstdc++-devel libcurl libcurl-devel zlib-devel tcl glibc glibc-devel ftp yum install -y openssl openssl-devel binutils nfs-utils python-devel yum install -y zstd zstd-devel lz4 lz4-devel autoconf
创建halo用户
groupadd -g 3000 halo
useradd -u 3000 -g halo halo
echo "XXXXX" | passwd --stdin halo
vi /etc/sysctl.conf
默认情况下,共享内存段通常是足够的。大多数情况下只需要调整系统信号就可以了
添加
kernel.sem = 4096 4194304 32768 1024
执行生效
sysctl -p
在/etc/security/limits.conf 文件添加如下参数:
vi /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
Halo14 数据库建议的安装目录为/u01/app/halo,可根据需要自定义安装目录。如果不存在,您需要使用 root 用户先创建该目录,并赋予 halo 用户对该目录的读写权限。
mkdir -p /u01/app/halo
chown -R halo:halo /u01/
安装包:halo_14.el7.aarch64.build240418.tar.gz
需要介质:license.lictar -zxvf halo_14.el7.x86_64.build221014.tar.gz -C /u01/app/halo/
解压安装包后得到 product 目录,product 目录有三个子目录 dbms,instantclient_xx_x,shield
移动或拷贝 license 到 halo14 应用程序目录
cp license.lic /u01/app/halo/product/dbms/14
进程目录默认路径/var/run/halo,如不存在需要手工创建。
mkdir /var/run/halo
chown halo:halo /var/run/halo
注意:在/var/run 目录下的用户内容在操作系统重启后会被系统自动清理,为防止因为系统重启导致的路径丢失错误,可以在/etc/rc.local 中配置系统重启后自动重建路径。
在/etc/rc.local 和/etc/rc.d/rc.local文件添加自动重建
vi /etc/rc.d/rc.local 添加
/usr/bin/mkdir /var/run/halo
/usr/bin/chown halo:halo /var/run/halo
授权
chmod +x /etc/rc.d/rc.local
数据目录是 Halo14 数据库中存放数据文件的目录,建议的数据目录为/data/halo/,也可以根据需要自定义设置。您可以根据业务系统数据量来单独设置数据目录路径,例如将数据目录初始化在本机硬盘或者挂载在盘阵上。需要注意的是 Halo 数据库数据目录的拥有者必须为halo 用户,且目录权限应该为 0700 或者 0750。
mkdir -p /data/halo
chown -R halo:halo /data/halo
chmod -R 0700 /data/halo
--halo 用户下操作
vi /home/halo/.bash_profile
添加
#Halo 数据库应用程序的安装目录
export HALO_HOME=/u01/app/halo/product/dbms/14
#指定可执行程序在运行时查找共享库的路径
export LD_LIBRARY_PATH=$HALO_HOME/lib
# 进程目录的路径
export PGHOST=/var/run/halo
#数据目录路径
export PGDATA=/data/halo
export PATH=$HALO_HOME/bin:$PATH
export PATH
加载修改后的环境变量配置
--halo 用户下操作
source /home/halo/.bash_profile
初始化的过程会创建数据库集群包括数据目录及其子目录和子文件、生成系统表以及创建 template1 和 halo0root 数据库。当创建新数据库时,将会复制 template1 数据库中的所有内容,halo0root 数据库是供用户、实例程序和第三方应用程序使用的默认数据库。初始化必须以 halo 用户(运行数据库服务器进程)身份运行它,不能以 root 用户运行初始化操作。
--halo 用户下操作
pg_ctl init -D /data/halo
或者
--halo 用户下操作
initdb -D /data/halo
在 halo 用户下进行启动数据库操作
--halo 用户下操作
pg_ctl start
验证安装版本
--halo 用户下操作
pg_ctl -V
psql -c "select version()"
进入命令行:
psql

本次安装非常顺利,相对来说还是比较容易上手的,不过建议在后续的版本中更加简化安装步骤。让更多的人能快速上手体验Halo数据库。
今天的分享到此结束,欲知更多,请关注下一期公众号!
祝国产数据库越来越好!




原文作者:Digital Observer;如有侵权,请联系管理员删除。