LearnByReading Asked: 2018-09-27 16:51:18 +0800 CST2018-09-27 16:51:18 +0800 CST 2018-09-27 16:51:18 +0800 CST 我需要分离数据库才能附加它吗? 772 我正在尝试将数据从一个 SQL Server 服务器移动到另一个(位于另一台计算机上)。我知道分离/附加方法,但我不想打扰生产环境(分离生产数据库是不可能的)。如果没有任何内容被主动写入产品或从产品中读取,我不能只复制/粘贴 MDF 和 LDF 文件吗? 如果有正在读取或写入数据库的进程,我有哪些选项可以在不执行分离的情况下创建“附加”文件? 非常感谢。我阅读了两个与此相关的 问题,但没有一个适用于此。有人建议使用备份/恢复,但这似乎有点困难。 sql-server sql-server-2008-r2 1 个回答 Voted Best Answer socaire 2018-09-27T19:55:39+08:002018-09-27T19:55:39+08:00 不幸的是,您不能只复制“热”mdf 和 ldf 文件,即使实际上没有数据被写入数据库。只要文件附加到 SQL Server,就不能复制或移动它们。事实上,我认为 Windows 甚至不会让您复制它们,因为它们应该被服务器进程锁定。 简单的解决方案就是使用备份和恢复,它既轻松又安全。实际上应该已经有一个定期的备份过程,因为你提到这是生产系统,也许你甚至不需要实际进行备份,只需等待下一个发生并使用它来恢复。在 SQL Server 上,备份/恢复过程非常简单,可能是所有 RDBMS 生态系统中最简单的过程之一。 任何其他方法都会更加困难,并且可能会产生更糟糕的结果。我根本不会推荐他们。您可以尝试使用 VSS(Volume Shadow Copy)复制文件,看看您是否获得足够一致的文件来附加。或者,您可以创建一个空数据库,然后只导出所有表、视图、过程等。
不幸的是,您不能只复制“热”mdf 和 ldf 文件,即使实际上没有数据被写入数据库。只要文件附加到 SQL Server,就不能复制或移动它们。事实上,我认为 Windows 甚至不会让您复制它们,因为它们应该被服务器进程锁定。
简单的解决方案就是使用备份和恢复,它既轻松又安全。实际上应该已经有一个定期的备份过程,因为你提到这是生产系统,也许你甚至不需要实际进行备份,只需等待下一个发生并使用它来恢复。在 SQL Server 上,备份/恢复过程非常简单,可能是所有 RDBMS 生态系统中最简单的过程之一。
任何其他方法都会更加困难,并且可能会产生更糟糕的结果。我根本不会推荐他们。您可以尝试使用 VSS(Volume Shadow Copy)复制文件,看看您是否获得足够一致的文件来附加。或者,您可以创建一个空数据库,然后只导出所有表、视图、过程等。