我有一个连接到数据库的应用程序,可以在多用户模式下使用,因此多台计算机可以连接同一个数据库服务器来查看和修改数据。其中一个客户总是被指定为“主”客户。该主站还从RS232或UDP输入接收文本信息,并每秒将此数据记录到本地计算机上的文本文件中。
我的问题是其他客户端需要从主客户端访问此数据。我只是想知道最好和最有效的方法来解决这个问题。我正在考虑两种选择:
解决方案必须考虑以下因素:
一个。每秒都会写入日志文件。它必须避免任何潜在的文件锁定问题。
湾复制例程应该只复制在比客户端计算机上已有的日期更新的文件。
℃。尽可能高效
d。所有机器都在局域网上
即只需每10分钟左右执行一次同步。
F。数据量仅为~50MB,但是一旦初始(第一次)同步完成,那么要传输的数据量将仅为~1MB。这将在未来增加
哪种方法更好?有哪些优点/缺点?我还看到了我正在考虑使用的Fast File Copy帖子。
答案 0 :(得分:6)
如果您使用数据库,为什么“master”会将数据写入文本文件而不是数据库,如果需要共享这些数据?
答案 1 :(得分:3)
为什么要发明轮子?请改用rsync。 Windows打包:cwrsync。
例如,在主机上安装rsync服务器,并在客户端计算机上安装rsync客户端或只是删除项目目录中的文件。只要需要,客户端计算机上的应用程序应execute rsync.exe请求从服务器同步必要的文件。
要复制打开的文件,您需要设置Windows卷影复制服务。 Here's关于如何设置主机以允许使用Windows卷影复制来复制打开文件的详细说明。
答案 2 :(得分:2)
编写Web服务接口,以便客户端连接到服务器并根据需要提取新数据。或者,您可以将其编写为订阅/推送机制,以便客户端连接到服务器,“订阅”,然后服务器将所有新内容推送到已注册的客户端。客户端在注册时需要完全同步(获取自上次同步后的所有更改),以防更新发生时它们处于脱机状态。
答案 3 :(得分:1)
两种解决方案都可以在局域网上正常运行,选择权在您手中。您可能还想考虑与您选择的技术相关的问题: