我有一个简单恢复模式的数据库DB,文件组主要是A、B和C。每个文件组都有一个文件,分别是PRIMARY.MDF、A.NDF、B.NDF和C.NDF。
首先,我跑:
ALTER DATABASE [DB] MODIFY FILEGROUP [A] READ_ONLY
ALTER DATABASE [DB] MODIFY FILEGROUP [B] READ_ONLY接下来,我跑:
BACKUP DATABASE [DB] READ_WRITE_FILEGROUPS TO DISK = N'C:\DB.BAK'我将备份文件复制到单独的服务器,并使用以下方法执行部分还原:
RESTORE DATABASE [DB]
FILEGROUP = 'PRIMARY', FILEGROUP = 'C'
FROM DISK = 'C:\DB.BAK'
WITH PARTIAL, RECOVERY数据库现在在第二台服务器上联机,我可以从文件组主和C查询数据。数据库知道文件组A和B,但它们被标记为脱机。是否有一种方法可以直接从.NDF文件恢复剩下的两个只读文件组?
发布于 2018-05-22 21:54:08
因为您只使用备份中的命令READ_WRITE_FILEGROUPS、你将无法恢复 A或B备份数据库的读-写文件。理想情况下,您应该执行数据库的完整备份,并从其中还原所有您想要的文件。由于许多原因,这是推荐的方法。
我在想你什么时候或者为什么不这么做。我认为,将ndf文件A或B复制并粘贴到Server位置以尝试使用还原(可能与同步不同步,而且无论如何都不起作用)的最后努力是,如果您发布的备份是唯一的备份。(只读取写入数据库,所有读取只丢失。)但是最后的努力是什么呢?
被破坏的数据库?桑斯被炸了?服务器完全离线?在所有这些情况下,您都无法获得A和B。也许有一个自动的过程,可以将SANS复制并克隆到备份服务器上(但是为什么不是备份文件呢?)当数据库本身关闭时,这个部分是可操作的,也许我可以看到你可以在哪里尝试抓取NDF文件并尝试重新连接,但我觉得最好花些时间让服务器运行并恢复这些文件的副本。
但是,如果你坚持不懈,并且出于任何原因,我会建议你做最后的努力。我将有几篇文章在结尾与此有关。
如果您能够将文件A和B复制并粘贴到SQL可以访问它们的文件夹中,则可以尝试在还原的DB上执行附件。我怀疑您将需要到主服务器查找文件A和B,或者可能找到另一个源。可能是文件不同步,无法附加。如果备份后没有任何活动,您可能有机会。
下面是一些附加文件的示例:
https://dba.stackexchange.com/questions/207525
复制相似问题