如何将mdf的数据复制到sql server中的另一个mdf文件中

时间:2013-07-15 12:37:04

标签: sql-server sql-server-2005 sql-server-2008-r2

我在sql server中的一个地方。我们有超过100个数据库(.mdf)。我想将mdf文件中的更新数据复制到另一个位置。假设我第一次从位置 C:\ Program Files(x86)\ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA 分离所有数据库并将它们复制到另一个位置说 C: \ 并重新附加所有原始文件(由于sql server使用而分离)。现在我在C盘中复制了。我想要一个查询或步骤,定期将所有数据库中的更新数据从原始位置复制到复制位置(在c盘中)。我已经搜索了这个并找到了首先停止服务的解决方案。但我不能这样做,因为在我公司24小时轮班和定期更新数据。所以没有机会这样做。我也用批处理文件对它进行了测试。

xcopy /y /d /r /s /e "C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\TestAxle.mdf" "c:\TestAxle.mdf" 

但它显示错误消息分享声音 也用以下命令测试:

copy /y "C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\TestAxle.mdf" "c:\TestAxle.mdf" 

但它也显示该文件正由另一个进程使用。

请告诉我如何定期复制mdf文件中的更新数据。

谢谢

1 个答案:

答案 0 :(得分:1)

这听起来像你正在尝试创建备份。如果是这种情况,请改用backup命令。虽然它不会创建“mdf”文件,但备份将包含原始mdf文件包含的所有内容,包括未使用页面的内容。

使用CREATE BACKUP命令(http://msdn.microsoft.com/en-us/library/ms187510(v=sql.105).aspx)进行备份,您可以在不关闭服务或阻止访问数据库的情况下进行备份。 (在大多数情况下,甚至没有明显的性能影响。)

还要记住,SQL Server备份保证在事务上是一致的。 mdf文件的副本(至少在没有ldf文件的情况下保存)不保证在事务上是一致的。

无法获取mdf文件的实际副本,因为服务已锁定文件。我能想到的唯一方法就是SAN复制。

如果这两个选项在您的案例报告中不起作用,请通过这些副本报告您要实现的目标。