许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  过期许可证如何延期?向厂商申请新license文件后的替换流程

过期许可证如何延期?向厂商申请新license文件后的替换流程

阅读数 5
点赞 0
article_banner

许可证过期是企业IT运维中必然会遇到的问题。向厂商申请到新license文件后,替换流程看起来简单——复制文件、重启服务、验证——但细节处理不当,轻则导致服务中断,重则引发客户端大规模报错。这篇文章把整个流程拆开讲透。

一、拿到新license文件后,先检查再动手

新license文件从厂商渠道拿到后,不要直接往服务器上覆盖。先做三件事:

第一,核对文件格式。 用文本编辑器(Notepad++或VS Code,不要用记事本)打开新license文件,确认:

  • 文件头部是否有SERVER行和VENDOR行,格式是否与旧文件一致
  • 文件末尾是否有SIGN或SIGN2签名行(没有签名的license文件无效)
  • 换行符格式是否正确——Windows版license文件用CRLF,Linux版用LF。如果厂商发来的文件换行符不对,用dos2unix或unix2dos转换

如果从邮件客户端直接复制粘贴license内容,很容易引入隐藏字符或破坏换行符。建议直接从附件下载原文件。

第二,核对关键信息。 与旧license文件逐项对比:

  • SERVER行的主机名和HOSTID是否与旧文件一致(通常一致)
  • VENDOR行的守护进程名称和PORT=端口号是否一致
  • 需要延期的feature名称是否都在
  • uncounted或具体数量是否正确
  • 过期日期字段是否已更新到新的日期

如果厂商变更了VENDOR行配置(比如更换了端口或修改了路径),需要同步调整。不要假设厂商的配置永远不变。

第三,备份旧license文件。 这是最重要的一步。用时间戳重命名备份:

bash

cp /opt/flexnet/license.lic /opt/flexnet/license.lic.bak.$(date +%Y%m%d)

备份后把新license文件放到生产目录,但先别着急重启服务——可以先用lmcksum校验新文件的签名完整性:

bash

lmutil lmcksum -c /path/to/new_license.lic

如果能正常输出每行feature的校验码,说明签名有效。输出中包含SIGN字样也说明签名完整。

二、替换操作:两个方案,按需选择

替换license文件后,需要让lmgrd重新加载新文件。有两种方式:

方案一:Reread(推荐,零中断)

使用lmreread命令让lmgrd重新读取license文件,不需要重启服务,已经在使用中的许可证不受影响:

bash

# 在线重读
lmutil lmreread -c /path/to/license.lic

# 如果文件路径与当前服务一致,也可以简化
lmutil lmreread

执行后观察debug.log,会看到类似Reread succeededRe-reading license file...的记录。如果看到Re-read of file failed,说明新license文件有问题,需要检查后重试。

需要注意:某些旧版本FlexNet(如10.x)对lmreread支持不完善,可能出现重读后部分feature未生效的情况。如果发现重读后新feature没有出现,用方案二完全重启。

lmreread不仅刷新过期日期,还会重新加载所有新增的feature和INCREMENT行。但以下情况的变更不支持热加载,需要完全重启:

  • SERVER行的端口号发生变化
  • VENDOR行指定的守护进程路径发生变化
  • 守护进程本身需要更新(如升级了SCL工具包)

方案二:完全重启(需要停服)

如果新license文件涉及vendor daemon路径变更、端口变更,或lmreread执行后报错,需要完全重启服务:

bash

# 优雅停止
lmutil lmdown -c /path/to/license.lic -q

# 确认进程已退出
ps -ef | grep -E "lmgrd|vendor_name"

# 重新启动
lmgrd -c /path/to/license.lic -l /var/log/flexnet/debug.log

如果使用systemd管理:

bash

systemctl stop flexnet
systemctl start flexnet

完全重启过程中,所有已签出的许可证会被强制回收,客户端需要重新签出。建议在业务低峰期执行,并提前通知用户保存工作。

三、部署后验证

替换完成后,执行一系列验证操作,确保新license文件已生效:

1. 检查debug.log。 打开日志,搜索licenseerror关键字,确认没有报错。正常的日志应该包含类似lmgrd: Reread of license file succeeded或新feature成功加载的记录。

2. 使用lmstat查看许可证状态。

bash

# 查看所有feature和过期时间
lmutil lmstat -a -c /path/to/license.lic

# 查看特定feature的详细信息
lmutil lmstat -f feature_name -c /path/to/license.lic

重点确认过期日期字段(expires)已更新为新的日期。

3. 实际签出测试。

bash

# 尝试签出并立即签入测试
lmutil lmstat -f feature_name -c server_port@hostname

如果能正常查询到feature信息(显示Users of feature_name:),说明许可证文件已正确加载。

四、常见问题处理

Q1:新license文件放上去后,lmgrd启动失败,报"Invalid license key"

这是签名验证失败。可能原因:文件被修改过(哪怕是加了一个空格)、换行符格式不对、文件包含隐藏字符(如BOM头)。用dos2unix转换换行符后重试,或直接从厂商重新下载未修改的原始文件。

Q2:Reread执行后,部分feature仍显示过期

新license文件中可能只更新了部分feature的过期日期,未包含的那些仍按原日期。如果确定所有feature都在新文件中,lmreread后仍有个别未更新,用lmutil lmstat -f feature_name确认该feature实际状态。如仍未更新,用方案二完全重启。

Q3:新版license文件的feature名称变了怎么办?

厂商有时会调整feature命名规则。替换后如果发现某些客户端报No such feature exists,需要用lmstat -a查看新的feature列表,然后通知用户更新软件配置。

Q4:Reread后debug.log显示"Re-read of file failed"

需要检查:

  • 新license文件的路径是否正确,是否被正确重命名
  • VENDOR行指定的守护进程路径是否有变化
  • 用lmcksum校验新文件的签名是否完整

如确认无误但仍失败,改用完全重启方案。

Q5:多台服务器部署license文件,怎么同步?

如果使用三服务器冗余(Triad)架构,三台服务器都需要更新license文件。更新顺序:先更新备份服务器,再更新主服务器,最后更新仲裁服务器。每台更新后都执行lmreread,并确认三台之间心跳正常。

五、操作清单


步骤操作状态
1从厂商收到新license文件
2检查文件格式(换行符、签名行)
3核对SERVER行主机名/HOSTID
4核对VENDOR行配置
5核对feature名称和过期日期
6备份旧license文件
7将新文件放入生产目录
8执行lmreread(或用systemctl restart)
9检查debug.log确认无报错
10执行lmstat -a确认过期日期已更新
11签出测试feature验证可用
12通知相关用户许可证已更新

六、总结

许可证延期替换的本质是文件替换+服务重读。核心操作看似简单,但核对、备份、验证三个环节缺一不可。

  • 先用lmcksum校验签名,确认新文件本身没问题
  • 备份旧文件,任何时候都能回退
  • 优先使用lmreread零中断替换,路径变更或lmreread失败时才走完全重启
  • 最后用lmstat -a确认过期日期已更新,用debug.log确认无报错

按照这个流程操作,许可证延期替换可以在不中断业务的前提下完成。


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空