FIX: Fail to join the secondary replica if the database has a defunct filegroup in SQL Server 2014, 2016 and 2017

Applies to: SQL Server 2014 DeveloperSQL Server 2014 EnterpriseSQL Server 2014 Enterprise Core

Symptoms


Consider the following scenario:
  • You have a database with a defunct filegroup which you are trying to add to an Always On availability group (AG) in Microsoft SQL Server 2014, 2016 and 2017. 
  • You are able to add the database to the primary replica and restore the full and log backups with NORECOVERY on the secondary replica without issue.
In this scenario, when you try to join the database to the availability group on the secondary replica with ALTER DATABASE <DatabaseName> SET HADR AVAILABILITY GROUP = <AGName> or use automaticseeding to configure secondary replica, you notice that errors 17207 and 5120 are reported for the data file in the defunct filegroup:

## spid##     Starting up database 'DatabaseName'.

## spid##     Error: 17207,Severity: 16, State: 1.

## spid##     FileMgr::StartSecondaryDataFiles: Operating system error 2(The systemcannot find the file specified.) occurred while creating or opening file'FilePath'. Diagnose and correct theoperating system error, and retry the operation.

## spid##     Error: 5120,Severity: 16, State: 5.

## spid##     Unable to openthe physical file "FilePath".Operating system error 2: "2(The system cannot find the filespecified.)".

You will also see the database go into Not Synchronizing/Recovery Pending mode on the secondary replica after the ALTER DATABASEcommand is executed.

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section. 

Resolution


This issue is fixed in the following cumulative updates for SQL Server:

About cumulative updates for SQL Server:

Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:

References


Learn about the terminology that Microsoft uses to describe software updates.