首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从文件中还原只读FileGroups

从文件中还原只读FileGroups
EN

Database Administration用户
提问于 2018-05-22 18:25:06
回答 1查看 605关注 0票数 3

我有一个简单恢复模式的数据库DB,文件组主要是A、B和C。每个文件组都有一个文件,分别是PRIMARY.MDF、A.NDF、B.NDF和C.NDF。

首先,我跑:

代码语言:javascript
复制
ALTER DATABASE [DB] MODIFY FILEGROUP [A] READ_ONLY
ALTER DATABASE [DB] MODIFY FILEGROUP [B] READ_ONLY

接下来,我跑:

代码语言:javascript
复制
BACKUP DATABASE [DB] READ_WRITE_FILEGROUPS TO DISK = N'C:\DB.BAK'

我将备份文件复制到单独的服务器,并使用以下方法执行部分还原:

代码语言:javascript
复制
RESTORE DATABASE [DB]
FILEGROUP = 'PRIMARY', FILEGROUP = 'C'
FROM DISK = 'C:\DB.BAK'
WITH PARTIAL, RECOVERY

数据库现在在第二台服务器上联机,我可以从文件组主和C查询数据。数据库知道文件组A和B,但它们被标记为脱机。是否有一种方法可以直接从.NDF文件恢复剩下的两个只读文件组?

EN

回答 1

Database Administration用户

发布于 2018-05-22 21:54:08

因为您只使用备份中的命令READ_WRITE_FILEGROUPS你将无法恢复 AB备份数据库的读-写文件。理想情况下,您应该执行数据库的完整备份,并从其中还原所有您想要的文件。由于许多原因,这是推荐的方法。

我在想你什么时候或者为什么不这么做。我认为,将ndf文件AB复制并粘贴到Server位置以尝试使用还原(可能与同步不同步,而且无论如何都不起作用)的最后努力是,如果您发布的备份是唯一的备份。(只读取写入数据库,所有读取只丢失。)但是最后的努力是什么呢?

被破坏的数据库?桑斯被炸了?服务器完全离线?在所有这些情况下,您都无法获得AB。也许有一个自动的过程,可以将SANS复制并克隆到备份服务器上(但是为什么不是备份文件呢?)当数据库本身关闭时,这个部分是可操作的,也许我可以看到你可以在哪里尝试抓取NDF文件并尝试重新连接,但我觉得最好花些时间让服务器运行并恢复这些文件的副本。

但是,如果你坚持不懈,并且出于任何原因,我会建议你做最后的努力。我将有几篇文章在结尾与此有关。

如果您能够将文件AB复制并粘贴到SQL可以访问它们的文件夹中,则可以尝试在还原的DB上执行附件。我怀疑您将需要到主服务器查找文件AB,或者可能找到另一个源。可能是文件不同步,无法附加。如果备份后没有任何活动,您可能有机会。

下面是一些附加文件的示例:

关于如何附加文件的堆栈溢出。

在附加MDF文件时遇到问题的用户出现堆栈溢出.

斯泰斯特一号的亚伦·伯特兰建议采取全面的备份和恢复.中密度纤维板文件的坏习惯

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/207525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档