使用 FILESTREAM 文件组备份和恢复 SQL 服务器数据库

Mar*_*ras 8 sql-server backup restore filestream

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

  • Primary : 包含除大文件 (1MB+) 之外的所有数据
  • FILESTREAM(读/写):其中包含大文件

现在,备份方案是:

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

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

我希望能够更改备份和还原的完成方式,只需引入主文件组,而忽略文件流。通过这种方式,每周我只会带来主要文件组,而不是所有假设文件流的信息。

我认为可能存在很多问题,并且在访问文件时所有文件流引用都可能丢失。我想知道是否可以在执行备份时修改所有文件流列的内容,或者使用测试环境中托管的不同文件流。此外,我只听说过一些文件组的零碎还原,但我对如何执行它有很多疑问。

问题1:我可以有这个场景吗?

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

问题 3:我可以有更好的场景来备份和恢复吗?

我全神贯注于建议。如果您有任何示例案例,请向我展示 T-SQL 查询。

Ran*_*est 1

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

不。

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

然后,使用文件流数据,我将对文件进行存根,这可以通过多种方式完成。我突然想到,我会以某种方式在测试端生成零字节文件。