This post includes the solutions to fix ConfigMgr Database upgrade error 0x87d20b15. The other related errors include failed to apply update changes 0x87d20b15 and error information persisted in the database.
During the SCCM 2010 hotfix update installation, I encountered the ConfigMgr database upgrade error 0x87d20b15. I probably did not do a prerequisite check before installing the update. However the update failed during the installation step.
Fix ConfigMgr Database Upgrade Error 0x87d20b15
If you are dealing with the ConfigMgr Database upgrade error 0x87d20b15, I will list some solutions that you can try. However reviewing the log files is the first thing that you must do.
In my case the Configuration Manager 2010 Hotfix rollup KB4600089 update installation failed. I could see that error in Updates and Servicing node of ConfigMgr console. Notice that we only see the installation failed message here and there is no error 0x87d20b15 anywhere.
Next we take a look at update pack installation status in the Monitoring section. The update failed at Upgrade ConfigMgr database step. Again we don’t see error 0x87d20b15 but here we see Failed Upgrading ConfigMgr database. Check cmupdate.log for details. Now this is where it gets interesting.
You must review the cmupdate.log. The cmupdate.log file is located under root drive (C:\ drive) of site server. I found two errors in the CMUpdate.log :-
- Failed to apply update changes 0x87d20b15.
- Error information persisted in the database.
I also reviewed the ConfigMgrPrereq.log and noticed few errors and warnings.
[SQL Server Native Client 11.0]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. Failed to connect to the SQL Server, connection type: SMS Master. Configuration Manager Prereq ERROR: Failed to connect to SQL Server database. SQL Index Create Memory option; Warning; SQL Index create memory is not configured as default value of 0 and might hit issue
Let me cover each error and warning and the related solution for it.
A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible
I was bit surprised to see this error because I was running ConfigMgr and SQL on same server. So there could be no chance of seeing an error while establishing a connection to SQL server. I could connect to the SQL Server without any issues and even access ConfigMgr database. So this was not the issue.
Check if instance name is correct and if SQL Server is configured to allow remote connections
This is a weird error but I also ensured that my SQL Server was configured to allow remote connections. You can verify this setting under the SQL Server properties and by clicking the Connections option.
ERROR: Failed to connect to SQL Server database
For the error failed to connect to SQL Server database, I would recommend checking the if the NT AUTHORITY\SYSTEM has the the sysadmin rights on the server. Launch the SQL Server Management studio and connect to the database engine. Expand Security > Logins. Right click NT AUTHORITY\SYSTEM account and click Properties. Select Server Roles and ensure the NT AUTHORITY\SYSTEM has sysadmin rights. If it’s already there you don’t need to worry.
So after verifying all the above settings, I still encountered ConfigMgr Database upgrade error 0x87d20b15. All I was left with was that one warning which I ignored in the beginning.
SQL Index create memory is not configured as default value of 0 and might hit issue
SQL Index create memory is not configured as default value of 0 and might hit issue is a warning that is logged in ConfigMgrPrereq.log. Sometimes we ignore warnings because they usually don’t halt the update installation but this time I was unlucky.
When you install SQL server for ConfigMgr, the only configuration that we do is configure the SQL server memory options. If you don’t configure the recommended minimum server memory and maximum server memory, we get a prerequisite check warning during ConfigMgr setup.
Now there was no issue with memory options, the issue was with other memory options. I had set the index creation memory to 1024 KB and minimum memory per query to 2048 KB which was very much my fault. Due to this I guess I got ConfigMgr Database upgrade error 0x87d20b15. It is highly recommended not to change the default value for index create memory (KB) advanced setting.
The Index Create Memory option is an advanced configuration setting which controls the amount of maximum memory that can be initially allocated to a task during index creation.
So I decided to change the memory options to default. I configured the Index Creation memory to 0 and maximum memory per query to 1024. After making the changes, the settings come into effect immediately. You don’t need to restart any SQL Server services.
After correcting the SQL Index memory options, I fixed ConfigMgr Database upgrade error 0x87d20b15 successfully. All I had to do was right click the ConfigMgr update and click Retry installation. This time the update installed correctly.