不允许备份文件或文件组“fileStream”,因为它不在线

Sae*_*ati 5 sql-server filegroups

我正在尝试备份由我无权访问的人创建的数据库。我收到此错误消息:

不允许备份文件或文件组“fileStream”,因为它不在线。

然后它建议通过T-SQL备份数据库只备份在线文件组。然而,这不是我的要求。

我想使脱机文件组再次联机。我看到了这个答案,它建议使用alter database命令使 fielgroup 脱机。

alter database dn_name
modify file (name='filegroup_name', offline)
go
Run Code Online (Sandbox Code Playgroud)

但是,正如我看到的上述命令的文档,没有选项可以让 fielgroup 重新联机。我该怎么办?如何在 SQL Server 2012 中使文件组(或文件)重新联机?

Aar*_*and 4

如果该文件仍然存在,您应该能够执行以下操作:

RESTORE DATABASE YourDB FILEGROUP=YourFG WITH RECOVERY;
Run Code Online (Sandbox Code Playgroud)

如果该文件不再存在(或存在但不符合恢复数据的条件),那么您将度过一个艰难的周末。根据数据库的复杂性,我可能会开始制定备份计划(没有双关语):

  1. 创建一个新数据库
  2. 针对旧数据库使用“生成脚本”选项来编写对象和数据的脚本(或使用第 3 方工具并进行架构/数据比较)
  3. 确保所有数据库设置、登录名等都映射到新数据库(如果您使用 TDE、证书、服务代理等,这可能会变得复杂)
  4. 重命名旧数据库
  5. 重命名新数据库

(如果您可以调整应用程序以指向数据库的新副本,您也可以跳过 4. 和 5.。)