So this is a quick post because I hadn’t found any mention of this – but felt it needs to be documented.
I was using a lab I had built from cloning our production environment of Operations Manager 2012 and wanted to go through the upgrade to SP1. Prior to doing this, I had built a new SQL server in the lab enviornment and had moved my OperationsManager, OperationsManagerDW, and Reporting Databases to this new SQL Server, by following the instructions at Technet for the OperationsManager database: http://technet.microsoft.com/en-us/library/hh278848.aspx and the OperationsManagerDW database: http://technet.microsoft.com/en-us/library/hh268492.aspx.
Below is a visual representation of what I did here:
So that all went fine and well. So I started setup for the SP1 install, and after running a few checks the installation fails with:
“Failed to get server upgrade scenario we are running.”
So a quick google of course tells me where the setup logs are (%APPDATA%/Local/SCOM/Logs, where %APPDATA% is the hidden AppData folder for the profile of the account you ran the setup.exe as).
Upon review I found the following entries:
[14:50:52]: Error: :RationalizeComponents blocked because: Failed to get server upgrade scenario we are running.
So this is where it hit that error, and upon further investigation I find the following log (server names have been changed to protect the innocent):
- [14:51:38]: Warn: :Could not start the SQL Service SQLSERVER_A but we will attempt to connect anyway.
- [14:51:59]: Error: :Could not connect to SQL Instance: SQLSERVER_A
- [14:51:59]: Error: :Could not connect to the SQL Instance. Please verify that the current user has appropriate permissions and the SQL instance is running.
- [14:51:59]: Error: :GetDBVersion: failed while querying DB version in OM DB: Threw Exception.Type: System.Data.SqlClient.SqlException, Exception Error Code: 0x80131904, Exception.Message: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server)
- [14:51:59]: Error: :StackTrace: at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
Well, crap. When I found that second batch of errors, I noticed that it was mentioning SQLSERVER_A. But I had successfully moved the DBs to SQLSERVER_B and everything else seemed to be functioning alright in SCOM! What gives!?
So, I decided to begin searching through the registry. I had actually had a key open previously from when I was moving the DBs and I had noticed that under the following Key:
HKLM\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Operations Manager\3.0\Setup
There was a registry entry for the database server under the following two keys:
So, I did what your not supposed to do without knowing what your doing, and I changed the values “SQLSERVER_A” to “SQLSERVER_B“(hey it’s a lab that’s what it’s for right?) Then I re-ran setup, expecting that the pre-requisite checker had seen these new keys, and would use those instead of the previously configured values to find the DB server to connect to…*crossing fingers*…
Voila! I can proceed with the upgrade:
So word to the wise: If you end up moving your SCOM Databases at some point to a different DB Server, you need to ALSO update the Setup keys that remember the OLD DB Server name. By doing this, the update scripts will read the keys and find the correct SQL Server to connect to when performing the upgrade.
Till next time!!