Step-by-Step – Upgrading to SCOM 2016 from SCOM 2012 R2

So you’ve decided to take the jump and upgrade to System Center Operations Manager 2016? Assuming you are running a SCOM 2012R2 (UR11) environment, this post will be exactly what you need to have a successful SCOM 2012 R2 to SCOM 2016 upgrade. **Although the recommended path is to upgrade from UR9**

In my environment, here is the quick breakdown:

  • SCOM 2012 R2 environment has two Management Servers.
    • Handful of clients (Windows 2012R2) being monitored.
  • Both Management Servers live on a Windows 2012 R2 operating system.
    • Both Management Servers are running with UR 11 (Update Rollup) **Microsoft recommends upgrading the environment at latest version number minus one (latest – 1), so in this case, UR9 (UR10 was never issued for SCOM 2012R2)**.
  • The SQL environment is a SQL Server 2014 SP2 also running on Windows 2012 R2.
    • The Operations and Data Warehouse live on dedicated SQL instances, however reside on the same server.

Pre-Upgrade Tasks

Let’s get started!

First, we need to do some “Pre-Upgrade” Tasks. Follow these in order.

  1. Back up the Operations Manager Databases
  2. Review the Operations Manager Event Logs
  3. Cleanup the Database (ETL Table)
  4. Remove Agents from Pending Management
  5. Disable the Notification Subscriptions
  6. Stop the Services or Disable any Connectors
  7. Verify that the Operational Database Has More Than 50 Percent Free Space
  8. Back up the Operations Manager Databases

To Cleanup the ETL Tables, you will need to run the following script:

  • The following script will determine the number of rows that will (need) be deleted:

DECLARE @SubscriptionWatermark bigint = 0;

SELECT @SubscriptionWatermark = dbo.fn_GetEntityChangeLogGroomingWatermark();

Select COUNT (*)
FROM EntityTransactionLog ETL with(nolock)
WHERE NOT EXISTS (SELECT 1 FROM EntityChangeLog ECL with(nolock) WHERE ECL.EntityTransactionLogId = ETL.EntityTransactionLogId)
AND NOT EXISTS (SELECT 1 FROM RelatedEntityChangeLog RECL with(nolock) WHERE RECL.EntityTransactionLogId = ETL.EntityTransactionLogId)
AND EntityTransactionLogId < @SubscriptionWatermark;


  • Now we can go ahead and clean up the ETL table running the script below:

DECLARE @RowCount int = 1;
DECLARE @BatchSize int = 100000;
DECLARE @SubscriptionWatermark bigint = 0;
DECLARE @LastErr int;

SELECT @SubscriptionWatermark = dbo.fn_GetEntityChangeLogGroomingWatermark();
WHILE(@RowCount > 0)
FROM EntityTransactionLog ETL
WHERE NOT EXISTS (SELECT 1 FROM EntityChangeLog ECL WHERE ECL.EntityTransactionLogId = ETL.EntityTransactionLogId)
AND NOT EXISTS (SELECT 1 FROM RelatedEntityChangeLog RECL WHERE RECL.EntityTransactionLogId = ETL.EntityTransactionLogId)
AND ETL.EntityTransactionLogId < @SubscriptionWatermark;

SELECT @LastErr = @@ERROR, @RowCount = @@ROWCOUNT;



Great! Let this run, which may take a few minutes, or hours depending on your environment..

