我目前正在使用 Fixpack 1 并正在尝试安装任何更新的修复包。他们都拒绝以类似的错误申请自己。下面的一个来自 Fixpack 2 文件v10.5fp2_ntx64_server
。他们每个人都说他们无法升级我的版本,但他们都没有提供理由。
阅读安装规划链接后,遇到这个问题后我的大脑很痛:
DB2 必须安装在启用短名称的驱动器或没有空格的目录上,例如 E:\DB2\SQLLIB。要检查驱动器的当前 8.3 文件名设置,请在具有管理员权限的命令窗口中输入
fsutil.exe behavior query disable8dot3
运行命令时会返回以下可能值:
0: Create 8.3 short file names (default)
1: Do not create 8.3 file names
2: Set 8.3 file names on a per volume basis
3: Disable 8.3 file names on all volumes, except the system volume
NtfsDisable8dot3NameCreation 的注册表状态为 0,这意味着在所有卷上启用 8.3 文件名。要全局启用 8.3 文件名,请输入
fsutil.exe behavior set disable8dot3 0
如果 DB2 安装在不支持 8.3 名称的驱动器和不带空格的目录中,则必须将它重新安装在支持 8.3 名称的驱动器上。如果在禁用 8.3 名称支持时已经创建了您尝试安装 DB2 的文件夹,那么如果您尝试重新安装到同一目录,则不会创建短名称。Windows 短名称是在目录创建期间创建的,因此您必须将其安装到新目录中,或者如果目录为空,请删除该目录并允许重新创建。
在我的系统上,设置为默认值 2,即“每卷”。我不确定这是否是修复包拒绝自行安装的原因。
这是否意味着 IBM 实质上将他们的客户置于一个死亡陷阱,允许 DB2 的初始安装将其放入C:\Program Files\
,但拒绝在以后安装修订包?我不敢相信这是事实。任何 DB2 用完的人都可以C:\Program Files\
解释我们应该如何升级吗?
更新:
通过运行,dir /x
我发现层次结构中的所有目录从c:\
下到上sqllib
都有短名称。缺少它们不能成为拒绝安装更新的原因。