跳到主要内容

手工安装速查与常见问题

速查与常见问题​

手工部署步骤速查表​

阶段操作命令 / 配置
安装准备上传安装包与授权文件ll /install/
安装准备解压安装包tar -zxf halo-1.0.16.x86_64.build260811.tar.gz -C /u01/app/halo/
系统配置安装缺失依赖dnf install -y libxcrypt-compat libpsl brotli procps-ng
系统配置创建 halo 用户与组groupadd -g 1000 halo; useradd -u 1000 -g halo halo
系统配置配置进程目录mkdir -p /var/run/halo; chown halo:halo /var/run/halo
系统配置配置内核参数sysctl -w kernel.sem="4096 4194304 32768 1024"
系统配置配置资源限制编辑 /etc/security/limits.conf(nofile/nproc/stack/memlock/core)
系统配置关闭透明大页echo never > /sys/kernel/mm/transparent_hugepage/enabled
数据库初始化创建数据目录mkdir -p /data/halo/archivedir; chown -R halo:halo /data/halo
数据库初始化配置 halo 用户环境变量编辑 /home/halo/.bash_profile(HALO_HOME/PGDATA/PATH/LD_LIBRARY_PATH)
数据库初始化拷贝授权文件cp license.lic /u01/app/halo/product/dbms/16/
数据库初始化初始化数据库pg_ctl init -D /data/halo
数据库初始化配置参数文件编辑 postgresql.conf、pg_hba.conf
启动验证启动数据库pg_ctl -D /data/halo -l /data/halo/startup.log -w start
启动验证验证状态pg_ctl status
启动验证查看版本psql -p 1921 -d halo0root -c "select version();"

默认路径与端口​

默认安装路径与端口汇总见附录 A.1。

常见问题​

Q1:root 用户下执行 pg_ctl、psql 报 command not found?

A:这些命令的路径配置在 halo 用户环境变量中。请执行 su - halo 切换到 halo 用户后再执行;或在 root 下手动 export PATH=$HALO_HOME/bin:$PATH。

Q2:运行二进制报 error while loading shared libraries: libcrypt.so.1(或 libpsl、libbrotlidec)?

A:精简操作系统镜像缺少 Halo 所需的动态库。执行 dnf install -y libxcrypt-compat libpsl brotli 补齐依赖。可用 ldd <二进制路径> | grep "not found" 全量扫描缺失库。

Q3:启动数据库报 syntax error in postgresql.conf ... near token """?

A:Halo 的 postgresql.conf 解析器要求字符串值使用 单引号。将 listen_addresses = "*" 改为 listen_addresses = '*',archive_command = "..." 改为单引号包裹即可。

Q4:连接数据库报 FATAL: database "postgres" does not exist?

A:Halo 的 initdb 默认创建的数据库为 halo0root。请使用 psql -d halo0root 连接。

Q5:手工部署与一键安装脚本部署的最终产物是否一致?

A:一致。二者最终都产出一个可用的 Halo 单机数据库实例,仅过程不同——一键脚本全自动串联依赖安装、initdb、参数配置、归档、授权、启动、兼容模式、大页等步骤;手工部署则将这些步骤拆解为可逐条执行的命令,便于定制与排查。

Q6:如何持久化进程目录、内核参数、THP 关闭等配置,防止重启失效?

A:进程目录写入 /etc/rc.local(并 chmod +x /etc/rc.d/rc.local);内核参数写入 /etc/sysctl.conf 后 sysctl -p;THP 关闭与大页配置可通过 systemd 服务或 /etc/rc.local 持久化。

与一键安装脚本的差异说明​

项目一键安装脚本手工部署
依赖安装自动检测并安装需手动 dnf install
halo 用户自动创建或询问重建手动 groupadd/useradd
initdb自动执行手动 pg_ctl init
参数配置自动配置 pg_hba/postgresql.conf手动编辑追加配置
归档配置交互式询问并自动配置手动建目录 + 配置 archive_mode
授权文件自动拷贝手动 cp
启动自动启动手动 pg_ctl start
大页(HugePage)自动配置手动配置(生产建议开启)
兼容模式数据库交互式创建(all/oracle/mysql/...)默认不创建,需要时手动进行配置