Microsoft Dynamics 365 Blog

This article will cover how to answer:

  • Which database hotfixes are currently installed on your Microsoft Dynamics CRM Server?
  • Which database hotfixes will be installed or uninstalled with a particular hotfix or Update Rollup (UR)?

Background

Historically, database hotfixes have been considered an internal detail of Microsoft Dynamics CRM hotfixes, so there is currently no straightforward way for administrators to track exactly when particular database hotfixes are installed or uninstalled.  There has been an increased interest in being able to track this information.  This article is intended to describe a workaround for deriving this information until a more formal means is available, most likely in CRM 5.0 timeframe.

All database hotfixes are cumulative.  Each new database hotfix will include all previously released database hotfixes as dependencies.  If a particular dependent database hotfix is already installed on your Server, it will not be reinstalled.  If a particular database hotfix is a dependency of other currently installed hotfixes, uninstall of the dependent hotfix will be a no-op.  It will be uninstalled when all other hotfixes that are dependent on it are also uninstalled.

No database hotfixes are installed when Microsoft Dynamics CRM Server is installed using the “Update installation files (strongly recommended)” option.  No database hotfixes are installed when a new organization database is created.  You must re-install database hotfixes for the new organization.

How to Track Database Hotfixes

You will need to know the KB numbers of the fixes you have already installed.  You can find this information in Add/Remove Programs.  For all of our examples, we will suppose that you have already installed the following:

  • KB949069
  • KB956129
  • KB955482

Example 1

Before installing Update Rollup 4 (KB968176), you want to know which database hotfixes will be installed along with it.

    1. Download the UR 4 package and save it to your computer
    2. Extract the UR 4 package
      1. Click Start –> Command Prompt
      2. In the command prompt window type ‘<dir>\ CRMv4.0-KB968176-i386-Server-ENU.exe /X’, where <dir> is the location where you saved the UR 4 package and hit ENTER.
      3. In the “Choose Directory For Extracted Files” dialog enter the directory where you would like to save the extracted files; if it does not exist already, it will be created. Click OK.
    3. Find database hotfix install info in the extracted package
      1. In Windows Explorer, navigate to the directory where you saved the extracted files
      2. Open the language specific folder such as ‘EN’ for English
      3. Open the file dbhotfix_install.xml.  Do not modify this file, or any of the contents of the extracted package.

        UR 4’s dbhotfix_install.xml looks like this:

<releases>

<release version="04.00.7333.1027" progress_range="20" location="KB948172\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1028" progress_range="20" location="KB948588\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1029" progress_range="20" location="KB951300\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1030" progress_range="20" location="KB950229\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1050" progress_range="20" location="KB952149\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1095" progress_range="20" location="KB956129\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1200" progress_range="20" location="KB953905\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1205" progress_range="20" location="KB954640\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1213" progress_range="20" location="KB957788\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1225" progress_range="20" location="KB949202\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1233" progress_range="20" location="KB957589\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1235" progress_range="20" location="KB955482\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1246" progress_range="20" location="KB956445\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1254" progress_range="20" location="KB960249\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1255" progress_range="20" location="KB949069\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1316" progress_range="20" location="KB959419\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1408" progress_range="20" location="KB961768\Install\DbHotfix_release.xml" />

<release version="04.00.7333.1551" progress_range="20" location="KB968176\Install\DbHotfix_release.xml" />

</releases>

Each entry is a database hotfix – for ease of reading, I have highlighted the ones installed in our example. 

  • The location attribute indicates the KB number
  • The version attribute indicates the build number

Your server’s current build number will be the greatest version of all the hotfixes you have previously installed.  So in our example, your current build number is 04.00.7333.1255.

When you install a new hotfix, any entry with a version greater than your current build number will also be installed.  Any entry with a version less than or equal to your current build number is already installed, and will not be installed again.  So in the case of our example:

  • What is currently installed?
    • Every entry up to and including 04.00.7333.1255 (KB949069).
  • What will be installed when you install UR 4?
    • Every entry greater than 04.00.7333.1255, so in this case the last three entries: KB959419, KB961768 and KB968176.

Example 2

You want to uninstall KB949069.

We will uninstall as far back as the next greatest version number.  So in our example, that means we will go back to 04.00.7333.1235 (KB955482).  So KB949069, KB960249, and KB956445 will be uninstalled.

Example 3

You want to uninstall KB955482.

If you uninstall a database hotfix that has a version less than your current build number, it will not actually be uninstalled until you uninstall all hotfixes with a greater version number.  So when you uninstall KB955482, it will not be uninstalled until you also uninstall KB949069.

Example 4

You want to install or uninstall a KB that is not listed in dbhotfix_install.xml

If you have a KB that is not listed in this file, this is because no new database hotfix was released with it.  You can still derive database hotfix tracking information by using the build number of that hotfix. You can find the build number in the KB article.

Thanks,
Leslie Zavisca

We're always looking for feedback and would like to hear from you. Please head to the Dynamics 365 Community to start a discussion, ask questions, and tell us what you think!