如何修复VUM在客户端启用之后报数据库连接失败的问题

在上一篇随笔中介绍了关于重新注册VMware Update ManagerVUM)至vCenter Server的方法,最近有朋友反应,原本切换过去好好的更新服务为什么某次使用一下就不灵了?

当时在VCenter客户端下面的报错信息提示有数据库临时不可用或网络问题。

如何修复VUM在客户端启用之后报数据库连接失败的问题

Figure 1在vSphere Client中启用VUM插件的时候会提示这台VC服务器连接到VUM的时候反馈数据库临时不可用或网络有问题

接着前往VUM服务器查看该服务是否良好运转,发现如上篇随笔中提到的“VMware vSphere Update Manager 服务”和“VMware vSphere Update Manager UFA 服务”两项服务并未启动,手工尝试启动也会提示启动失败,问题原因基本可以确定是VUM服务器出现了故障。

通过翻阅VUM的相关帮助文档,发现,VUM启动的时候会去检索上一次有过关联的VC上的主机与虚拟机情况,如果第一次启动不了,可以尝试多次重启VUM的主服务“VMware vSphere Update Manager 服务”即可,我实在尝试了第二次之后,该条主服务启动正常,同时通过Procmon查看到生成了一个相对较大体积的日志文件,打开之后可以看到基本上全都是做查询输出该关联VC上的各种信息。

如何修复VUM在客户端启用之后报数据库连接失败的问题

Figure 2在默认的日志路径C:\ProgramData\VMware\VMware Update Manager\Logs下面,可以看到所产生的日志,里面有一个19MB的大文件

如何修复VUM在客户端启用之后报数据库连接失败的问题

Figure 3打开这个大文件可以看到很多访问虚拟机的动作,检查是否有请求更新VM产品的内容,红色隐掉的就是虚拟机的名字

使用VMwareUpdateManagerUtility.exe这个实用工具继续注册一下VC和这个VUM的关联关系,但是注册过程中还是会提示数据库连接异常的错误信息(很抱歉当时没有截图),既然和数据库较真,那就好好看看和数据库有关的内容,当时安装VUM的时候需要使用一个数据库,本人使用的是VCenter自带的SQL Express 2008R2,想想上次由于一些原因修改了主机密码,然后看到VMwareUpdateManagerUtility.exe实用工具里面有一项配置注册数据库的项目Database Settings,通过他注册的时候发现又报错了,赶快打开先前运行的procmon,设置过滤项—>只看文件项,发现了他写日志的地方,顺的jump to 一下,看到两个文件。

如何修复VUM在客户端启用之后报数据库连接失败的问题

Figure 4通过Procmon了解到该程序在磁盘上的文件操作,右键路径jump to一下

Applying configuration...

[QuickInf] 2015-09-16 12:15:58 -D "VMware vSphere Update Manager" -U administrator -P **** -C "D:\VMware\Infrastructure\Update Manager" -L "C:\Users\ADMINI~1\AppData\Local\VMware\vpx\Logs" -T "SQL Native Client" -O dbcheck -g 1

[QuickInf] 2015-09-16 12:16:15 vciInstallUtils returned :E_DB_CONNECT_FAILED

[QuickInf] 2015-09-16 12:16:15 Error:: Database error: Could not connect to the database.

[QuickInf] 2015-09-16 12:16:15 Error:: Database error: Could not connect to the database.

[QuickInf] 2015-09-16 12:16:15 Error:: Database error: Could not connect to the database.

Figure 5 vmum-utility日志文件输出的错误信息是和数据库有关的,连接数据库失败,"VMware vSphere Update Manager"这个就是DSN信息

[2015-09-16 12:16:15:613 '' 7456 ERROR] [installerRunDBCommand, 108] [DATABASE] InitConnection: ODBC error: (08001) - [Microsoft][SQL Server Native Client 10.0]SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].

[2015-09-16 12:16:15:622 '' 7456 ERROR] [installerRunDBCommand, 261] [DATABASE] Failed to log in db

Figure 6 vmware-vci-vciInstallUtils-log4cpp日志文件输出的错误信息还是和数据库有关,而且很明确的指出了使用ODBC连接方式出现了问题

通过上面的报错信息,可以判断到问题发生在ODBC连接上。

在Windows 中ODBC的连接设置可以通过“管理工具”下面的“数据源(ODBC)”来进行维护 ODBC 数据源和驱动程序。

打开“数据源(ODBC)”,对VUM使用的数据源进行一下配置。

初次打开发现并没有"VMware vSphere Update Manager"对应的DSN信息,因为这个根本性的问题很清晰了,就是缺少"VMware vSphere Update Manager"DSN信息,我这里按照向导重新配置一下就好了。以下是关键点流程截图:

配置一套新的数据源

如何修复VUM在客户端启用之后报数据库连接失败的问题

Figure 7创建一个基于SQL Server Native Client 的新数据源

如何修复VUM在客户端启用之后报数据库连接失败的问题

Figure 8按照图示进行创建,在服务器的区域选择使用.\实例的模式,这样避免修改了主机名数据库连接不上的可能

如何修复VUM在客户端启用之后报数据库连接失败的问题

Figure 9授权信息全部默认,不做任何操作

如何修复VUM在客户端启用之后报数据库连接失败的问题

Figure 10因为是本地自建的,所以数据库选择方面直接选择VIM_UMDB这个数据库,其余项保持默认

如何修复VUM在客户端启用之后报数据库连接失败的问题

Figure 11查看一下汇总信息,如果希望保存日志,可以勾选一下并输出,其余保持默认,点击完成。

创建好相关的DSN之后,就可以重新在VMwareUpdateManagerUtility.exe 中注册数据库,并且绑定VC与VUM的关系,至此问题全部解决。

总结:

就问题原因回顾一下操作,都有过更改主机名、更改IP、VC升级(弃掉原有的SQL Server数据库变为VMware内置的数据库)等这些比较“要命”的操作。

此次的修复过程避免了重新安装的一股脑问题故障点不明确的情况,同时加深了VUM整体的和学习!

其他参考文件:

当发生VUM升级主机不成功的时候,报告“无法在主机上运行升级脚本”的情况,可以尝试使用VMKB2007163,进行解决。

-=EOB=-

上一篇:开源应用框架BitAdminCore:更新日志20180817


下一篇:js中的for循环案例