Database Snapshots

  • Comments posted to this topic are about the item Database Snapshots

  • Having no experience made this call a bit of a guess. The page in the BOL for Limitations on Snapshots states that

    If a source database becomes RECOVERY_PENDING, its database snapshots may become inaccessible.

    After the issue on the source database is resolved, however, its snapshots should become available again. This question is about the database becoming suspect and not the snapshot. Is that correct?

    Before answering, an analogy to an ADO disconnected recordset logic kicked in. My answer was wrong because the disconnected recordset still has access to the data.

    How does the snapshot know that the database is offline - is the snapshot communicating with the database?

    Is the... "may become inaccessible" in the documentation referring to the

    The source database must be online, unless the database is a mirror database within a database mirroring session


    Reading through the better analogy might be a system restore on XP.

    May I ask for an analogy here that might put me in the right direction?


  • The way snapshots work is they use both a sparse file and the original data source. If you have a table t1, and an update occurs to one row on the original DB, then the data page in which that one row lives is copied to your sparse file. When you select * from t1, it reads both the copied page from the sparse file (snapshot) and original data set. Therefore any corruption on the original DB affects the sparse file

  • kenk has a good explanation. The snapshot cannot exist, and is tightly tied to the source database. Only pages changed since the snapshot was created are copied to the snapshot. Others are read from the source.

    Snapshots are a shaky structure, IMHO. If anything happens to the source, the snapshot is likely shot. If you want to restore, you need to whack all snapshots.

  • So

    It continues to work as long as you access changed data only that exists in the snapshot

    ... there is no way to access only the changed data. A query to a snapshot will always attempt to connect to both the snapshot and the database simultaneously.

    This is more clear now. There is no "changed records only" dataset available.

    Thanks. Hope you all enjoy the holiday(s).


  • Nice Explanation Kenk...

  • Nice clear question and answer.


Viewing 7 posts - 1 through 6 (of 6 total)

You must be logged in to reply to this topic. Login to reply