This project is read-only.

Data integrity - silly question?

May 14, 2011 at 5:46 PM

This maybe a silly question but I am struggling to understand the concept of VSS in terms of getting a good copy of a file that is in use without it being corrupt.  How do you know the file you are backing up is not in a partially updated state.

Take the following very simple example:
An application is writing to a file and the file is only considered valid by the application if it contains data record A and data record B.

1. The application has locked the file and just written data record A but has not gotten around to writing data record B yet.
2. Now a backup program uses VSS to backup the data file.
3. The application now writes data record B and closes the file.
4. Later the user decides to restore the file (which of course only contains data record A).
5. They run the application to open the file and it announces the file is corrupt because it only contains record A.

Can anyone explain to me how in the above situation I ever get a good copy of the data?

It seems to me you have to know what application files are safe to backup and what are not.  Now if for example I am backing up an Outlook .pst file, how do I know I have a good copy and don't have the situation above when I try to restore.

Or am I just missing a whole big point here?

Jun 3, 2011 at 1:32 PM

There are much documentation about this on MSDN. But basically without Writer support all you get is a crash consistent copy, which may not solve the problem you mention above. But with writer support the application ensures that you always get a consistent copy, for example SQL Server has one of these. Read through the docs at MSDN about VSS, they contain all this information (hopefully ;)