This article envelops all of the most important topics and knowledge about ApexSQL Recover and provides brief descriptions and links to core ApexSQL Recover articles that cover them.
ApexSQL Recover is a SQL Server data recovery tool, which recovers deleted and truncated data. Also, it recovers objects and data lost due to drop operations, and recovers BLOBs as files. Additionally, ApexSQL Recover can be used to read transaction log files and backup, allow users to analyze and investigate audited operations in a comprehensive grid, as well as to create rollback and replay scripts for all DML and DDL changes. It can be useful in many different scenarios for disaster recovery. The most common scenarios where ApexSQL Recover is helpful are described in the When to use ApexSQL Recover article.
In order for ApexSQL Recover to perform its full functionality, the database that is being recovered has to be in full recovery mode because a database in simple recovery mode does not create transaction log entries that would contain information about transactions that database needs to be recovered from. Even so, it is still possible to perform a recovery by utilizing ApexSQL Recover’s MDF scraping feature to recover directly from an MDF file, which is described in the article Recovery possibilities when a database is in simple recovery mode.
When data loss occurs, by accident or due to a disaster, it is important take immediate precautions in order to minimize the chance of data being overwritten or lost beyond recovery. The article How to optimize data recovery results in SQL Server using ApexSQL Recover offers advice on the immediate steps that should be taken after the disaster has occurred, that will increase the chance of successful recovery.
When data is lost due to a malicious or accidental DROP TABLE operation, the lost data can be recovered by utilizing the Data recovery from DROP operation feature. A full explanation and description of the Data recovery from DROP operation feature wizard can be found in the Recover lost data due to a DROP TABLE operation – ApexSQL Recover article. Similar to the Data recovery from DELETE operation wizard, the Data recovery from TRUNCATE operation wizard and best practices are described in detail in the Recover lost data due to a TRUNCATE operation – ApexSQL Recover article.
Aside from recovering data that was lost due to a specific operation being performed, ApexSQL Recover can recover multiple tables stored in a SQL database backup, without restoring the backup itself. This feature is particularly useful in case that data was lost some time ago (not recently) when it is required to get the lost data back, without disrupting database operations or losing any new valid data created after the drop has occurred. The article Recover table data from a database backup – ApexSQL Recover describes this feature in detail.
Another powerful recovery mechanism of ApexSQL Recover is the ability to read transaction log files and create undo/redo scripts for all DML and DDML operations performed over audited database. This allows users to rollback or replay specific changes, as well as to get a complete insight into who changed what in their database before deciding to recover from those changes or not.
Due to the unpredictable nature of database damage it is not always possible to recover data. But, if the initial recovery is not successful, it is not always the final outcome. It is still possible to try higher level of recovery chance by adding an MDF file that has not been affected by post-incident activities, or by adding a transaction log file that has not been truncated to the recovery process. This is described in more detail in the article ApexSQL Recover doesn’t recover all lost data.
When performing a recovery, ApexSQL Recover can recover data directly to a database or to a SQL script that can be executed later. In case of the latter, the created SQL script can be so large in some cases that both ApexSQL Recover and SQL Server Management Studio cannot execute it. On this occasion, it is recommended to utilize one of the following solutions: the “osql” command utility that comes with SQL server, the “sqlcmd” command that comes with SQL server, or ApexSQL Script Utility, which are described in detail in the article How to execute large SQL scripts.
There are two mechanisms for recovery of deleted records and dropped tables While both approaches allow users to recover data from delete or drop table operations into a SQL script format, different recovery data sources are used – First approach revolves on reading transaction log files and creating of an undo script to reroll the changes, while the second approach reads the information on the deleted transactions from the database MDF file.