Steps to migrate SCCM/MECM windows server from 2012/2008 to 2016/2019
Updated: May 17, 2021

Let's see how to upgrade SCCM/MECM Infra from windows server 2012/2008 to windows 2016/2019.
Before performing below upgrade let's take Backup action plans
•Site Server Backup
•WSUS Database (SUSDB)
•WSUSContent Folder
•Package source files.
•SCCM Content Library
•SCUP Database (If you are deploying 3rd party updates)
•Custom Reports (if any)
•User State Migration Data
•Backup a customized Configuration.mof file:
•Custom Boot Image
Upgrade Idea 1: (supporting links after each step)
Take a backup of SCCM and SQL before proceeding with the upgrade.
Backup:- https://docs.microsoft.com/en-us/mem/configmgr/core/servers/manage/backup-and-recovery
Recovery:- https://docs.microsoft.com/en-us/mem/configmgr/core/servers/manage/recover-sites
Perform a TestDB upgrade.
Upgrade:- https://docs.microsoft.com/en-us/mem/configmgr/core/servers/manage/test-database-upgrade
Upgrade & Checklist MECM from current branch to latest version
Checklist:- https://docs.microsoft.com/en-us/mem/configmgr/core/servers/manage/checklist-for-installing-update-2010
Wait for few days for the environment to be stable.
Supported SQL versions to current branch versions
SQL supported versions:- https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/configs/support-for-sql-server-versions
https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/configs/supported-configurations
After MECM is upgraded, perform inplace upgrade of site server operating system to server 2016.
In-place upgrade:- https://docs.microsoft.com/en-us/mem/configmgr/core/servers/manage/upgrade-on-premises-infrastructure
Finally do an in-place upgrade of SQL
Disadvantage:-The above plan contains lot of upgrades and if any of these fails we will probably have to start from beginning.
Upgrade Idea 2:
Creating a new Hierarchy with the current branch and migrating the objects from the Current environment to the new environment.
Disadvantage: All the clients then needs to be pointed to new SCCM Hierarchy. Extra overhead in Migrating the objects from original hierarchy to new hierarchy.
Upgrade Idea 3
Create a new server on windows server 2016 or any and install any SQL server
Migrate your SCCM database to any SQL server version
After it is successfully migrated do a site reset to modify the SQL Server configuration.
Take a backup of your existing primary site database, Content Source directory, SCCMContentLib (All the folders for Contentlib).
https://docs.microsoft.com/en-us/mem/configmgr/core/servers/manage/backup-and-recovery
https://docs.microsoft.com/en-us/mem/configmgr/core/servers/manage/recover-sites
Create new machine with Windows server 2016 installed.
It should have same name, drive letters and drive structure as your earlier site server.
Install all the pre-requisites for SCCM.
Run the SCCM setup and recover the site using “Manually recovered DB option” a Configuration Manager Site
https://docs.microsoft.com/en-us/mem/configmgr/core/servers/manage/backup-and-recovery
https://docs.microsoft.com/en-us/mem/configmgr/core/servers/manage/recover-sites
After the SCCM is recovered. Check if everything is working fine.