我有一个简单恢复模式的数据库,并定期进行 FULL、DIFF 备份。
这个数据库也有每个月的文件组。每个文件组只有一个 NDF 文件。
像这样:
FileGroup: PRIMARY
File: Primary.mdf
FileGroup: FG201801
File: 201801.ndf
FileGroup: FG201802
File: 201802.ndf
FileGroup: FG201803
File: 201803.ndf
etc
我的目标是双重的:
能够对每个分区级别进行备份。当我将文件组标记为只读时,我只能阅读它。所以我已经分离了部分备份 BAK 文件。 https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/partial-backups-sql-server
第二个目标是(我的问题在这里),能够只恢复一个文件组,而不恢复 PRIMARY 文件组或触及任何其他文件组。
甚至可能吗?
据了解,如果我只想恢复假设 FG201802 ,而不影响 PRIMARY 和其他人,那么首先我必须恢复包含 PRIMARY 文件组的完整备份,然后我可以恢复 FG201802 的部分备份。如何在不恢复 PRIMARY 的情况下恢复 FG201802?
任何人都可以向我指出一个在线资源来证明这一点吗?网络上的所有文章(我发现)总是开始恢复 PRIMARY 完整备份,然后一一应用其余的部分备份。
我只希望恢复部分备份,怎么办?
谢谢!
如果不恢复 PRIMARY 文件组,则无法恢复文件或文件组。考虑到您的情况,有很多原因:
即使在完全恢复下,也必须恢复主文件组以允许您恢复单个文件/文件组,因为有关数据库的所有核心元数据都在那里。
部分备份和分段恢复的想法是通过恢复数据库正常运行所需的基本文件组,让您在灾难中更快地恢复联机,并且您可以稍后恢复其他文件组。
我建议您考虑对数据库进行一些更改:
这些更改将使您能够简化还原过程。假设您进行了上述更改并希望恢复您提到的文件,则该过程将是:
这将比 SIMPLE 恢复下的部分备份更快,因为未损坏的文件组不必从备份中恢复,而是由 SQL Server 简单地恢复磁盘上的数据文件,并根据需要将事务从日志重播到这些文件上。如果 PRIMARY 文件组很小,并且您经常进行日志备份,那么整个过程应该比恢复所有读/写文件组更快,就像在 SIMPLE 下进行部分备份一样。