Upgrading to vCenter Server 6.x fails with the error: "Internal error occurred during vCenter Server Database pre-upgrade checks"
search cancel

Upgrading to vCenter Server 6.x fails with the error: "Internal error occurred during vCenter Server Database pre-upgrade checks"

book

Article ID: 327824

calendar_today

Updated On:

Products

VMware

Issue/Introduction

Symptoms:
  • When you run the upgrade installer for vCenter Server 6.0, you see the error:
Error: Internal error occurs duing VMWARE vCenter Server Database pre-upgrade checks.
Resolution: send upgrade logs files to GSS for further assistance.
  • In the CollectRequirements_com.vmware.vcdb_YYYY-MM-DD.log file, you see entries similar to:

    <YYYY-MM-DD>T<time> ERROR __main__ Upgrade Phase 'vcdb:CollectRequirements' failed. Exception: need more than 1 value to unpack</time>
Traceback (most recent call last):
File "Y:\PFiles\VMware\CIS\cis_upgrade_runner\payload\componentPhaseLauncher.py", line 379, in main
executionResult = systemExtension(exeContext)
File "Y:\PFiles\VMware\CIS\cis_upgrade_runner\libs\sdk\extensions.py", line 94, in __call__
result = self.extension(*args)
File "Y:\PFiles\VMware\CIS\cis_upgrade_runner\libs\sdk\extensions.py", line 110, in _func
return func(*args)
File "Y:\PFiles\VMware\CIS\cis_upgrade_runner\payload\component-scripts\vcdb\__init__.py", line 1612, in doCollectUpgradeRequirements
req = doWindowsCollectReq(context)
File "Y:\PFiles\VMware\CIS\cis_upgrade_runner\payload\component-scripts\vcdb\__init__.py", line 1120, in doWindowsCollectReq
if isEmbeddedWindows():
File "Y:\PFiles\VMware\CIS\cis_upgrade_runner\payload\component-scripts\vcdb\__init__.py", line 680, in isEmbeddedWindows
host, serviceName = serverName.split("\\")
ValueError: need more than 1 value to unpack
  • Originally, embedded database with vCenter Server was deployed and then migrated to an external database or express database was reinstalled as a default instance.
  • The DSN for vCenter Server database is presented as an IP, hostname, or FQDN with no named instance appended to it.


Cause

This issue occurs due to the split() function.When the embedded database is deployed with vCenter Server, it is created as a named instance such as HOSTNAME.DOMAIN.COM\SQLEXP_VIM. When you create a new SQL Server as a default instance and repoint vCenter Server to it, vCenter Server still assumes that it is using an embedded database and expects the name of the instance at the end of the SQL Server address.

Resolution

This issue is resolved in vCenter Server 6.0 Update 3c, available at VMware Downloads.

To work around this issue if you are unable to upgrade at this time, append a backslash to the server name in your DSN.

For example, replace HOSTNAME.DOMAIN.COM with HOSTNAME.DOMAIN.COM\.

Additional Information

To be alerted when this document is updated, click the Subscribe to Article link in the Actions box..

VMware vCenter Server 6.0 へのアップグレードが次のエラーで失敗する:VMware vCenter Server データベースのアップグレード前のチェック中、内部エラーが発生しました
升级到 VMware vCenter Server 6.0 失败并显示“ VMware vCenter Server 数据库升级前检查期间发生内部错误 (Internal error occurred during vCenter Server Database pre-upgrade checks)”

Impact/Risks:
Note: vCenter Server still assumes the database to be embedded and will attempt to migrate the SQL Server to an embedded vPostgres instance.