【问题标题】:Make sure .bak-file is ready after MS database backup确保 .bak 文件在 MS 数据库备份后准备就绪
【发布时间】:2013-05-13 15:08:28
【问题描述】:

我尝试在服务器上的备份完成后直接将 .bak 文件复制到本地计算机。

我在测试和调试时从来没有遇到过任何问题,但是在部署之后我得到了很多 FileNotFoundExceptions。

【问题讨论】:

    标签: c# sql-server database vb.net database-backups


    【解决方案1】:

    我发现,特别是如果您在另一台机器上进行备份,备份文件需要一些额外的时间才能准备好。

    在开始移动过程之前稍等一下解决了我的问题。

    1. 在服务器上做备份
    2. WaitForFileToExist(字符串); (确保路径是正确的,否则它当然永远不会返回)
    3. 移动文件

      public void WaitForFileToExist(字符串路径) {
          while (File.Exists(path) == false) {
              System.Threading.Sleep(10);
          }
      }

    【讨论】:

    • 如果在较慢的机器上运行相同的操作,则仅等待 3 秒可能会成为问题。您应该找到一种不会让Thread 进入睡眠状态的方法。虽然您的方法(目前)有效,但它实际上并不是正确的方法。
    • 你说得对,我换了等待方式。对于更多不同的情况,这可能会节省更多。
    • 它更好,但我会为这种事情使用互斥锁,使用异步线程,等待线程完成。
    猜你喜欢
    • 2012-10-16
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 2015-07-01
    • 2023-01-26
    • 1970-01-01
    相关资源
    最近更新 更多