Upgrading VMware vCenter Server from 5.x to 6.0 with a Microsoft SQL Server database fails with the error: Internal error occurs during VMware vCenter Server Database pre-upgrade checks
search cancel

Upgrading VMware vCenter Server from 5.x to 6.0 with a Microsoft SQL Server database fails with the error: Internal error occurs during VMware vCenter Server Database pre-upgrade checks

book

Article ID: 324787

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

Symptoms:
When upgrading to VMware vCenter Server 6.0 from VMware vCenter Server 5.x using a Microsoft SQL Server database, you experience these symptoms:
  • The VMware vCenter Server Pre-Upgrade Checker fails
  • You see the error:

    Error: Internal error occurs during VMware vCenter Server Database pre-upgrade checks.
     
  • The %temp%\vcsUpgrade\CollectRequirements_com.vmware.vcdb_YYYY_MM_DD_HH_MM.log file contains the errors:
     
    <YYYY-MM-DD>T<time>Z INFO transport.local Key "SOFTWARE\ODBC\ODBC.INI\VMware VirtualCenter" is unicode, thus try to encode it to default file system encoding "mbcs", which would be successfully used by Windows box when reading/writing windows registries</time>
    <YYYY-MM-DD>T<time>Z INFO transport.local Key "SOFTWARE\ODBC\ODBC.INI\VMware VirtualCenter" is unicode, thus try to encode it to default file system encoding "mbcs", which would be successfully used by Windows box when reading/writing windows registries</time>
    <YYYY-MM-DD>T<time>Z INFO vcdb Identified: Bundled MSSQL with Windows Authentication</time>
    <YYYY-MM-DD>T<time>Z INFO transport.local Key "SOFTWARE\ODBC\ODBC.INI\VMware VirtualCenter" is unicode, thus try to encode it to default file system encoding "mbcs", which would be successfully used by Windows box when reading/writing windows registries</time>
    <YYYY-MM-DD>T<time>Z WARNING transport.local BAD REQUEST: Cannot execute ['sqlcmd', '-E', '-S', u'localhost\\', '-h', '-1', '-Q', 'SELECT @@VERSION']. Error: [Error 2] The system cannot find the file specified</time>
    <YYYY-MM-DD>T<time>Z ERROR __main__ Upgrade Phase 'vcdb:CollectRequirements' failed. Exception:</time>
    Traceback (most recent call last):
    File "Z:\PFiles\VMware\CIS\cis_upgrade_runner\payload\componentPhaseLauncher.py", line 379, in main
    executionResult = systemExtension(exeContext)
    File "Z:\PFiles\VMware\CIS\cis_upgrade_runner\libs\sdk\extensions.py", line 94, in __call__
    result = self.extension(*args)
    File "Z:\PFiles\VMware\CIS\cis_upgrade_runner\libs\sdk\extensions.py", line 110, in _func
    return func(*args)
    File "Z:\PFiles\VMware\CIS\cis_upgrade_runner\payload\component-scripts\vcdb\__init__.py", line 1612, in doCollectUpgradeRequirements
    req = doWindowsCollectReq(context)
    File "Z:\PFiles\VMware\CIS\cis_upgrade_runner\payload\component-scripts\vcdb\__init__.py", line 1120, in doWindowsCollectReq
    if isEmbeddedWindows():
    File "Z:\PFiles\VMware\CIS\cis_upgrade_runner\payload\component-scripts\vcdb\__init__.py", line 685, in isEmbeddedWindows
    ver = read_db_value(cmd)
    File "Z:\PFiles\VMware\CIS\cis_upgrade_runner\payload\component-scripts\vcdb\__init__.py", line 197, in read_db_value
    localStderr=tempFileNameErr)
    File "Z:\PFiles\VMware\CIS\cis_upgrade_runner\libs\sdk\component_assistant.py", line 272, in execCommand
    raise _convertToComponentAssistantError(e)
    ComponentAssistantError
 


Environment

VMware vCenter Server 5.5.x

Cause

This issue occurs when the VMware vCenter Server database was previously migrated from the default embedded Microsoft SQL Server Express instance to another instance, but the Microsoft Windows registry entries on the VMware vCenter Server were not updated.

Resolution

To resolve this issue, update the VMware vCenter Server database registry entries to reflect the correct Microsoft SQL Server instance in which the VMware vCenter Server database resides.
 
To update the VMware vCenter Server database registry entries:

Note: This procedure modifies the Windows registry. Before making any registry modifications, ensure that you have a current and valid backup of the registry and the virtual machine. For more information on backing up and restoring the registry, see the Microsoft Knowledge Base article How to back up and restore the registry in Windows.
  1. Log in the the VMware vCenter Server machine with an administrative user.
  2. Click Start > Run, type regedit and click OK.
  3. Navigate to HKEY_LOCAL_MACHINE > SOFTWARE > VMware, Inc > VMware VirtualCenter.
  4. Modify the key DbInstanceName and remove the current Value data field if you are using the default instance or update the data with the instance name if you are using a named instance.

    Note: It is important that you do not delete this key.
     
  5. Modify the key DbServerType and change the Value data field from Bundled to Custom.

    Note: It is important that you do not delete this key.
     
  6. Navigate to HKEY_LOCAL_MACHINE > SOFTWARE > VMware, Inc > VMware VirtualCenter > DB.
  7. Modify the key 1 and verify that it matches the ODBC System DSN name.

    Note: It is important that you do not delete this key.
Note: The preceding link was correct as of May 25, 2015. If you find the link is broken, provide feedback and a VMware employee will update the link.
 


Additional Information

For more information, see Migrating the vCenter Server database from SQL Express to full SQL Server (1028601).Migrating the vCenter Server database from SQL Express to full SQL Server
Microsoft SQL Server データベースを使用している VMware vCenter Server をバージョン 5.x からバージョン 6.0 にアップグレードすると失敗し、次のエラーが表示される:Error:VMware vCenter Server データベースのアップグレード前のチェック中、内部エラーが発生しました
使用 Microsoft SQL Server 数据库将 VMware vCenter Server 从 5.x 升级到 6.0 失败并出现错误:错误:在 VMware vCenter Server 数据库升级前检查期间发生内部错误