APAR status
Closed as Vendor Solution.
Error description
When restoring a multi-striped VDI full backup on SQL Server 2019 or later, it fails with error MSSQLSERVER_3456. Error 3456, "Could not redo log record", indicates that SQL Server is attempting to apply a log record that expects the latest version of the data page but instead finds an older version. The Windows Event Viewer Application Log shows: Could not redo log record (nnnnnnn:nnnnnn:n), for transaction ID (0:0), on page (n:nnnn), allocation unit xxxxxxx, database 'DB_name' (database ID nn). Page: LSN = (nnnnnn:nnnnnn:nn), allocation unit = nnn, type = 11. Log: OpCode = 7, context 11, PrevPageLSN: (nnnnn:nnnnnn:n). Restore from a backup of the database, or repair the database. The SQL Server error log shows: yyyy-mm-dd hh:mm:ss spid66 Error: 3456, Severity: 16, State: 1. yyyy-mm-dd hh:mm:ss spid66 Could not redo log record (nnnnnnn:nnnnnn:n), for transaction ID (0:0), on page (n:nnnn), allocation unit xxxxxxx, database 'DB_name' (database ID nn). Page: LSN = (nnnnnn:nnnnnn:nn), allocation unit = nnn, type = 11. Log: OpCode = 7, context 11, PrevPageLSN: (nnnnn:nnnnnn:n). Restore from a backup of the database, or repair the database. The Data Protection for Microsoft SQL Server service trace shows: mm/dd/yyyy hh:mm:ss [002024] [14212] : sqlapi.cpp (8004): SQLAPI-CSqlApi::LogoffServer - Handle Passed In >>>>> enter hh:mm:ss mm/dd/yyyyhh:mm:ss [002024] [14212] : sqlapi.cpp (8009): SQLAPI-CSqlApi::LogoffServer - Handle Passed In Disconnecting from SQL Server mm/dd/yyyy hh:mm:ss [002024] [14212] : sqlapi.cpp (8018): SQLAPI-CSqlApi::LogoffServer - Handle Passed In <<<<< exit rc(0):RC_OK hh:mm:ss mm/dd/yyyy hh:mm:ss [002024] [14212] : pcm.cpp (1457): Enter CPcm::cancel() mm/dd/yyyy hh:mm:ss [002024] [14212] : pcm.cpp (1473): Exit CPcm::cancel(), rc = 0 mm/dd/yyyy hh:mm:ss [002024] [14212] : restordb.cpp (3519): Exit CRestoreDb::consumer(), rc = 1914 mm/dd/yyyy hh:mm:ss [002024] [14212] : pcm.cpp (1964): Exit runConsumer(), rc = 1914 Processed 480652 pages for database 'DB_name', file 'DB_name_log' on file 1. (HRESULT:0x80131501) A previous restore operation was interrupted and did not complete processing on file 'DB_name'. Either restore the backup set that was interrupted or restart the restore sequence. Problems were identified while planning for the RESTORE statement. Previous messages provide details. RESTORE DATABASE is terminating abnormally. Changed database context to 'master'. (HRESULT:0x80131501) IBM Storage Protect Versions Affected: All supported versions of IBM Storage Protect for Databases: Data Protection for Microsoft SQL Server
Local fix
Disable MSSQL's "Delayed log pin" feature by applying the following: 1. Enable MSSQL's trace flags 3471 and 3475 as a startup parameter. Note: Trace flag 3471 disables the feature delayed log pinning for a full backup. Trace flag 3475 disables the feature delayed log pinning for a differential backup. 2. Restart SQL Server. This local fix suggested by Microsoft should allow the multi-stripes restores to be successful. Note: "Disable log pinning" is a performance improvement feature introduced in Microsoft SQL Server. For more details on this issue and Microsoft's solution, please refer to: https://l earn.microsoft.com/en-us/troubleshoot/sql/database-engine/backu p-restore/backup-multistriped-vdi-issue
Problem summary
Problem conclusion
Temporary fix
Comments
Customer is unable to restore database backups which backed up using multi-stripes while delayed log pinning was enabled. The problem is not known to affect versions of prior to MicroSoft SQL Server version 2019. There's no direct resolution documented in MSDN page for this scenario, the only preventive measure is to disable the delayed log pinning feature before taking backups using trace flags https://learn.microsoft.com/en-us/troubleshoot/sql/database-engi ne/backup-restore/backup-multistriped-vdi-issue CAUSE: ---------------------------------------------------------------- ------- Customer is unable to restore a SQL Server 2019 databases backup that was created using multi-backup stripes. The restore operation fails with message MSSQLServer_3456 or hangs indefinitely. Problems were identified while planning for the RESTORE statement. Previous messages provide details. RESTORE DATABASE is terminating abnormally. Error message: The window event viewer application log will show an Error 3456 as follows: Could not redo log record (7507:3040076:3), for transaction ID (1:-1436091579), on page (6:9697736), allocation unit 72057596474818560, database 'my_database' (database ID 5). Page: LSN = (7475:35169076:17), allocation unit = 72057596474818560, type = 1. Log: OpCode = 2, context 1, PrevPageLSN: (7507:3040017:2). Restore from a backup of the database, or repair the database. WORKAROUND SUGGESTED BY MICROSOFT: ---------------------------------------------------------------- ------- Solution1: ------------- - Before taking the backup, enabled the following trace flags to temporarily disable delayed log pinning using below command., - DBCC TRACEON(3471,3472,3475,-1) - This command can be used to mitigate the issue if you can't restart your SQL Server instance immediately. Solution 2: -------------- - Depending on your configuration, you need to enable one or more trace flags as startup parameters for your SQL Server instance: - If you're taking full backups when the instance is acting as a primary replica or an instance without availability groups, enable trace flag 3471 to disable the delayed log pinning feature for full backups. - If you're taking differential backups when the instance is acting as a primary replica or an instance without availability groups, enable trace flag 3475 to disable the delayed log pinning feature for differential backups. - If you're taking full backups with copy only when the instance is acting as a secondary replica, enable trace flag 3472 to disable the delayed log pinning feature for differential backups. - Restart SQL Server. - Take your full or differential backups again. UPDATE FROM MICROSOFT SUPPORT: ---------------------------------------------------------------- ------- Microsoft SQL Server version 2019 has reached its end of life (EOL) as of February 29th, 2025. Therefore, no further fixes will be provided for MS SQL Server version 2019. Recommendation is to upgrade to SQL Server version 2022, which will receive ongoing updates and fixes.
APAR Information
APAR number
IT46637
Reported component name
TDP FOR SQL WIN
Reported component ID
5698DPSAP
Reported release
81W
Status
CLOSED ISV
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2024-08-01
Closed date
2025-04-28
Last modified date
2025-04-28
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Applicable component levels
[{"Business Unit":{"code":"BU029","label":"Software"},"Product":{"code":"SSTFZR","label":"Tivoli Storage Manager for Databases"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"81W"}]
Document Information
Modified date:
28 April 2025