Service Manager: Install Second Management Server with SQL 2014

3 minute read

I’ve been working with Service Manager the past few months and have run into some weird stuff, but this past problem is the worst so far.

If you look at the documentation, SQL 2014 is supported for SCSM 2012 R2 in all scenarios except:

SQL Server 2014 is only supported as a database server for installations of Data Protection Manager (DPM), and Service Manager with Update Rollup 6 applied

I’m running 2012 R2 UR9, so I’m good right?

<iframe width="480" height="263" src="//giphy.com/embed/f9QdKbhBdzyYo" frameborder="0" webkitallowfullscreen="webkitallowfullscreen" mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowfullscreen"></iframe>

Everything was running well until I wanted to install a new management server a week later. You see, the install files for a new management server are 2012 R2 UR0, which don’t work on SQL 2014. If you try to install with the UI, it will error out and say no SQL 2012 installation was found. I started Googling around, and found this blog post about installing with the command line. I see that I can install a secondary management server, but only if I install a dummy SQL 2012 instance first on the SQL 2014 server.

<iframe width="480" height="334" src="//giphy.com/embed/124RPAgUcdv5U4" frameborder="0" webkitallowfullscreen="webkitallowfullscreen" mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowfullscreen"></iframe>

Ok, fine, I’ll do it. I install the dummy SQL instance and run the command line:

setup /Silent /Install:Server /AcceptEula /UseExistingDatabase:SERVERNAME:ServiceManager /AdminRoleGroup:”DOMAIN\AD Group” /ManagementGroupName:MGName /ServiceRunUnderAccount:Domain\WA\Password /WorkflowAccount:Domain\WA\Password /EnableErrorReporting:No /CustomerExperienceImprovementProgram:No /ProductKey:”KEY”

I’m not specifying an instance name because I used the named instance. That threw the installer off. It looked for an instance called SERVERNAME on localhost, it didn’t use the remote SQL server with the default instance. Let’s try that again:

setup /Silent /Install:Server /AcceptEula /UseExistingDatabase:SERVERNAME:ServiceManager /AdminRoleGroup:”DOMAIN\AD Group” /ManagementGroupName:MGName /ServiceRunUnderAccount:Domain\WA\Password /WorkflowAccount:Domain\WA\Password /EnableErrorReporting:No /CustomerExperienceImprovementProgram:No /ProductKey:”KEY”

Now, I get a different error message!

05:20:54:Getting SQL default Data Path
05:20:54:***ERROR*** StartService: System.InvalidOperationException: Service MSSQL$ was not found on computer 'SQLSERVERNAME'. ---> System.ComponentModel.Win32Exception: The specified service does not exist as an installed service
   --- End of inner exception stack trace ---
   at System.ServiceProcess.ServiceController.GenerateNames()
   at System.ServiceProcess.ServiceController.get_ServiceName()
   at System.ServiceProcess.ServiceController.GenerateStatus()
   at System.ServiceProcess.ServiceController.get_Status()
   at Microsoft.SystemCenter.Essentials.SetupFramework.HelperClasses.SetupValidationHelpers.StartService(String ServiceName, String ComputerName, Boolean Restart)
05:20:54:Connecting to Remote SQL server SQLSERVERNAME
05:20:54:***ERROR*** Validate Arguments: A required SQL Server service is not running on SQLSERVERNAME: MSSQL$

So, it’s looking for a service on the remote server called MSSQL$, but it doesn’t exist. I agree, that’s not a valid service and does not exist. I verified that service did not exist, and even asked Jes Borland (a SQL MVP coworker) about it. She said that’s not a SQL service.

<iframe width="480" height="204" src="//giphy.com/embed/qpFg2k3Njuq2Y" frameborder="0" webkitallowfullscreen="webkitallowfullscreen" mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowfullscreen"></iframe>

Well, let’s try specifying the named instance! Alright, new command line!

setup /Silent /Install:Server /AcceptEula /UseExistingDatabase:SERVERNAME\MSSQLSERVER:ServiceManager /AdminRoleGroup:”DOMAIN\AD Group” /ManagementGroupName:MGName /ServiceRunUnderAccount:Domain\WA\Password /WorkflowAccount:Domain\WA\Password /EnableErrorReporting:No /CustomerExperienceImprovementProgram:No /ProductKey:”KEY”

I get the same error as above, but now it says the service MSSQL$MSSQLSERVER service doesn’t exist. Oh boy…

I checked with Steve Buchanan (System Center MVP) and he suggested using a SQL alias. So, I tried that! Here’s a good article on how to do it. I happened to have the SQL Server Configuration Manager tool installed on the system, so I used that. According to the article, there’s a client utility cliconfig.exe that can be used instead of installing the SQL management tools. This only sets it for x64 processes, so be aware of that! You may need the full tools to set x32 and x64. Also, you are setting the SQL alias on the secondary management server. This should not be set on the SQL server! Here’s how I set the alias:

image

This is saying, if something looks for the SQL instance SERVERNAME on localhost, redirect them to the default instance on SERVERNAME. Now that this is set on my secondary management server, I can try the first command line again:

setup /Silent /Install:Server /AcceptEula /UseExistingDatabase:SERVERNAME:ServiceManager /AdminRoleGroup:”DOMAIN\AD Group” /ManagementGroupName:MGName /ServiceRunUnderAccount:Domain\WA\Password /WorkflowAccount:Domain\WA\Password /EnableErrorReporting:No /CustomerExperienceImprovementProgram:No /ProductKey:”KEY”

Eight hours and two name-drops later, it successfully installed!

<iframe width="480" height="256" src="//giphy.com/embed/3o6gE6muVWPM2OyOsw" frameborder="0" webkitallowfullscreen="webkitallowfullscreen" mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowfullscreen"></iframe>

Leave a Comment