In our datawarehouse environment we have added the fields ExtractDate, LatestEntryIndicator, EntryStartDate, and EntryEndDate to all dimension and fact tables. Using these fields we are able to rollback the data to a specific point in time, removing any suspect data that may have been loaded into the warehouse. We carry out daily differential and monthly full backups of the datawarehouse databases.
The backups are essentially to cater for a server related failure whereas the rollback process is in order to cater for a recovery from suspect data.
This strategy seems like it would be able to recover the database to a reliable state in the event of either type of "catastrophe".