我应该如何备份多个正在使用的 MS Access 数据库?

epa*_*alm 1 backup synchronization database-replication microsoft-access

免责声明:我是一名软件工程师,而不是 IT 专业人士,如果我的一些建议很愚蠢或荒谬,请见谅。

将始终保持运行状态的 Windows 应用程序连接到多个 MS Access 数据库并不断与之交互。应用程序可以随时读取或写入这些数据库中的任何一个。一些数据库很小,并且保持大致相同的大小。一些数据库(相对)很大(几十万行),并且不断地被追加。我们希望在不关闭应用程序的情况下每 X 分钟备份一次这组数据库。备份将位于本地主机(第二个硬盘驱动器)或 (100mbit) 本地网络上。

该应用程序将在 Windows XP 或 Windows 7 上运行。

我确实意识到真正的解决方案是“停止使用 MS Access”,这目前不是一个选项。

选项 1:复制文件

我们可以使用 windows copy(或 xcopy?)命令或一些(最好是免费的)第 3 方文件复制器来复制文件。这有什么问题吗?

此选项的缺点是每次都完全复制较大的数据库,这可能需要几秒钟的时间。如果在复制 MS Access 数据库的同时写入它,会发生什么情况?(数据损坏?无法复制?)

选项 2:同步

我们可以运行一些 3rd 方进程,使备份 MS Access 数据库与其实时对应数据库保持同步。我查看的许多现有程序都支持“真正的”数据库引擎,如 SQL Server、Postgres 等,但似乎 MS Access 在这里缺乏支持(或者我可能只是没有搜索正确的关键字)。

选项3?

Bar*_*rim 5

任何时候打开文件时,只要将其复制到另一个位置,就会有副本损坏的风险。正如您所提到的,Access 并不是真正意义上的多用户数据库,而且我不知道可以像大多数 SQL 数据库一样安全地将内容转储到另一个文件的实用程序。

使用卷影副本可能会有一些运气。为 Windows 获取真正的备份程序应该允许您这样做,因为它在块级别工作;Windows 的内置备份实用程序可能会为您完成。这将解决文件锁定问题。

如果 Windows 备份解决方案不起作用,您可能必须有一个维护窗口,您只需关闭所有远程访问连接并创建一个简单的副本到另一个位置。

你最好的办法是得到一个备份程序,尽管文件锁定在 NTFS 上,但它支持进行备份。它将为您节省未来的管理难题,并避免使用管道胶带解决方案。

据我所知,没有办法集群或镜像 Access 数据库。它根本不是为了那个,当一个组织达到那个级别时,他们通常使用一个真正的数据库引擎,可以通过转储、集群或镜像支持备份,所以还有其他安装可以进行“实时”备份.