一、问题背景
在银河麒麟操作系统下部署瀚高数据库(hgdb-4.5),默认配发的试用授权只有20天有效期。一旦到期,数据库会因为授权校验失败而无法正常提供服务,这时候就必须把正式授权文件换上才能恢复运行。
很多人在这一步会踩一个坑:直接跑去修改data目录下那个自动生成的license.info文件。实际上,这只是一个展示试用信息的文件,你改它根本解决不了授权过期的问题。正确的做法,是必须通过官方授权文件来激活。
二、授权文件规范
2.1 路径与命名要求
瀚高数据库对授权文件的存放路径和文件名,有非常明确的约束:
标准存放路径是:/opt/highgo/hgdb-4.5/etc/lic/
文件名必须叫hgdb.lic,不支持自定义名称
权限必须设置为600,确保只有root用户能读写,防止权限泄露带来的安全隐患
2.2 错误操作示例
直接编辑data目录下的license.info文件,是典型的无效操作:
# 错误示范:试图修改自动生成的试用信息文件vi /opt/highgo/hgdb-4.5/data/license.info
这个文件是由数据库服务自动生成和更新的,手动改的内容,服务一重启就会被覆盖,根本没有办法完成授权更新。
三、正确替换授权文件步骤
3.1 停止数据库服务
替换授权文件之前,必须先停掉数据库服务,防止文件被占用:
systemctl stop hgdb
如果服务没完全停掉,授权文件很可能无法正常读取。
3.2 备份旧授权文件
为了避免新授权文件有问题导致无法回退,建议先备份一下旧文件:
mv /opt/highgo/hgdb-4.5/etc/lic/hgdb.lic /opt/highgo/hgdb-4.5/etc/lic/hgdb.lic.bak
3.3 复制并重命名新授权文件
把获取到的正式授权文件复制到指定目录,并严格命名为hgdb.lic:
cp /path/to/your/new/license/file /opt/highgo/hgdb-4.5/etc/lic/hgdb.lic
注意把/path/to/your/new/license/file替换成实际的授权文件路径。
3.4 设置文件权限
为了让数据库服务能正确读取授权文件,还需要设置正确的权限和属主:
chmod 600 /opt/highgo/hgdb-4.5/etc/lic/hgdb.licchown highgo:highgo /opt/highgo/hgdb-4.5/etc/lic/hgdb.lic
3.5 启动数据库服务
上述步骤完成后,启动数据库服务让新授权生效:
systemctl start hgdb
四、问题排查与验证
4.1 检查授权状态
服务启动后,可以通过以下命令验证授权是否已经生效:
-- 使用数据库客户端执行SELECT version();SELECT * FROM pg_settings WHERE name LIKE 'license%';
如果返回的授权信息里包含正式授权的有效期,说明配置成功了。
也可以直接在Linux中查看文件,确认过期时间。

4.2 日志排查
如果授权依然没生效,可以先查看数据库日志,定位问题原因:
tail -f /opt/highgo/hgdb-4.5/data/pg_log/postgresql-*.log
日志里通常会记录授权文件读取失败、权限不足这类错误信息,能帮我们快速定位。
4.3 联系技术支持
如果按照上述步骤操作后,依然提示授权过期,那就需要联系瀚高技术支持人员,提供服务器的CPU ID、系统版本等信息,获取匹配的有效授权文件。
五、总结
瀚高数据库的授权配置,核心就几点:
- 授权文件必须放在/opt/highgo/hgdb-4.5/etc/lic/目录下
- 文件名必须是hgdb.lic
- 权限必须是600
- 绝对不要直接修改data目录下的license.info文件
按照本文的步骤操作,就能有效解决瀚高数据库授权过期的问题,确保数据库服务稳定运行。
