Upgrading vCenter recently from vCenter 5.5 to 60.u1 and the upgrade would consistently fail displaying two error messages.
First it would display “An error occurred while invoking external command: ‘Database instance not defined for mssql provider'”
Then the installation would appear to proceed until it got to installing the VCSServiceManager. Then I would get Error 1603 saying that it couldn’t talk to the database server.
We run our vCenter Server database off a separate MSSQL 2012 Standard server.
I found plenty of resources on VMware’s site for this error:
- Upgrading or installing VMware vCenter Server 6.0 fails with the vminst.log error: Error in accessing registry entry for DSN (2113068)
- Upgrading to vCenter Server 6.0 fails with the error: Installation of component VCSServiceManager failed with error code ‘1603’. Check the logs for more details (2119768)
- Installation of component VCSServiceManager failed for vCenter 6.0
None of these solved the issue for us.
Some how I ended up on this article: Installing or Upgrading to vCenter Server 6.0 fails with the error: Unable to get port number for mssql provider (2125492)
That isn’t the error we were getting but the solution ended up fixing the problem for us.
This issue is caused due to the use of certain ASCII characters in the Microsoft SQL Server user's password used for the DSN on the vCenter Server.
To resolve this issue, ensure your Microsoft SQL Server user password used in the DSN does not contain the following:
? (question mark)
( (left parentheses)
= (equal sign)
! (exclamation mark)
Once the password has been updated removing any of the above characters:
If you are performing a fresh installation, attempt the fresh install again.
If you are performing an upgrade, roll back your vSphere environment to the pre-upgraded state, upgrade the vCenter Server database password stored and re-run the upgrade. For more information on updating the vCenter Server database password, see Changing the vCenter Server database user ID and password (1006482).
We had been using most of those special characters in the password for the vCenter user accessing our MSSQL Server.
I changed the password to something that didn’t have those special characters on the MSSQL server and then did the following to update the password in vCenter:
- Change the MSSQL users password
- Updating the database user password stored in vCenter Server (2000493)
- Updated the password in the ODBC connector
- Restarted the VMware vCenter Server service
The upgrade was successful after that.
Note: My upgrades were getting far enough to completely remove the existing installation of vCenter 5.5 but not far enough to alter the database. I had to revert my vCenter VM to my pre-upgrade Snapshot so vCenter 5.5 was back up and running before I could change the password.