1

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

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

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

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

4

1 回答 1

2

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

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

SQL Server 中的表备份在这里是一匹死马,仍然时不时地得到很好的鞭打。基本上,这不是内置备份功能集中的功能。正如您正确指出的那样,部分备份功能可以用作解决方法。此外,如果您只想将快照从表的子集传输到另一台服务器,则可以使用 ftp 尝试使用上述链接帖子中的答案之一或导出/导入数据向导中建议的 bcp 实用程序。为了完善 SQL Server 的表备份解决方案和解决方法列表,有这个(可能还有其他?)第三方软件声称允许单独恢复表对象,但不幸的是似乎不提供单独的对象备份,“对象级恢复本机“红门”. (我没有使用此特定工具的从属关系或经验)。

根据您对从部分数据库备份恢复的更具体的关注:

我相信您需要备份所有文件组和事务日志才能在不同的服务器上恢复数据库

1) 您第一次尝试使其工作时可能会遇到一些困难,但您可以从 SQL Server 2000 的部分备份执行恢复,(作为参考,请参见此处

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

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

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

于 2012-12-17T11:38:12.967 回答