是否可以在sql-server中备份和还原数据库的一部分?


19

我们有一个sql-server 2005数据库,我们定期将其从客户端站点转移到我们的客户端站点。这需要很长时间,因为我们没有直接连接,必须通过其基于Web的文件传输应用程序传输文件。该数据库当前大约为10GB,但是我们不需要所有数据-大多数数据位于审计表和可重新生成计算值的表中。

我已经考虑过创建一个文件组来保存审核表,并希望我可以备份和还原主文件组。我可以很好地备份,但是在还原时出现错误,提示我没有将其还原到同一数据库。是否可以使用文件组将数据库的一部分还原到其他服务器?有一个更好的方法吗?


1
您可能会从阅读此问题中受益:使用SQL Server可以实现最小的备份,尤其是Brent的答案。
玛丽安

因为这并不没有太多的两轮牛车看起来可能我相信,我们不妨来看看移动所有审计日志表,以一个单独的数据库
亚当巴特勒

不需要在应用程序中更改代码吗?要让客户经历一下,这有点多。
肖恩·梅尔顿

Answers:


15

老实说,这是最简单的:

  • 在本地备份/还原副本
  • 从副本中删除不需要的数据(使用DELETE或TRUNCATE TABLE,而不是 DROP ...)
  • 运送副本

由于您注意到了增加的复杂性,因此我不会打扰文件组。


1
我建议将此新还原的数据库更改为简单恢复模型。 msdn.microsoft.com/en-CA/library/ms189272.aspx
datagod

7

您所说的仅需要主文件组的方式,在我看来,您只需要数据库结构和少量数据。我建议您是否只想更新数据库结构(对象,表等),以简单地用所有对象编写数据库脚本。使用PowerShell可以快速轻松地完成此操作。

然后,您真正需要的,无法重新生成的数据只需将其导出即可(PowerShell脚本也可以做到这一点)。我确定导出文件可以压缩到较小的大小,然后通过连接传输到您的站点。

当然,就像这个一样,@ gbn建议可以编写脚本,因此由您决定哪个选项花费最少的时间。


2

使用逐行还原可以做到这一点。源数据库的对象和文件组必须以一种支持这种方式的方式进行组织。RESTORE需要其他特定的关键字。

虽然可能需要一点时间来适应该概念,但是要实现的脚本数量却不超过建议的其他解决方案的数量。


-1

右键单击并生成脚本,然后将数据库名称更改为目标(USE db)。

在这里解释


它出什么问题了?
裘德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.