数据库文件组 - 仅在新服务器上还原1个文件组

时间:2012-11-10 14:26:01

标签: sql database restore

有没有办法备份SQL数据库中的某些表?我知道我可以将某些表移动到不同的文件组中,并在这些文件组上执行备份。唯一的问题是我认为您需要备份所有文件组和事务日志以在不同的服务器上还原数据库。

我需要在不同服务器上恢复备份的原因是这些是客户数据库的备份。例如,我们可能有一个远程客户,需要获得他们4GB数据库的副本。这个空间的90%被两个表占用,我们不需要这些表,因为它们只存储图像。目前,我们必须获取数据库的副本并将其上传到FTP站点...对于较大的数据库,这可能需要花费大量时间,我们需要减少数据库大小。

我能想到的另一种方法是对数据库进行完整备份并在客户端SQL服务器上进行恢复。然后连接到新的临时数据库并删除两个表。完成后,我们可以备份数据库。此解决方案的唯一问题是它在运行查询时可能会使用大量系统还原,因此它不太理想。

所以我的想法是使用两个文件组。主文件组将托管除第二个文件组中的两个表之外的所有表。然后,当我们需要数据库的副本时,我们只需备份主文件组。 我做了一些测试,但一直无法正常工作。有什么建议?感谢

1 个答案:

答案 0 :(得分:1)

基本上,使用2个文件组的方法似乎是合理的。

我想你在两端都在使用SQL Server,但你应该为每个人澄清这是否真的如此,以及哪些版本(企业,标准,快递等),哪些版本发布2000,2005 ,2008,(2012?)。

SQL Server中的表备份是here,现在又一次仍然可以获得良好的好处。基本上,这不是内置备份功能集中的功能。正如您正确指出的那样,部分备份功能可用作解决方法。此外,如果您只想将快照从一个表的子集传输到另一个服务器,使用ftp,您可以尝试使用上面链接的帖子中的一个答案或导出/导入数据向导建议的bcp实用程序。为了完善SQL Server的表备份解决方案和变通方法列表,有这个(可能还有其他?)第三方软件声称可以单独恢复表对象,但遗憾的是似乎没有提供单独的对象备份,{ {3}}。 (我没有使用此特定工具的从属关系或经验。)

根据您对部分数据库备份还原的更具体的关注:

  

我认为您需要备份所有文件组和事务日志   在另一台服务器上恢复数据库

1)您第一次尝试使用它时可能会遇到一些困难,但是您可以在SQL Server 2000之前从部分备份执行还原(作为参考,请参阅"Object Level Recovery Native" by Red Gate"

2)从2005年开始,您可以选择今天部分恢复,如果需要,您可以稍后恢复数据库的其余部分。您不需要包含所有文件组 - 您始终包含主文件组,如果您的数据库是简单恢复模式,则需要添加所有读写文件组。

3)只有当您的数据库处于批量或完全恢复模式并且要将更改恢复到自上次还原已成为读写的只读文件组时,才需要应用日志备份。由于您希望对这些表进行更改,因此您可能不会关注只读文件组,因此不关心传送和应用日志备份

您可能还会调查一下其他任何SQL Server功能,合并复制或上面提到的那些(bcp,导入/导出向导)是否可以提供更简单或更充分满足您需求的解决方案。