Ser*_*y45 1 windows backup image acronis
我正在考虑在非高峰时段在生产 Windows 系统上进行基于映像的备份 (Acronis)。我只是想知道它们是否可能导致应用程序数据损坏。假设我有一个受到严重打击的数据库。我是否可以将数据库的开始块提交到图像,将数据插入到数据库中(这会更改服务器上数据库的开始块,但不会更改图像),然后将数据块提交到图像(导致状态不一致)。
这是我试图说明的一个例子。想象一个简单的数据结构,它的前面有一个数字,代表文件中“a”的数量。数字和数据以“-”分隔。例如:
4-ajjjjjjjajuuuuuuuaoffffa
Run Code Online (Sandbox Code Playgroud)
如果更改了“a”,则数据结构会重置文件开头的数字,例如:
3-ajjjjjjjajuuuuuuuboffffa
Run Code Online (Sandbox Code Playgroud)
我假设 acronis 逐块写入是一个直接的图像,所以这是我预想的数据库发生的情况
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)
Run Code Online (Sandbox Code Playgroud)
最终图像现在显示为“4-ajjjjjjjajuuuuuuuboffffa”,而真实数据为“3-ajjjjjjjajuuuuuuuboffffa”,导致“数据库”损坏。
基本上,区块链下游的更改可以反映在图像中,而重要的标头和同步可能已经提交。过时的标头信息不能准确反映未来区块的结构。
这里发生的事情是针对 acronis 的,几乎所有的备份软件都是使用卷影服务。SQL 和交换服务器等各种应用程序也有自己的 VSS 编写器。
http://blog.macrium.com/2012/11/backup-internals-what-is-vss-how-does-it-work-and-why-do-we-use-it/对这个怎么运作。
基本上 acronis 会告诉 windows 创建快照。从那时起,当程序更改文件时,原始数据将保存到影子存储中。当 acronis 到达文件的那部分时,vss 会从影子存储中给它原始版本,而不是所有常规程序看到的更新版本。
当一切正常时,您最终会得到一份副本,该副本正是您拔掉服务器上的插头并离线进行备份时所获得的副本。VSS 感知应用程序(如 SQL)在创建快照之前有机会保存任何需要保存的内容,以帮助避免不一致的数据。如果其他程序正好在写入文件的过程中,它们可能会在备份中损坏数据,但由于快照发生得很快,这种情况很少见,而且不会比断电和服务器重新启动更糟糕。
| 归档时间: |
|
| 查看次数: |
185 次 |
| 最近记录: |