跳到主要内容

启动与验证

启动与验证​

启动数据库实例​

在 halo 用户下,使用 pg_ctl start 启动数据库实例:

pg_ctl -D /data/halo -l /data/halo/startup.log -w start

实际终端输出如下:

[halo@halo ~]$ pg_ctl -D /data/halo -l /data/halo/startup.log -w start
waiting for server to start.... done
server started
[halo@halo ~]$

启动日志(/data/halo/startup.log)如下:

2026-08-11 07:10:59.218 UTC [700] LOG: redirecting log output to logging collector process
2026-08-11 07:10:59.218 UTC [700] HINT: Future log output will appear in directory "diag".

说明: server started 表示数据库已成功启动。也可设置环境变量 PGDATA 后直接 pg_ctl start,避免在命令中输入路径。后续日志会重定向到 $PGDATA/diag 目录。

验证数据库状态​

使用 pg_ctl status 确认数据库运行状态:

pg_ctl status

正常输出如下,表示数据库已正常运行:

[halo@halo ~]$ pg_ctl status
pg_ctl: server is running (PID: 700)
/u01/app/halo/product/dbms/16/bin/postgres "-D" "/data/halo"
[halo@halo ~]$

也可连接数据库查看版本(注意使用默认库名 halo0root):

psql -p 1921 -d halo0root -c "select version();"

实际终端输出如下:

[halo@halo ~]$ psql -p 1921 -d halo0root -c "select version();"
version
------------------------------------------------------------------------------------------------------------------------
羲和(Halo) 1.0.16.11 (260811) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 13.3.1 20240611 (Red Hat 13.3.1-2), 64-bit
(1 row)
[halo@halo ~]$

注意: pg_ctl、psql 等命令需在 halo 用户 下执行(其路径配置在 halo 用户环境变量中)。root 用户下执行会报 command not found,请先 su - halo 切换用户。

功能性烟测​

执行建表、写入、查询、删除的完整闭环,确认数据库可正常读写:

psql -p 1921 -d halo0root <<'SQL'
CREATE TABLE verify_t(id int, msg text);
INSERT INTO verify_t VALUES (1, 'halo manual install ok');
SELECT * FROM verify_t;
DROP TABLE verify_t;
SQL

实际终端输出如下:

[halo@halo ~]$ psql -p 1921 -d halo0root <<'SQL'
CREATE TABLE verify_t(id int, msg text);
INSERT INTO verify_t VALUES (1, 'halo manual install ok');
SELECT * FROM verify_t;
DROP TABLE verify_t;
SQL
CREATE TABLE
INSERT 0 1
id | msg
----+------------------------
1 | halo manual install ok
(1 row)

DROP TABLE
[halo@halo ~]$

端口与配置核对​

确认端口监听、字符集、归档状态:

psql -p 1921 -d halo0root -c "SHOW server_encoding;"
psql -p 1921 -d halo0root -tAc "SHOW archive_mode;"
grep -i ":0781" /proc/net/tcp

实际终端输出如下:

[halo@halo ~]$ psql -p 1921 -d halo0root -c "SHOW server_encoding;"
server_encoding
-----------------
UTF8
(1 row)

[halo@halo ~]$ psql -p 1921 -d halo0root -tAc "SHOW archive_mode;"
on

[halo@halo ~]$ grep -i ":0781" /proc/net/tcp
1: 00000000:0781 00000000:0000 0A 00000000:00000000 ...
[halo@halo ~]$

说明:

  • server_encoding = UTF8,对应默认 UTF-8 字符集。
  • archive_mode = on,归档已启用。
  • /proc/net/tcp 中 00000000:0781 表示 0.0.0.0:1921(0x0781 = 1921)全网卡监听,应用可通过服务器 IP + 端口 1921 连接。
  • 若最小化系统未安装 ss 或 netstat,可用 /proc/net/tcp 替代确认端口监听。

至此,Halo 单实例数据库手工部署完成,应用可通过数据库所在服务器 IP 与默认端口 1921 进行连接访问。