How to fix Error 5098 on Windows Server 2025 / Windows 11

Troubleshooting Guide: Error 5098 – Container Cannot Be Dropped Due to Pending Log Backup

Why This Error Happens

This error occurs when you attempt to remove a filegroup container (file) from a database that is operating in FULL or BULK-LOGGED recovery model while unlogged or minimally-logged changes are still pending in the transaction log. SQL Server 2025 blocks the ALTER DATABASE ... REMOVE FILE operation because dropping the container before a log backup would create a gap in the log chain, making point-in-time recovery impossible. Essentially, the engine is protecting data durability by refusing structural changes until the log records referencing that file have been safely backed up and truncated.

Step-by-Step Resolution Guide

Step 1: Identify the Database Recovery Model

  • Open SQL Server Management Studio (SSMS) or a query window connected to your Windows Server 2025 instance.
  • Run the following to confirm the recovery model:
  SELECT name, recovery_model_desc FROM sys.databases WHERE name = 'YourDatabase';
  • If the result is FULL or BULK_LOGGED, proceed to Step 2.

Step 2: Take a Transaction Log Backup

  • Execute a log backup to clear the pending log records tied to the container:
  BACKUP LOG [YourDatabase] 
  TO DISK = 'C:\SQLBackups\YourDatabase_Log.trn' 
  WITH INIT;
  • Ensure the backup destination folder (e.g., C:\SQLBackups\) exists and SQL Server’s service account has write permissions.
  • If this is the first log backup ever taken, you may first need a full database backup:
  BACKUP DATABASE [YourDatabase] 
  TO DISK = 'C:\SQLBackups\YourDatabase_Full.bak';

Step 3: Retry the ALTER DATABASE Operation

  • Once the log backup completes successfully, re-run the original command to remove the file:
  ALTER DATABASE [YourDatabase] 
  REMOVE FILE [YourLogicalFileName];
  • Confirm there are no active transactions or open sessions using the file by checking:
  SELECT * FROM sys.dm_tran_active_transactions;

Step 4: Configure Scheduled Log Backups (Preventative)

  • To avoid recurrence, set up a SQL Server Agent Job under SQL Server Agent > Jobs in SSMS to automate log backups every 15-30 minutes.
  • Alternatively, configure an Ola Hallengren maintenance script or Windows Task Scheduler job pointing to a .bat file that triggers the backup T-SQL script.

Alternative or Verification Steps

  • Verify the fix: Re-run DBCC SQLPERF(LOGSPACE) to confirm the log file for YourDatabase shows a lower “Log Space Used %” after the backup, indicating truncation was successful before retrying the ALTER DATABASE command.
  • Alternative workaround: If a log backup is not immediately feasible (e.g., lack of storage), temporarily switch the database to SIMPLE recovery model using ALTER DATABASE [YourDatabase] SET RECOVERY SIMPLE;, drop the file, then switch back to FULL and take a fresh full backup to restart the log chain.