【问题标题】:Missing Data across shared computers跨共享计算机缺少数据
【发布时间】:2020-01-20 07:57:19
【问题描述】:

我有一个设置,我在办公室有一台计算机,在我家有另一台计算机,并且项目数据通过 OneDrive 共享。这纯粹是为了我自己的方便,我一次只在一台计算机上工作,当我不在任何一台计算机上使用 Visual Studio 时,它就会关闭它。

我当前的问题涉及一个项目,该项目正在通过 OneDrive 同步,但使用 SQL Server LocalDB 数据库进行开发和测试,但尽管文件在两台计算机之间同步,但插入到一台计算机上的数据不会出现在查询中在第二台计算机上运行。

只有在关闭 Visual Studio 后才会发生同步,因为文件锁定会阻止该进程。我已验证 .mdf 和 .ldf 文件都被复制(文件大小和修改日期正确)。我还通过外部硬盘物理复制了文件以排除 OneDrive 同步步骤,但问题仍然存在。

我还验证了即使在复制文件之后,插入的数据仍然存在于执行 INSERT 的计算机上,但在第二台计算机上执行 SELECT 时不会出现。

我的印象是 LocalDB 只使用 .mdf 和 .ldf 文件,是否有其他地方的缓存文件我也需要同步?

所有代码和其他项目文件都在同步正常,只是数据库遇到了这个问题。

我知道这对大多数人来说可能是一个奇怪的设置,如果我在团队环境中,我永远不会这样做,但我希望能深入了解可能出现的问题。

【问题讨论】:

  • 你只是在同步项目文件夹中的mdf/ldf文件吗?这些文件可能不是在您的第一台计算机上更新的文件。使用的连接字符串是什么?
  • 如果我查看 Visual Studio 中的 SQL Server 对象资源管理器,右键单击数据库,选择属性,然后转到“当前连接参数\数据文件”,文件路径为我正在同步的 .mdf 文件。这是我在两台计算机上检查的第一件事。

标签: visual-studio localdb


【解决方案1】:

抱歉给大家添麻烦了,我好像自己解决了这个问题。

出于纯粹的理智,我尝试在第二台计算机(没有提取插入数据的计算机)上分离然后重新附加 .mdf 文件,并收到有关 LocalDB 实例版本太旧的错误为文件。

原来执行 INSERT 的计算机正在运行 v13 实例并将 .mdf 文件升级到该版本,而另一台计算机正在运行 v11 实例。两台计算机现在都在相同的实例版本上运行,并且现在显示丢失的数据。

【讨论】:

    猜你喜欢
    • 2014-03-11
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    相关资源
    最近更新 更多