6

Scenario: All data, code, configs, etc is lost and backups must be used to recover the account from scratch without aid of Salesforce aside from possibly recovering access to the sys-admin account.

Assumptions: None currently.

Research: First, let me say that based on another question, it is my understanding that full backups & recoveries not possible - and I am attempting in a single question to understand what is possible (and what is not) and be in the position of not having to pay Salesforce $10k to recover anything.

I keep attempting to understand the scope of the topic of doing backups that would enable 100% recovery of a Salesforce account, but have yet to reach the point where I feel that my understanding is complete. For example, exporting the data is possible via the weekly data export or Data Loader and grab the metadata on Salesforce using the Force.com IDE. So, on the topic of the sources for doing a full recovery, it's not 100% clear that all that is required is the "data" and "meta-data" exports.

Also, it appears that there are gotchas when doing recoveries, such as:

  • To preserve old/original audit fields (CreatedBy, CreatedDate, LastModifiedDate) that will no longer be valid, you must request that salesforce.com enable "Create Audit Fields" for you before restoring.
  • All record relationships (IDs) will change on the reload so you need to load each set of records in a very exact sequence, update the CSV files for the next set of records, and then load again. If third party systems require IDs, a custom field would be required to keep the IDs in sync.
  • Salesforce "Coverage Testing Rules" apply when pushing Apex Classes & Triggers; Salesforce requires you to have a certain code coverage % in order to push backups successfully.

Questions:

  • What are "all the buckets of stuff" that maybe backed-up (data, code, configs, etc.) and where is this backed up?
  • Besides the components mentioned here, is there any other "stuff" that is not possible to backup, and if so, what exactly is it?
  • Without making the question overly broad, is there any aspect of the question is missing based on your understanding of its intent?
  • If backups are done, is necessary to do a full recovery to confirm the backups work?
  • Are there any gotchas that are missing, and how are those planned for?

Exclusions: Please note that the intent and scope of this question is unrelated to the use of the Saleforce "Sandbox" feature in anyway; meaning as a way to manage change, deploy, etc.

5
  • Do you think you can do all this for less than $10K? Apr 26, 2014 at 20:42
  • 1
    @user320: Maybe, though hard to say given the person asking is "using salesforce to fly helicopters into walls"... :-) ...that said, yes, I do believe it's possible to do for less than $10k; though also as you might guess, currently do not know how to do this.
    – blunders
    Apr 26, 2014 at 20:47
  • 3
    @user320 10K is the price of getting a CSV dump of your data. Restoring it, and rebuilding any metadata are a whole different matter. Apr 26, 2014 at 21:32
  • You may have to change your thinking before you can make progress on this. Assume that users of SF will not honour your backup regime. They will probably quickly get into making updates at all times as an example, so how do you know when your backups should take place and how will you make them consistent? Although all is possible (given enough money) it might be an interesting exercise to understand why you are making backups and restores, do some risk analysis and find out what the business (rather than IT) requires. We have our decisions on these matters but what are yours.
    – Ant Smith
    Apr 27, 2014 at 16:58
  • @AntSmith: It's unclear what the intended outcome of your comment is. I do backups for two main reasons: disaster recovery and development operations (DevOps). Appears Salesforce has other means of dealing with DevOps within the platform, so that's not part of this question. As for disaster recovery, it's a common sense practice, because sh*t happens; if you don't buy that, I wouldn't want to be you when a fire breaks out, an employee goes rogue, etc. As for the users causing backup consistency issues, I don't care if the backup is 5% off, I care if it is recoverable.
    – blunders
    Apr 27, 2014 at 20:07

1 Answer 1

2

Are there any gotchas that are missing, and how are those planned for?

At least one more gotcha is that it is not allowed to insert a record with an Owner set to inactive SF User. I was receiving an exception: INACTIVE_OWNER_OR_USER, operation performed with inactive user.

I have got an official confirmation from the salesforce support:

Is it a hard-coded restriction of the Salesforce platform that an Opportunity can be created only when Owner is Active?

Yes, that is correct for all the objects ( opportunities , contacts , accounts ).

These can only be created when the owner is Active.

I have few thousand Opportunities stored in an external system that were made by the sales team during the last three years. As you can imagine a lot of them are associated with people that no longer work with the company. I was trying to insert this historical data into salesforce. Insert fails for records that have Owner, which currently is not active.

Support has offered me a "solution": make a user temporarily active, insert his records, make him inactive. Repeat for each inactive user.

You can imagine how difficult it would be to restore historical data for a real life database where you have dozens and hundreds of tables/objects.

Not the answer you're looking for? Browse other questions tagged .