ZFS snapshots – of points in time when the data and metadata of the HFS Plus file system were good (or good enough)
… snapshots … rollback to … after a successful TM backup.
That's excellent advice.
Much faster than repairing the image.
… Time Machine backup. Rarely, they get corrupted … Rolling back to a time before corruption would be a cinch. Then Time Machine would automatically fill in everything new since that snapshot. …
OS X file system events
When I've encountered problems with TimeMachine, I look at the system log on the Mac to find when the last successful backup finished. I then find the snapshot that was taken after the backup, but before the next failed time machine backup and rollback the time machine dataset to that snapshot. …
I've recently discovered that this might cause problems with the deltas going forward; as in time machine thinks it is creating a delta between time D and F, when it should be B to F.
My theory was that fsevents tracks changed directories since the last backup. When a new backup starts those directories are compared to determine what needs to be actually transferred.
If you rollback, fsevents will be tracking changes since a more recent backup than you actually have. Now, I've seen log entries that indicate backupd is supposed to detect this state and perform a full comparison, but if it fails to detect this state the backup will miss some files. One time I noticed that the backup of my iTunes library was missing several apps. It sure looked like I was missing stuff that would have been in one of those missed deltas.
Over to Stack Exchange, to Super User. If we ignore, for a moment, the title of the question (Time Machine “Event store UUIDs don't match for volume” after swapping disk) there's a good answer
http://superuser.com/a/342958/84988 – part of which should help to understand both
com.apple.backupd.SnapshotVolumeLastFSEventID and '
Node requires deep traversal'. Deep traversal is also mentioned at Pondini's
Time Machine - Troubleshooting A6. Common Backup Messages.
@fracai : with an understanding of those things, you may set aside thoughts of
different time-based depths of delta.
I should treat the iTunes library puzzle as entirely separate.
Scripting and/or other enhancements
I usually check the logs on my Mac and rollback to whatever snapshot occurs between TimeMachine backups prior to the corruption.
For a long time now, I've wanted to put together a script that would monitor the system.log on my Mac and create a new snapshot of my TimeMachine dataset whenever a backup is completed. The backupd logs include what the name of the new backup is as well as indicating when the volume has been properly ejected. These are the "safe points" to roll back to whenever a backup is corrupted.
… if I get such a script together along with a solution to the rollback problem I'll start a new thread.
Rollback to a suitable snapshot should cause no problem. A subsequent Time Machine backups to that destination will involve a deep traversal, which may be unexpectedly time consuming and/or confusing to the end user, but that traversal is normal (technically not a problem).
A script will be welcome.
Also/alternatively if I recall correctly, the sparse bundle disk image includes – or sometimes includes – a file that may help to determine whether a ZFS snapshot is timely. When I find the required information (maybe in my AppleSeed archives) it'll probably lead to
a FreeNAS feature request.
Luck
The ideal is a suitably scrubbed snapshot of a point in time immediately (or reasonably soon)
after error-free completion of a backup by a Time Machine client.
Far less ideal: a snapshot taken
during a backup.
If you're lucky, then a ZFS rollback to that point will allow subsequent OS X attachment of the disk image to be followed by a successful replay of the HFS Plus journal.
(Further: an
apparently successful replay may not result in an entirely good HFS Plus file sytem, but that's way beyond the scope of this topic.)