我们有一些非常古老的基于文件的数据库(多用户,但不是运行在 VMWare ESXi 上的某些虚拟机上的基于服务器的程序。
设置
虚拟机监控程序
ESXi 正在运行 ESXi 版本 5.1.0
虚拟机
装有 Visual Fox Pro 的虚拟机运行的是 Windows Server 2003 标准版 5.2.3790 Service Pack 2 Build 3790 32 位。
带有 MS Access 的 VM 正在运行 Windows Server 2003 Enterprise Edition 5.2.3790 Service Pack 2 Build 3790 32 位。
两个虚拟机都安装了 VMware Tools 9.0.0、build-782409...
基于文件的非停顿基于文件的数据库
基于文件的数据库是 Visual Fox Pro 9.0757(.dbf
和.cdx
文件的自由表目录)和 MS Access 2003 数据库后端.mdb
。
备份方法
Esxi 使用 Veeam 8 备份。
Veeam Backup and Replication 的版本为 8.0.0.917,安装了 Patch 1,并使用 iSCSI 备份到 SAN 上的 NAS(如果重要的话)。
它是一种反向增量备份,会在备份期间对虚拟机进行快照。
最初,此反向增量备份方法进行完整备份并将其存储在文件中.vbk
,并且每次额外备份时,它都会将更改存储在文件中.vrb
。
已对备份应用以下设置:
静默数据库和 VSS
Microsoft 卷影复制服务 (VSS) 向可能正在服务器上运行的应用程序(例如 SQL Server)触发事件(通知应用程序),以便在备份之前完成可能正在运行的任何待处理的 SQL 事务,并在备份存储数据库的文件之前停止所有传入的操作,这被称为动词,静止。这就是使用服务器进程来存放数据库而不是仅仅使用文件和连接到它们的程序的原因,可以快速完成文件的备份,而无需锁定所有人。
备份基于文件的数据库
那么,如果您备份了数据库,而它却无法完成现有事务并拒绝新事务,会发生什么情况呢?如果在制作备份副本时未强制用户/进程关闭数据库文件并阻止其访问它们,则备份副本将无法使用。它甚至不会告诉您发生了这种情况……您注定会在需要恢复备份时发现备份不起作用。
答案1
为了避免这样的噩梦,你应该使用冻结前/解冻后脚本设置备份此虚拟机的作业。如果需要,请检查Veeam 论坛中的相关主题向他人询问经验和脚本示例。
答案2
如果没有应用程序级静止功能,您的备份将会崩溃一致。恢复的虚拟机看起来就像突然断电了一样……
为了达到您的目的,了解您的应用程序如何处理突然断电或意外硬重置非常重要。如果它可以正常恢复,那么 Veeam 备份的运行方式就足够了。如果不能,您可能需要一个围绕用户活动工作的流程。您只需要在 Veeam 快照期间将用户锁定在系统之外即可。