SharePoint 2019 to SharePoint Subscription Edition (SE) – Database Attach Upgrade (Step-by-Step)
Database Attach
Upgrade is the most recommended migration approach from Microsoft SharePoint
Server 2019 to Microsoft SharePoint Server Subscription Edition.
High-Level Upgrade Flow
SP2019 Farm
|
|
Backup Content DBs
v
SQL Restore
|
v
New SPSE Farm
|
| Mount-SPContentDatabase
v
Upgrade Sites & Validate
Phase 1 — Pre-Upgrade Assessment
Step 1: Verify Existing SP2019 Farm Health
Run Health Analyzer and check:
- Timer Jobs
- Search Crawl
- Distributed Cache
- Service Applications
- IIS Bindings
- Certificates
- SQL Connectivity
Important Commands
Get-SPFarm
Get-SPServer
Get-SPDatabase
Get-SPSite -Limit All
Step 2: Check Build Version Compatibility
SP2019 must be on supported patch level before migrating.
Check Build
(Get-SPFarm).BuildVersion
Compare with Microsoft compatibility matrix.
Step 3: Run Pre-Upgrade Check
Test-SPContentDatabase
-Name WSS_Content_Intranet `
-WebApplication http://sp2019web `
-Server SQLPROD01
OR
stsadm -o preupgradecheck
Step 4: Inventory Existing Components
Document:
|
Component |
Example |
|
Web Applications |
Intranet |
|
Content DBs |
WSS_Content |
|
Service Apps |
Search, MMS |
|
Solutions (.wsp) |
Custom WSPs |
|
Features |
Farm/Sandbox |
|
Workflows |
2010/2013 |
|
Customizations |
Master Pages |
|
Authentication |
NTLM/Kerberos/SAML |
Step 5: Identify Unsupported Components
Major challenge areas:
|
Area |
Risk |
|
SharePoint 2010 workflows |
Deprecated |
|
InfoPath |
Limited future support |
|
Sandbox solutions |
May fail |
|
Full Trust Solutions |
Compatibility issues |
|
Classic Authentication |
Migration needed |
|
Third-party WSPs |
Rebuild required |
Phase 2 — Build New SharePoint SE Farm
Step 6: Prepare New Infrastructure
Recommended Servers
|
Server |
Purpose |
|
APP01 |
Central Admin + Services |
|
WFE01 |
Web Front End |
|
SQL01 |
Databases |
Step 7: Install Prerequisites
Install:
- Windows Server
- SQL Native Client
- IIS Features
- .NET Framework
- Web Server Roles
Step 8: Install SharePoint SE
Install binaries on all servers.
Then run:
psconfig.exe
OR SharePoint Products Configuration Wizard.
Step 9: Create New SPSE Farm
New-SPConfigurationDatabase
`
-DatabaseName SharePoint_Config `
-DatabaseServer SQLSE01 `
-Passphrase (ConvertTo-SecureString "Password@123" -AsPlainText
-Force) `
-FarmCredentials (Get-Credential)
Step 10: Configure Service Applications
Create:
- Managed Metadata
- Search
- User Profile
- State Service
- Distributed Cache
Phase 3 — Database Migration
Step 11: Set Source Farm Read-Only (Optional but Recommended)
Set-SPSite -Identity http://portal/sites/hr -LockState ReadOnly
Purpose:
- Prevent content changes
- Avoid delta mismatch
Step 12: Backup Content Databases from SP2019 SQL
Using SQL Server:
BACKUP DATABASE
WSS_Content_Intranet
TO DISK='D:\Backup\WSS_Content_Intranet.bak'
Step 13: Restore Databases into New SQL Server
RESTORE DATABASE
WSS_Content_Intranet
FROM DISK='D:\Backup\WSS_Content_Intranet.bak'
Phase 4 — Attach Databases in SPSE
Step 14: Create Web Applications in SPSE
VERY IMPORTANT:
- URL must match old farm if possible
- Authentication method should match
Example:
New-SPWebApplication
`
-Name "Intranet" `
-Port 80 `
-URL http://intranet `
-ApplicationPool "IntranetPool" `
-ApplicationPoolAccount (Get-SPManagedAccount "domain\spfarm")
Step 15: Validate Database Before Mount
Test-SPContentDatabase
`
-Name WSS_Content_Intranet `
-WebApplication http://intranet
Typical Errors
|
Error |
Meaning |
|
Missing Feature |
WSP not installed |
|
Missing Setup File |
Custom solution absent |
|
Missing Web Part |
Third-party issue |
Step 16: Install Missing Solutions
Example:
Add-SPSolution CustomSolution.wsp
Install-SPSolution
`
-Identity CustomSolution.wsp `
-GACDeployment
Step 17: Mount Content Database
Mount-SPContentDatabase
`
-Name WSS_Content_Intranet `
-DatabaseServer SQLSE01 `
-WebApplication http://intranet
This performs:
- Database schema upgrade
- Site collection upgrade
- Feature upgrade
Step 18: Monitor Upgrade Status
Get-SPUpgradeSessionInfo
Logs location:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\LOGS
Phase 5 — Post Upgrade Validation
Step 19: Validate Sites
Check:
- Site accessibility
- Pages
- Libraries
- Permissions
- Search
- Navigation
- Branding
- Workflows
Step 20: Rebuild Search Index
Recommended after migration.
Get-SPEnterpriseSearchServiceApplication
Reset crawl if needed.
Step 21: Verify Services
Validate:
|
Service |
Validation |
|
Search |
Crawl success |
|
MMS |
Terms visible |
|
UPA |
Profile sync |
|
Cache |
No errors |
|
SMTP |
Alerts working |
Step 22: Upgrade Site Collections (If Required)
Upgrade-SPSite http://intranet
Step 23: Run Health Checks
Get-SPHealthAnalysisRule
Central Admin → Monitoring → Review Problems & Solutions
Real-Time Production Upgrade Scenario
Example
Old Environment
|
Component |
Value |
|
SharePoint Version |
SP2019 |
|
Databases |
12 Content DBs |
|
Size |
4 TB |
|
Users |
18,000 |
|
Authentication |
Kerberos |
Migration Approach
- Build parallel SPSE farm
- Install all custom WSPs
- Freeze source farm
- Backup & restore DBs
- Attach DBs one-by-one
- Validate business applications
- DNS cutover
Common Real-Time Challenges
1. Missing Features
Error
Database contains references to missing features
Fix
Deploy missing WSPs.
2. Large Content Databases
Issue
Mount takes several hours.
Fix
- Split DBs
- Use high IOPS storage
- Pre-grow SQL files
3. Orphan Objects
Detection
Get-SPContentDatabase | % {$_.Repair($true)}
4. Authentication Failures
Common Cause
Kerberos SPNs missing.
Fix
Re-register SPNs.
5. Search Not Working
Cause
Old index not migrated.
Fix
Full crawl required.
Best Practices
Recommended
✅ Build fresh SPSE farm
✅ Patch all servers equally
✅ Use MinRole properly
✅ Test in lower environments first
✅ Perform trial migrations
✅ Keep rollback plan ready
✅ Use SQL backups instead of detach method
✅ Document every DB mapping
Important Commands Summary
|
Task |
Command |
|
Validate DB |
Test-SPContentDatabase |
|
Mount DB |
Mount-SPContentDatabase |
|
Upgrade Site |
Upgrade-SPSite |
|
Check Upgrade |
Get-SPUpgradeSessionInfo |
|
Add Solution |
Add-SPSolution |
|
Install Solution |
Install-SPSolution |
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.