Now we are ready to get started with the upgrade. (Don’t get to backup your databases (Report Server, Operations, Data Warehouse!!)


Upgrading to SCOM 2016

After you have downloaded the RTM image file, as you may have noticed, it is not an ISO file. So let’s extract the file contents locally…


Before moving on with the install, I stopped the following SCOM services on all of the Management Servers:

  1. Microsoft Monitoring Agent (healthservice)
  2. System Center Data Access Service (OMSDK)
  3. System Center Management Configuration (cshost)

Now we can run the installer (Run As Administrator or, SCOM Data Access/SDK account)






Sweet! Although this was expected, since no new changes were required for Windows Server 2012 R2.


I cannot stress how useful it is to use dedicated service accounts. Here input your Data Access/SDK account.


Once quick review before we begin the Upgrade..


Let this run… For me, the upgrade took around 50 minutes for the first Management Server..


Sweet! All good. Remember to install the license key before the 120 days are up.

Let’s launch the console just to make sure we are in all working order.


Great! Now we will need to repeat the process for the second/other Management servers…

Once complete, let’s upgrade our client agents to SCOM 2016 (v 8.0.10918.0)


At this time we can make use of the SCOM 2016 features, and update our out-dated Management Packs. Remember this feature really only works for Microsoft based Management Packs, ie. SQL, Windows Server, Client OS, etc.



I hope this helped! For additional information, and or upgrading other items such as Gateways, ACS (Audit Collection Services), etc. Please visit Microsoft’s guides HERE.


Lastly, it is highly recommended to upgrade to SCOM 2016 Update Rollup 1 (UR1). For that guide, please visit this LINK.


Happy SCOM’ing 2016!





28 thoughts on “Step-by-Step – Upgrading to SCOM 2016 from SCOM 2012 R2

  1. Hi,

    thank you for sharing this guide.
    Is it possible to upgrade the OS from Server 2012r2 to 2016? I want to make a fresh clean installation of the Server is there any way? I don’t like inplace upgrades.


    1. Hi, do you mean do an upgrade by running the 2016 media on the 2012R2 server? I would not recommend this path — always do a clean install. As per this guide, it was to only illustrate upgrading SCOM 2012R2 to SCOM 2016. You could very well have SCOM 2012R2 on a Windows Server 2016 and run the upgrade in the same manner as well.


      1. Hi,
        no I want to have a clean install of Windows Server 2016. I have currently a Windows Server 2012r2 with scom 2016(upgraded today from 2012r2) installed. To have the OS updated to server 2016, what I need to do? Just reinstall windows server 2016 and give the machine the same name and install scom 2016 and connect to the database? I don’t want to create a new site.


  2. If I understand correctly, you want to raise another Management Server on a 2016 OS? What you need to/can now do (without understanding the full complexity of your environment) install SCOM on the new machine. Install the server role. When installing, you can connect to the current/existing Management Group. Once that server is online, you can then de-comm the 2012R2 server. This is assuming you have no web console installed. You will also need to transfer the eRMS role to the new server. You will also need to update all reporting agents to the new management server. Once you have confirmed there are no dependencies on the 2012R2 server, you can then de-comm the server. Again, this is a very general answer as I am very unaware of your environment. Hope that helps.


  3. HI Ravi,

    no, I have one SCOM Managment Server running SCOM 2016 on Windows Server 2012R2. I want to upgrade Windows Server 2012R2 to Windows Server 2016. How can I do this with a fresh clean installation of the Server?


      1. My preferred way would be to deploy a brand new server instead of upgrading the OS by insert the ws2016 media, an just following the upgrade wizard. I would like to have a new fresh installation, but the machine needs to be the same. What would be the best practice to realize this?

        I have created a snapshot of the current running scom server which has ws 2012r2 installed, and after that I have made a fresh installation of ws2016. I tried to install scom 2016 and in the wizard I selected, “add server to existing management group” when I want to select the right database, Ithe drop down is empty. In the log file I saw the message, that the server is all ready member of the management group. I cant process this way

        So what I need to do?

        Thank you very much


      2. Hi, if you go into any of the management servers, and take a look within the administration pane, and management servers — does your new 2016 server exist there?


  4. Hi Ravi,

    this is my current setup:
    1 SCOM 2016 Server on Windows Server 2012 R2
    1 SQL Database Server

    My Goal:
    1 SCOM 2016 Server on Windows Server 2016
    1 SQL Database Server

    How can I do this?

    Thank you


    1. there are a lot of steps here, i highly recommend reaching out to a scom consultant (please find me on linkedin)…. but in short: create a new server with windows 2016. install SCOM and all the roles necessary. migrate all the agents to the new mgmt server. ensure all management packs, connectors, etc., are working via new server. once satisfied, decommission/gracefully remove old mgmt server.


      1. I need to use the same server with exactly the same computer account name. Otherwise, with your suggestion it would be easy to go through.

        But thank you very much for your time


  5. It should be made clear that most folks (even in a TEST infra) have a true distributed environment whereas SQL is at least 2 instances and reporting & web console sit separate. So, that means that you also have to launch this setup (separately) on those servers after your MS upgrades…just like the step by step UR procedures from Holman. Also worthy to note that you should do VM snapshots with SQL offline and also snapshots of the MS servers after bringing SQL back up.


  6. Hi All,

    I am planning to move all my monitoring from SCOM 2012 To VROPS. any reference documents\plan or inputs  would be very appreciated from someone.


  7. Hi ,

    I have upgraded my environment from 2012 R2 (UR12) to 2016.
    Then applied 2016 UR3.

    Am getting the following error in All my MS and no new agents are turning healthy.

    Log Name: Operations Manager
    Source: OpsMgr Management Configuration
    Date: 12/22/2017 11:44:44 PM
    Event ID: 29181
    Task Category: None
    Level: Error
    Keywords: Classic
    User: N/A
    OpsMgr Management Configuration Service failed to execute ‘AgentAssignment’ engine work item due to the following exception

    Microsoft.EnterpriseManagement.Common.DataItemDoesNotExistException: 3708ed2d-b303-0984-1844-0dc45ac78780
    at Microsoft.EnterpriseManagement.DataAccessLayer.EntityKeyValuePairCache.GetManagedEntityKeyValuePairs(Guid baseManagedEntityId, DatabaseConnection databaseConnection)
    at Microsoft.EnterpriseManagement.DataAccessLayer.EntityKeyValuePairCache.GetKeyValuePairs(Guid baseManagedEntityId, DatabaseConnection databaseConnection)
    at Microsoft.EnterpriseManagement.ManagementConfiguration.CmdbOperations.RelationshipDiscoveriesContainer.AddRelationshipInstance(Guid sourceEntityId, Guid sourceEntityTypeId, Guid targetEntityId, Guid targetEntityTypeId, IDictionary`2 properties)
    at Microsoft.EnterpriseManagement.ManagementConfiguration.CmdbOperations.RelationshipDiscoveriesContainer.AddRelationshipInstance(Guid sourceEntityId, Guid sourceEntityTypeId, Guid targetEntityId, Guid targetEntityTypeId)
    at Microsoft.EnterpriseManagement.ManagementConfiguration.Engine.AgentAssignmentWorkItem.SendDiscoveries(IEnumerable`1 diffActionsList, IRelationshipDiscoveriesContainer toAddDiscoveriesContainer, IRelationshipDiscoveriesContainer toDeleteDiscoveriesContainer)
    at Microsoft.EnterpriseManagement.ManagementConfiguration.Engine.AgentAssignmentWorkItem.ExecuteSharedWorkItem()
    at Microsoft.EnterpriseManagement.ManagementConfiguration.Interop.SharedWorkItem.ExecuteWorkItem()
    at Microsoft.EnterpriseManagement.ManagementConfiguration.Interop.ConfigServiceEngineWorkItem.Execute()

    Checked that
    DB Connections are fine
    No date differences btw Agent and MS
    Configservice.config in All MS servers are fine.

    Will it be due to deleting an agent directly from DB(Not through Console) before the upgrade?
    Any other thoughts?


    1. Hi Dinesh, there could be a few issues here. But I would highly recommend opening a ticket with Microsoft directly. It is always advised to delete the agent(s) from the SCOM console and not from SQL directly. How is the health of the Management Servers? Are any of them healthy?


      1. Hi Ravi ,

        It was due to deleting an agent from DB directly before upgrade.
        Issue got fixed after three days , once the agent completely got removed from DB.


  8. Hi

    I’m just wondering if the monitored servers were still reporting their health and alerts before they were updated. I.E. can you monitor 2012R2 agents with 2016 management servers?



  9. Good day Ravi,
    thanks for this great post,
    we are about to upgrade our SCOM from 2012R2 to 2016, currently i am running SCOM2012R2 UR14, i have two management servers and one dedicated SQL running on SQL Server 2012, my question is
    1-above instructions are for In-Place Upgrade
    2-when you said check “review OM event logs” what exactly are we looking under event logs, is there any specific logs that we need to look and rectify the issue before the upgrade.
    Kindly reply.

    Shaikh Hussain.


      1. sorry , i forget to ask you one more question ,
        does SCOM 2016 upgrade require to upgrade my sql server as well because currently i am running SQL Server 2012.


      2. Of the top of my head, I believe the minimum version supported for SCOM 2016 is SQL 2012 SP2, but I could be wrong and it could be only 2014 and newer. I was unable to find any documentation from Microsoft, as all the URLs return a 404 error. I will reach out to the MS team and find out.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.