Secondary Sites and SQL Server Express 2012

Lately, I’ve been helping my customer plan for a ConfigMgr 2012 upgrade from SP1 to R2. After a particularly troubled initial upgrade from RTM to SP1 a couple of years ago, I was emphasising how important it was to give the pre-upgrade checklist its due diligence. 

Most of the items on the list are fairly self-explanatory, however my customer challenged me when it came to checking Secondary sites for supported versions of SQL Server Express. Let’s have a look at the statement from the checklist:

With System Center 2012 R2 Configuration Manager, when you plan to upgrade an existing secondary site that uses SQL Server 2012 Express with no service pack, or retry a failed secondary site installation, you must first apply cumulative update 2 to the SQL Server 2012 Express installation on the secondary site server

Seems straightforward enough, yes? What we’re saying here is that with R2, we no longer support SQL Server 2012 Express RTM. This is fairly normal behaviour – as product versions increase, minimum versions for dependant software also increases. Here's the rest of the statement:

This is because, when System Center 2012 R2 Configuration Manager installs SQL Server Express as part of a new secondary site installation, it installs SQL Server 2012 Express with no service pack and is unable to install the required cumulative update 2 as part of the installation.

What this is saying is that even though the R2 upgrade setup will prompt you to download new prerequisites the same way a normal site installation would (these can be pre-downloaded using setupdl.exe), the SQL Server 2012 Express file that is downloaded is SQL Server 2012 Express RTM. Now let’s have a look at the most useful webpage as a ConfigMgr administrator – Supported Configurations for ConfigMgr. Specifically, we’ll pay attention to the supported SQL versions on various sites:

 

SQL Server Express 2012

No Service Pack

Minimum of cumulative update 2

• System Center 2012 Configuration Manager with SP1

 

• System Center 2012 R2 Configuration Manager

Secondary site

SP1

No minimum cumulative update

• System Center 2012 Configuration Manager with SP1

 

• System Center 2012 R2 Configuration Manager

Secondary site

SP2

No minimum cumulative update

• System Center 2012 Configuration Manager with SP1

 

• System Center 2012 R2 Configuration Manager

Secondary site

 

As you can see, deploying a secondary site with SQL Server Express 2012 RTM with no Cumulative Update, which is what a new secondary site setup in ConfigMgr 2012 R2 would deploy if no SQL infrastructure was available on the server to begin with, actually leaves you in an unsupported state until you apply at least CU2 for RTM, or a service pack for SQL Server 2012 Express. Although this wasn’t relevant to my customer's scenario at this time, I thought that it was worth highlighting for anybody planning on deploying secondary sites directly from R2, or who have done already and are potentially sitting in an unsupported state.

Back to my customer… armed with the above information, my customer proceeded to download and install SQL Server 2012 Express SP2 in order to be up to date. We were targeting a test secondary site within a development environment. I wasn’t due back with this customer for another week, so I left them to perform the upgrade themselves so that when I arrived back onsite, we could continue ticking items off the upgrade checklist. 

After a day, I was emailed by my customer asking if I could assist them with installing the SP2 upgrade to SQL Server 2012 Express. They had ran through the install with no apparent problems, but were still getting errors in prereqchk.exe saying that the SQL version wasn’t the minimum that a ConfigMgr 2012 R2 secondary site expected. I asked my customer to check Add/Remove programs to see what version of SQL Server 2012 Express was there. Here is the screenshot:

Although the version for the Database Engine Services component is blank, the remaining components would indicate that the SP2 upgrade was successful. So why was the ConfigMgr PreReqChk.exe stating that it wasn’t meeting minimum specs? I got my customer to run the following SQL query on the secondary site database:

select @@version

Here is the result:

This confirmed that the Database Engine Services component of SQL Server Express 2012 had not been installed. To further complicate things, when my customer tried to reapply the SP2 install, the setup wizard stated that it was already on SP2 and the update couldn’t be applied. Stalemate…

After some digging, and multiple tests in my own lab environment involving a lot of snapshots and install wizards, I manage to replicate what had happened in my customer’s environment. Upon launching the SP2 upgrade wizard for SQL Server 2012 Express, the administrator had been presented with the following window:

If someone had been tasked with upgrading from RTM to SP2 in this case, they couldn’t be blamed for clicking on the bottom option of the two in that screenshot. In this case, the bottom option had been selected, and at that point, the wizard will progress to run through what looks like a successful upgrade to SP2. Unfortunately, this doesn’t upgrade the most vital part of the SQL Server 2012 Express – the database engine services. It will however update the other components – hence the contradicting Add/Remove Programs information. The selection to “New SQL Server stand-alone installation or add features to an existing installation” should have been selected to apply the SP2 update. 

The other unfortunate outcome here is that it left my customer’s secondary site in a state where SQL Server Express 2012 couldn’t be fully upgraded to SP2 and the secondary site wouldn’t upgrade in ConfigMgr to R2, effectively leaving it in limbo. The site was uninstalled and re-provisioned for the purpose of testing. Using all the information we had gathered over this experience, we updated SQL successfully, then managed to apply the ConfigMgr R2 upgrade successfully also. Running Add/Remove Programs and the SQL query listed previously confirmed that all SQL components had updated.

To summarise, we can take away two learning points from this experience. Firstly, installing a new Secondary site from ConfigMgr 2012 R2 will leave you in an unsupported state until you apply at least CU2. It is recommended you take the opportunity to go to SP2. The only exception to this is if you install SQL Server Express 2012 SP2 before the secondary site installation. 

Secondly, when applying updates to SQL, be wary of the options presented at the beginning. Upgrading an existing installation from RTM to SP1 or SP2 isn’t classed as an upgrade in the wizard – it’s adding featured to an existing installation. 

To play devil’s advocate though, if we had a secondary site originally provisioned by ConfigMgr 2012 RTM, it would likely be on SQL Server 2008 R2 Express. To get this up to SQL Server 2012 Express, the option to “Upgrade from SQL Server 2005, SQL Server 2008…” should be selected. 

If you have any questions about anything related to this post, please leave a comment below. Thanks for reading! 

Ricky Simpson

Premier Field Engineer