启动与验证
启动与验证
启动数据库实例
在 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 进行连接访问。