SCVMM 1801: Database error when retaining database from SCVMM 2016

Microsoft's astoundingly complete lack of quality assurance on System Center products strikes again. When upgrading System Center Virtual Machine Manager (SCVMM) to 1801 whilst retaining the database from a previous VMM 2016 install, the install can fail when the default port classifications have been renamed away from their default names.

This manifests itself in the installation failing with the following error:

Unable to connect to the VMM database because of a general database failure.
Ensure that the SQL Server is running and configured correctly, then try the operation again.

Microsoft claim the following in their release notes:

Description: When you change the original name of a default port classification and then try to upgrade to VMM 1801 – upgrade might fail with the following error message in the VMM setup log.

Violation of PRIMARY KEY constraint 'PK_tbl_NetMan_PortClassification'. Cannot insert duplicate key in object 'dbo.tbl_NetMan_PortClassification'.

Workaround: Change the port classification name back to original name, and then trigger the upgrade. After the upgrade, you can change the default name to a different one.

Not entirely helpful. In the event that you have already uninstalled VMM 2016, this can be fixed in the database by hand.

  1. Open SQL Management Studio and connect to your SCVMM database instance;
  2. Open the dbo.tbl_NetMan_PortClassification database;
  3. Modify the "Name" fields back to their exact defaults.

In case you don't remember what the defaults were (as,Microsoft have not documented them anywhere in the release notes), use the following. They are case-sensitive, and yes, that's two spaces in "Live migration  workload":

  • SR-IOV
  • Host management
  • Network load balancing
  • Guest Dynamic IP
  • Live migration  workload
  • Medium bandwidth
  • Host Cluster Workload
  • Low bandwidth
  • High bandwidth
  • iSCSI workload

Come back, VMware. All is forgiven.