While there are a variety of methods for backing up your Salesforce.com data, recovering from a salesforce.com data loss is almost never as simple or straight forward as most people think for a number of reasons:
1. You don’t always know what needs to be restored:
Since Salesforce.com is a relational database, deleting a record that is a ‘parent’ in a parent-child relationship will automatically delete the children and leave other related records as ‘orphans’ in the database (see cascade delete). So even if you think you know what needs to be restored there may be other child records that were also deleted that you hadn’t even considered. Finding all of the lost data can be a real challenge. And even with most of the 3rd party Salesforce.com backup solutions available today you will find yourself digging through .csv files for days just to figure out what went wrong.
2. Salesforce.com doesn’t let you push record ID’s through the API
All relationships in Salesforce.com are pointers that link one record to another record using the 15/18 character Salesforce.com IDs. Another problem with restoring data to Salesforce.com is that there is no way to ‘set’ a predefined ID to a record in Salesforce.com; they always automatically generated. When restoring a deleted record, you are essentially creating a new record which accordingly will have a new record ID. That means that any of the relationships that it had will now be lost because all of the related records were linked to the original record ID which will not carry over to the new record ID of the recovered record. Restoring those salesforce.com relationships is a major challenge. This hack can help in recovery.
3. Overwriting good changes
Because salesforce.com is a live database that in most cases is being update frequently by the users, the data must be restored in such a way that does not overwrite all of the good updates that have taken place since the data loss or corruption was identified. For example if you have 100,000 Accounts, and 10,000 of them get delete/corrupted by a defective integration or mass update gone-wrong, you would not want to recover all 100,000 Accounts. You would only want to recover the 10,000 that were deleted/corrupted because the other 90,000 are fine, and in fact may have been updated by the users since the corruption was identified. Recovering all 100,000 accounts may even cause more harm than good. So again, you need a way to recover only the records, or fields that had changes to minimize the impact on the users’ productivity.
All 3 of these challenges are not immediately obvious, and people don’t always consider them when researching salesforce.com backup & restore solutions. While there are manual approaches to addressing all three of these challenges, OwnBackup’s enterprise backup and recovery solution for salesforce.com takes that pain out of all three.