将文件组恢复到不同的数据库

Restore filegroup to different database

我有一个包含 5 个文件组的 SQL 服务器数据库,我只想备份 2 个文件组(一个包含文件流)并将它们恢复到不同的现有数据库。

你问的是Piecemeal Restores (SQL Server)

您可以恢复 primary + 所有 readwrite fg + 您处于 simple 恢复模式的任何 readonly 文件组,或者您可以恢复 primary + 任何其他文件组,如果您处于 full 恢复模式。

由于要恢复的第一个文件组始终是 primary 文件组,它将替换您的 "different existing database" 主数据文件和日志(在您的 restore 命令中,您应该使用 with move 指向您现有的 mdf + 日志文件)并且每次后续恢复都将覆盖其他文件,您的 "existing" 数据库将不会保留任何内容,因此恢复到 "different existing database" 没有任何意义:您将能够仅使您恢复的文件组联机,数据库将对 "existing database" 的剩余文件一无所知。所以这与恢复到另一个(不存在的)数据库一样。

这是 primary + readonly fgsimple 恢复模型 Example: Piecemeal Restore of Only Some Filegroups (Simple Recovery Model)

中的恢复序列示例

这里是 full 恢复模型 Example: Piecemeal Restore of Only Some Filegroups (Full Recovery Model)

的示例