【问题标题】:Risk of data corruption over WAN with shared Access database使用共享 Access 数据库的 WAN 上的数据损坏风险
【发布时间】:2015-10-30 02:44:37
【问题描述】:

我正在开发一个应用程序,它使用 MS Access 数据库(.mdb,不是我的决定)作为后端。最近我遇到有人建议在 WAN 上使用 JET 引擎并不是一个好主意,数据损坏的风险很高。由于我的应用程序应该这样做(连接到 NAS 上的数据库(编辑:不是 NAS,共享共享网络驱动器),我很担心。这真的有那么大的风险吗?如果是这样,是否有任何解决方法或者是 MS Access 数据库只是无法用于那种应用程序?

编辑

前端是 C# (WPF) 中的 .NET windows 桌面应用程序。系统没有很多用户,最多 10 个。大部分时间他们会从 LAN 访问数据库,并且 99% 的数据库写入将在 LAN 内完成(来自公司区域)。但是,在某些情况下,他们会通过网络(从他们的家中)从公司外部连接到 NAS(编辑:不是 NAS,共享共享网络驱动器)。

【问题讨论】:

  • 您需要包含更多信息,例如前端是什么?我在网站上有一个 mdb 已经很多年了。用户很少,编辑也很少。这一切都使用 ASP 经典版运行。
  • 抱歉,请看我的编辑,谢谢。
  • 可以为那些从局域网外部连接的用户使用远程桌面吗?

标签: ms-access jet wan


【解决方案1】:

如果您有 100 Mb/s 光纤,那没问题,但如果您的线路是 xDSL 线路,则通常是绝对不行的。

说服将后端移动到服务器引擎(如 Express 版本免费的 SQL Server)的权力。

【讨论】:

    【解决方案2】:

    您描述的场景不适合将 Access 数据库作为后端。 WAN 用户很可能会发现应用程序运行缓慢,但 NAS 才是真正需要担心损坏的原因,这会影响 LAN 和 WAN 用户。

    许多(大多数?)NAS 设备在 Linux 上运行并使用 Samba 提供 Windows 文件共享服务。 Access 数据库引擎显然使用了 Samba 并不总是完全实现的“真实”Windows 文件共享的一些低级功能(参考:here)。

    事实上,我唯一一次看到共享 Access 后端(以及正确分布的前端)反复出现损坏问题是客户端将其文件共享从较旧的 Windows 服务器移动到较新的 NAS 设备时. Access 应用程序大部分时间都在继续工作,但每隔几个月他们就会发现,在对后端数据库文件进行压缩和修复后,某些表的主键会消失。当他们的文件共享位于 Windows 服务器上时,这种情况从未发生过。

    【讨论】:

    • 对不起,我没有正确指定问题,它不是 NAS 而是普通的网络驱动器,我没有意识到有区别。所以你说应该没问题?
    【解决方案3】:

    将前端与后端分离可以消除大部分损坏风险。当然,使用 Access 总是有可能的,如果您正在寻找将风险降低到接近零的东西,那么您可能需要考虑 SQL Server 或 MySQL。但是,只要采取适当的预防措施,使用 Access 就可以了。

    例如,您可能希望对将要编辑的表进行记录锁定,以防止多个同时写入。定期备份你的数据库也总是好的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 1970-01-01
      • 2011-11-22
      • 1970-01-01
      • 2020-09-26
      • 2015-08-05
      • 1970-01-01
      相关资源
      最近更新 更多