在上一篇随笔中介绍了关于重新注册VMware Update Manager(VUM)至vCenter Server中的方法,最近有朋友反应,原本切换过去好好的更新服务为什么某次使用一下就不灵了?
当时在VCenter客户端下面的报错信息提示有数据库临时不可用或网络问题。
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上的各种信息。
Figure 2在默认的日志路径C:\ProgramData\VMware\VMware Update Manager\Logs下面,可以看到所产生的日志,里面有一个19MB的大文件
Figure 3打开这个大文件可以看到很多访问虚拟机的动作,检查是否有请求更新VM产品的内容,红色隐掉的就是虚拟机的名字
使用VMwareUpdateManagerUtility.exe这个实用工具继续注册一下VC和这个VUM的关联关系,但是注册过程中还是会提示数据库连接异常的错误信息(很抱歉当时没有截图),既然和数据库较真,那就好好看看和数据库有关的内容,当时安装VUM的时候需要使用一个数据库,本人使用的是VCenter自带的SQL Express 2008R2,想想上次由于一些原因修改了主机密码,然后看到VMwareUpdateManagerUtility.exe实用工具里面有一项配置注册数据库的项目Database Settings,通过他注册的时候发现又报错了,赶快打开先前运行的procmon,设置过滤项—>只看文件项,发现了他写日志的地方,顺的jump to 一下,看到两个文件。
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信息,我这里按照向导重新配置一下就好了。以下是关键点流程截图:
配置一套新的数据源
Figure 7创建一个基于SQL Server Native Client 的新数据源
Figure 8按照图示进行创建,在服务器的区域选择使用.\实例的模式,这样避免修改了主机名数据库连接不上的可能
Figure 9授权信息全部默认,不做任何操作
Figure 10因为是本地自建的,所以数据库选择方面直接选择VIM_UMDB这个数据库,其余项保持默认
Figure 11查看一下汇总信息,如果希望保存日志,可以勾选一下并输出,其余保持默认,点击完成。
创建好相关的DSN之后,就可以重新在VMwareUpdateManagerUtility.exe 中注册数据库,并且绑定VC与VUM的关系,至此问题全部解决。
总结:
就问题原因回顾一下操作,都有过更改主机名、更改IP、VC升级(弃掉原有的SQL Server数据库变为VMware内置的数据库)等这些比较“要命”的操作。
此次的修复过程避免了重新安装的一股脑问题故障点不明确的情况,同时加深了VUM整体的和学习!
其他参考文件:
当发生VUM升级主机不成功的时候,报告“无法在主机上运行升级脚本”的情况,可以尝试使用VMKB2007163,进行解决。
-=EOB=-