Quick Primer: DFS-R
Searching for “DFS-R last write restore from backup” on google so that I can cite some official documentation while explaining, I came across an old post of mine on the Microsoft TechNet Forums that appears to be useful.
Here are some things I’ve found out over my war with DFS-R (pleasant as it truly is):
1) Read these bullet points , discusses how changes are reflected.
2) Learn about debugging a bit. Pretty easy stuff actually . I use Kiwi Log Viewer (free, tailing), and Mandiant Highlighter(free, not tailing, but will help you easily locate a filename in a ginourmous log file, for instance).
3) The last writer always wins. Sort of…
4) Speaking of backups/restores, I suggest backing up the DFS files and folders by utilizing shared folders (whether they are administrative shares, or user accessible shares) instead of using a DFS add-on in your backup software. When restoring, redirect the restoration to a location other than the DFS-R replicated folders (note that I use backup exec, not a microsoft backup solution).
Last writer usually wins, meaning that if you drop these restored files into the replicated folder, DFS-R will probably think to itself, “these are old files, I will do my job and replace them with the new files on this other member.”
Delete/move the files that you are restoring on the other member servers to an alternate location. This way the files you have restored and copied into the DFS folder will replicate (as the technically newer files no longer exist in the same location).
Also, most DFS addons in backup software do not let you redirect the files.
5) Prioritize your replicated folders by placing them into groups and utilizing bandwidth “scheduling” (aka allotting bandwidth to different “groups of replicated folders” aka replication groups).
6) If you need to “stop dfs replication,” instead of: stopping the service, disconnecting a member, disabling a member in a replicated folder, simply lower the “schedule” aka bandwidth allotment to 0Mbps; make your changes (see point #4) and readjust the bandwidth schedule.
The DFS Replication service, does more things than DFS replication. DFS-R monitors the file system via the USN Journal (which monitors the file system for certain functions… I think), and then starts it’s wild comparison and reconciliation of checksums stored in it’s database .
Basically, lowering the bandwidth allotment will allow all these other functions of DFS-R to continue, without allowing data/changes to replicate to other members. DFS-R config is (mostly) stored in Active Directory, so use AD sites & services to replicate the AD DB changes (over FRS most likely) to DCs that are on site with the DFS Member Server, and use replmon.msc or the DFS-R GUI (dfsmgmt.msc) to make sure the changes have been reflected on this DC on the site of the DFS Member Server.
7) Understand the four statuses of a replicated folder: “uninitialized,” “waiting for initial replication ,” “normal,” and [indeterminate, Auto Recovery, and in error]. I can’t locate the documentation on the explaination. “Waiting for initial replication” doesn’t really mean “waiting for initial replication…” In case there is “pre-staged” (pre-existing files/folders that are the same on all members), DFS-R will still use last writer wins magic to compare to the designated primary member (see next bullet point). “…initial replication” is sort of a misnomer for the status.
8) Your designated primary server is the “master server…” for instance, when running DFS-R Replication group diagnostic report (through the dfsmgmt.msc GUI), the report uses/you should use the “primary member” as the basis for “backlogged receiving transactions,” “backlogged sending transactions” (these phrases mean what they say). [edit: this is sort of wrong. the master server is used during initial replication as the reference point.]
9) I just found this here FAQ .
And post here if you have questions. David Shen from Microsoft is a DFS master and has helped me with various errors. And the power of Ned Pyle can even be summoned.
Last writer wins,