Monthly Archives: July 2016

Schedulers Unexpectedly Offline in Enterprise Edition of SQL 2012

If you run the following check on your schedulers:
select * from sys.dm_os_schedulers
You should see them all Online, either Visible for user processes or hidden online for internal database engine processes. Unless you are using Affinity mask you should not see any as offline if you are using Enterprise Edition – right?
With SQL 2012 the licensing changes from a processor to a core model. This led to a need for two editions of Enterprise edition – one for people with Enterprise agreements to transition their servers, and one for new core based installations.
This led to some confusion as the Enterprise Edition designed for upgrading your current Server+CAL licensing from 2008 R2 to 2012 has a 20 core limit(or 40 with hyperthreading). If you are running the Enterprise Edition of 2012 and if you have more than 20 cores, we recommend you take a peak at sys.dm_os_schedulers to make sure you are getting all of what you are paying for.

So – how to fix it?  The process to upgrade from Enterprise(Core Limited) to Enterprise(Core unlimited) is the same as any other Edition upgrade.  You need a copy of the correct install media and run setup.exe.  Then just choose Edition Upgrade from the Maintenance screen:

SQL2012EnterpriseUpgrade

When you get to the license screen you want to see this:

SQL2012 Upgrade Correct Version

Be warned you will get an error that tells you this upgrade will break Always On Availability Groups if you are using this feature:

StupidSQL2012UpgradeError

Do not disable your availability groups.  You don’t need to.  Mutter a curse about Microsoft not fixing known bugs, click okay and then forget about it.  Your Availability Groups will continue to function perfectly fine.