我想在\\SHARE-HOST\不映射驱动器号的情况下访问远程 SMB 网络共享。我可以通过\\SHARE-HOST\Share_folder\在资源管理器中键入在Windows 中手动执行此操作。如果我想以编程方式执行此操作,则必须使用该net use命令。这需要我指定一个字母。
我正在考虑在非高峰时段在生产 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”,导致“数据库”损坏。
基本上,区块链下游的更改可以反映在图像中,而重要的标头和同步可能已经提交。过时的标头信息不能准确反映未来区块的结构。