如何避免断电时文件损坏

如何避免断电时文件损坏

我有一台工业电脑(Windows posready 7)运行着一个服务器应用程序,当电脑突然关闭(电源短缺)时,该应用程序会频繁损坏文件,我发现更改我的代码以设置 FILE_WRITE_THROUGH 标志可以解决我的应用程序写入文件时的问题。

问题是,当我在系统中复制粘贴某个文件,等待 5 秒钟,然后关闭(拔掉)机器电源时,文件仍然总是被损坏,通过在十六进制编辑器中打开损坏的文件,我可以看到从文件的一半开始,它的所有字节都设置为 0。

有没有办法防止这种影响?是否可以在系统级别更改 FILE_WRITE_THROUGH 的默认值,以便所有文件操作都开始像我的应用程序一样运行?

答案1

除了安装 UPS(你真的应该),您可以使用一个设置来告诉系统确保所有内容立即写入磁盘,而不是保存在系统缓存中:

禁用写入缓存

当然,禁用磁盘缓存会降低系统性能。但 Windows 会在域控制器上自动执行此操作,这绝对必须确保当 DC 认为目录更新已写入 AD 数据库时,该更新确实已写入 AD 数据库。

答案2

为该系统购买 UPS,并安装/配置随附的软件,以便在系统发生故障时正常关闭系统。这将防止您遇到的问题以及许多其他问题。

相关内容