This article deals with the SQL Server Error 3456 & suggests possible ways to repair corrupt MDF file in SQL Server database through manual & automated techniques
Microsoft SQL Server has been a very popular relational database management system among users. Time and again some problems arise during the usage of SQL Server Database.
The forthcoming section will deal with one such problem or error that has been the cause of worry for a lot of SQL Server users.
Also Read:- How to View Thunderbird MAB file in Windows
Since the SQL Server is composed of mainly two types of files namely the MDF and the NDF files, any error in these files can lead to the error messages flashing in front of the user. One such error is the SQL Server Error 3456.
Let us first understand this error by the help of a user query
I encountered an I/O failure and decided to shutdown the SQL Server database. I made a cold backup of the files in a different location. On restarting the database, it was shown as been marked as Suspect. When I detached the database and tried to reattach it by restoring it from the backup I got the message “Error 3456 .could not redo record”. Can someone offer any helpful guidance?
The Error Message
Error: 3456, Severity: 21, State: 1.
Could not redo log record (2589:476:5), for transaction ID (0:156185), on page (1:394), database ‘master’ (database ID 1). Page: LSN = (2579:424:5), type = 1. Log: OpCode = 4, context 2, PrevPageLSN: (2579:368:3). Restore from a backup of the database, or repair the database.
Cause of the error
This message is usually shown when the master database or the MDF file contains some amount of corruption. It can also occur if the transaction log gets corrupted. In such a case there are not many options left to us apart from doing as we are told by the error message. The only method to escape this problematic situation is to repair corrupt MDF file in SQL server using the techniques available to us currently.
Expert Tip: In order to solve SQL Server Error 3456 without facing any issues make use of an efficient, automated software known as SQL Repair tool to recover SQL Server database effectively
Approach to solve SQL Server Error 3456 Manually
There are three main ways under the manual approach to get rid of Error 3456 Severity 21 State 1 in SQL Server
- Rebuild DBs from System
- Perform Restore from Backup
- Reinstall SQL Server on system
If you wish to choose the option to restore from backup then first there is a need to rebuild the databases of the system from the setup.exe file and then carry out disaster recovery methods.
The command given below can be made use of to rebuild the system databases. In the commend, the instance name is put as MSSQLServer as it was the default instance.
(Note: Ensure that a backup of the currently present MDF and LDF files is stored at a safe location before the process to rebuild databases gets initiated.)
setup /ACTION=REBUILDDATABASE /QUIET /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=”Domain\LoginName” /SAPWD=P@ssw0rd
In a situation where you do not have a backup of the system databases and only possess the MDF and LDF files of the SQL Server database, while attaching the user database you may face a new problem and get the below-mentioned error
CREATE FILE encountered operating system error 5(Access is denied.) while attempting to open or create the physical file ‘S:\MSSQL2016\MSSQL14.MSSQLSERVER\MSSQL\Data\AX_PROD.mdf’. (Microsoft SQL Server, Error: 5123)
This means that the physical file has become orphaned due to no owner being present.
For solving this issue provide the SQL startup account to become the owner of the file.
Now try to reattach the database files and you will be able to bring the database of the user to an online state.
Problems with the Manual Approach
Though there are manual ways available to SQL Server users to resolve SQL Server Error 3456 , as we can see it involves a lot of brainstorming and hard work to make it happen. The disadvantages of the manual method to recover SQL server database are listed in the below-mentioned section
- It involves a large number of complex commands to be executed in order to eradicate SQL Server error 3456
- The manual technique is completely unsuitable for users with less or no technical experience
- There is a lot of time consumed during the process to remove the error and recover SQL Server database
The SQL Server Database is unquestionably a productive source of useful services to the users but it is not completely immune to errors. The SQL Server error 3456 can be solved through the medium of queries but this method is riddled with shortcomings. Instead, it is recommended to make use of a specialized software to recover SQL server database effectively