文章目录
环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:4.5.10
症状
数据库容器无法启动,无明显错误提示,通过docker logs +容器名 无法确认明确的报错信息
[root@security home]# docker logs b1
PostgreSQL Database directory appears to contain a database; Skipping initialization
2026-02-24 10:17:23.137 CST [1] LOG: data encryption performed by sm4
2026-02-24 10:17:23.148 CST [1] LOG: starting HighGo Database Management System 4.5 on x86_64,build on 20250227
2026-02-24 10:17:23.149 CST [1] LOG: listening on IPv4 address "0.0.0.0", port 5866
2026-02-24 10:17:23.149 CST [1] LOG: listening on IPv6 address "::", port 5866
2026-02-24 10:17:23.163 CST [1] LOG: listening on Unix socket "/tmp/.s.PGSQL.5866"
2026-02-24 10:17:23.587 CST [1] LOG: redirecting log output to logging collector process
2026-02-24 10:17:23.587 CST [1] HINT: Future log output will appear in directory "hgdb_log".
问题原因
docker logs仅显示当屏打印的内容,无法定位原因,最终通过查看对应容器在宿主机上的数据库运行日志定位为license过期。
解决方案
1、通过docker inspect命令查看目录映射情况
docker inspect be 或
docker inspect be | grep Binds -A 4
[root@security hgdb_log]# docker inspect be | grep Binds -A 4
"Binds": [
"/home/myhgdata4510:/home/highgo/hgdb"
],
"ContainerIDFile": "",
"LogConfig": {
2、进入宿主机目录,确定数据库运行目录,查看对应数据库运行日志,确定数据库无法启动原因为license过期
[root@security hgdb_log]# cd /home/myhgdata4510
[root@security myhgdata4510]# ls
data hgdbbak
[root@security myhgdata4510]# cd data
[root@security data]# ls
audit_param.conf current_logfiles hgaudit pg_commit_ts pg_hba.conf pg_logical pg_notify pg_serial pg_stat pg_subtrans pg_twophase pg_wal postgresql.auto.conf postmaster.opts secure_param.conf server.key
base global hgdb_log pg_dynshmem pg_ident.conf pg_multixact pg_replslot pg_snapshots pg_stat_tmp pg_tblspc PG_VERSION pg_xact postgresql.conf root.crt server.crt
[root@security data]# cd hgdb_log/
[root@security hgdb_log]# tail -f highgodb_24.csv
2026-02-24 11:07:00.320 CST,,,1,,699d15d3.1,1,,2026-02-24 11:06:59 CST,,0,LOG,00000,"ending log output to stderr",,"Future log output will go to log destination ""csvlog"".",,,,,,,""
2026-02-24 11:07:00.331 CST,,,1,,699d15d3.1,2,,2026-02-24 11:06:59 CST,,0,FATAL,XX000,"The database cannot be started because the license has expired on 2025-10-29 23:59:59. Replace the license
2026-02-24 11:07:00.343 CST,,,1,,699d15d3.1,3,,2026-02-24 11:06:59 CST,,0,LOG,00000,"database system is shut down",,,,,,,,,""
3、上传license到docker容器后,正常启动docker容器
[root@security data]# mv hgdb_4510u.lic /opt/hgdb.lic
[root@security data]# chmod 0600 /opt/hgdb.lic
[root@security opt]# docker cp hgdb.lic b1:/opt/highgo/hgdb-4.5/etc/lic
[root@security opt]# docker start b1
b1
[root@security opt]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b19957afa0fb registry.cn-beijing.aliyuncs.com/hgdb/hgdb-see:4.5.10.3 "docker-entrypoint.s..." 4 months ago Up 12 minutes 0.0.0.0:58663->5866/tcp myhgdb-see-45103