使用FILESTREAM文件组备份和还原SQL Server数据库


8

我使用SQL Server,并具有一个包含两个文件组的庞大数据库:

  • 主数据库:包含大文件(1MB +)之外的所有数据
  • FILESTREAM(读/写):包含大文件

现在,备份方案为:

  • 每个星期五获得完整备份(凌晨2点)
  • 除周五外,每周的每一天都将获得差异备份(凌晨2点)

由于数据库很大,并且正在远程服务器上生产,因此,每当我想将数据库带到本地环境以创建测试数据库时(每周一次),我都必须同时带主数据流和文件流。

我希望能够更改备份和还原的方式,而只需要携带主要文件组,而不必考虑文件流。这样,每周我只带主要文件组,而不带所有假定文件流的信息。

我认为可能存在很多问题,并且在访问文件时所有文件流引用都可能丢失。我想知道在执行备份时是否可以修改所有文件流列的内容,或者使用测试环境中托管的其他文件流。另外,我听说过仅部分文件组进行零碎恢复的情况,但是我对如何执行它有很多疑问。

问题1:我可以遇到这种情况吗?

问题2:只有一个完整备份并将差异备份/事务日志带到测试环境是个好主意吗?

问题3:我可以有更好的方案进行备份和还原吗?

我很乐意提出建议。如果您有任何示例案例,请通过T-SQL查询向我展示。


Filestream Overview明确告诉我们,您可以从备份中排除FILESTREAM组。不过,TSQL的实现将令人
赞叹

是的,您可以从备份中排除FILESTREAM,但是在还原过程中,您将需要提供它。我认为当您的文件流组是读写时,这始终是必需的。这意味着您只能对数据进行部分备份,而对包括读写文件组(包含文件)的其他备份进行备份
Mario Navarro Claras

Answers:


1

我想知道在执行备份时是否可以修改所有文件流列的内容

没有。

我将使用与生产数据库相同的架构来创建测试数据库,然后编写一个自定义脚本来同步主文件组中的数据(这很容易,因为您的生产系统是源,因此同步仅在一个方向上进行)。

然后使用文件流数据对文件进行存根处理,这可以通过多种方法来完成。在我的头上,我会以某种方式在测试端生成零字节文件。

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.