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. 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 details.
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 ApexSQL tools that can be used to recover deleted records and dropped tables – ApexSQL Log and ApexSQL Recover. Both tools can recover data from delete or drop table operations into a SQL script format, but they achieve it in different ways – ApexSQL Log reads the transaction log files and creates an undo script to reroll the changes, and ApexSQL Recover reads the deleted transactions from the database MDF file. Full details of recovery features and head-to-head comparison are described in the article Recovery features comparison: ApexSQL Log vs. ApexSQL Recover.