Can an image based backup potentially corrupt data?

Posted by ServerAdminGuy45 on Server Fault See other posts from Server Fault or by ServerAdminGuy45
Published on 2013-10-24T02:41:36Z Indexed on 2013/10/24 3:57 UTC
Read the original article Hit count: 494

Filed under:
|
|
|

I'm considering doing image based backups (Acronis) on production Windows systems during non-peak hours. I'm just wondering if they can potentially lead to application data corruption. Lets say that I have a database that is getting hit pretty hard. Could I potentially have the beginning blocks of the database be commit ed to the image, data inserted into the db (which changes the beginning blocks of the DB on the server but not the image), then the blocks of data committed to the image (leading to an inconsistent state).

Here's an example of what I'm trying to illustrate. Imagine a simple data structure which has a number in the front which represents the number of "a"s in a file. The number and data are delimited by a "-". For example:

 4-ajjjjjjjajuuuuuuuaoffffa

If an "a" is changed, the datastructure resets the number in the begining of the file such as:

 3-ajjjjjjjajuuuuuuuboffffa

I assume acronis writes block by block being a straight up image so here is what i'm invisioning happening with my database

 t0: 4-ajjjjjjjajuuuuuuuaoffffa
     ^pointer is here
 t1: 4-ajjjjjjjajuuuuuuuaoffffa
               ^pointer is here (all data before this is comitted to the image)
 t2: 4-ajjjjjjjajuuuuuuuboffffa
                 ^pointer is here (all data before this is comitted to the image)
     Also notice how one of the "a"s change to a b.  There are only 3 "a"s now
 t3: 4-ajjjjjjjajuuuuuuuboffffa
                               ^pointer is here (all data before this is comitted to the image)

The final image now reads "4-ajjjjjjjajuuuuuuuboffffa", while the true data is "3-ajjjjjjjajuuuuuuuboffffa" leading to a corrupt "database".

Basically changes further down the blockchain could be reflected in the image, while important header and synchronization could already be committed. The out of date header information doesn't accurately reflect the structure of the blocks to come.

© Server Fault or respective owner

Related posts about Windows

Related posts about backup