Troubleshooting Guide: Error 879 – Resilient Buffer Pool Extension Failure
Why This Error Happens
This error occurs because SQL Server’s resilient buffer pool extension (a feature designed to persist buffer pool contents across restarts using persistent memory) requires the target database to be memory-optimized. When the specified database (identified by its database ID %d) does not have the memory-optimized filegroup or configuration enabled, SQL Server cannot map the resilient buffer pool extension to it. This typically happens after a migration, a restore from an older version, or when the feature is enabled on a database that was never configured for In-Memory OLTP.
Step-by-Step Resolution Guide
Step 1: Verify Database Memory-Optimized Status
- Open SQL Server Management Studio (SSMS) and connect to the instance running SQL Server 2025.
- Run the following query to check if the database has a memory-optimized filegroup:
SELECT name, type_desc
FROM sys.filegroups
WHERE type = 'FX';
- If no rows are returned, the database is not memory-optimized and is the root cause of Error 879.
Step 2: Add a Memory-Optimized Filegroup
- If the database lacks a memory-optimized filegroup, add one using:
ALTER DATABASE [YourDatabaseName]
ADD FILEGROUP [MOD_FG] CONTAINS MEMORY_OPTIMIZED_DATA;
ALTER DATABASE [YourDatabaseName]
ADD FILE (NAME='MOD_Data', FILENAME='C:\SQLData\MOD_Data')
TO FILEGROUP [MOD_FG];
- Ensure the file path (e.g.,
C:\SQLData\) exists and the SQL Server service account has write permissions.
Step 3: Reconfigure the Resilient Buffer Pool Extension
- Disable the existing (failed) buffer pool extension configuration:
ALTER SERVER CONFIGURATION
SET BUFFER POOL EXTENSION OFF;
- Re-enable it, explicitly pointing to the now memory-optimized database:
ALTER SERVER CONFIGURATION
SET BUFFER POOL EXTENSION ON
(FILENAME = 'E:\SSDCACHE\BPE.bpe', SIZE = 50 GB);
- Restart the SQL Server service via Services.msc or
net stop MSSQLSERVER && net start MSSQLSERVERon Windows Server 2025.
Step 4: Check Windows Server Persistent Memory Configuration
- Confirm that persistent memory modules (if using Intel Optane or NVDIMM) are correctly recognized in Device Manager under “Persistent Memory Disks.”
- Validate drive letter assignments match the
FILENAMEpath specified in Step 3.
Alternative or Verification Steps
- Verify the fix: Check the SQL Server Error Log (via SSMS > Management > SQL Server Logs) for a confirmation message stating “Buffer Pool Extension is already enabled” or successful startup with no Error 879 entries.
- Alternative solution: If converting the database to memory-optimized is not feasible, disable the resilient buffer pool extension feature entirely for that specific database instance using
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION OFF;and rely on standard buffer pool management instead.