我有一个包含 2 个文件组的数据库 (MyDatabase),[PRIMARY]
并且[SECONDARY]
.
该[SECONDARY]
文件组有 2 个数据文件,[DataFileA]
和[DataFileB]
.
[DataFileA]
已损坏(即使经过DBCC CHECKDB
处理)。
我试图解决它:
DBCC CHECKDB ([MyDatabase], REPAIR_ALLOW_DATA_LOSS)
但它没有帮助。- 删除损坏的数据文件
[DataFileA]
,没有成功。
[PRIMARY]
文件组没问题。
我可以只备份[PRIMARY]
文件组并恢复它(以新名称)并从这个文件组创建一个新数据库吗?
由于数据库是
ONLINE
,您有两个主要选择:为文件组对象创建一个与旧数据库具有相同架构的新
[PRIMARY]
数据库,并使用任何可用的工具(例如 SSIS、bcp、链接服务器)传输数据。根据现有模式、约束和关系(例如外键)的复杂性,这可能非常耗时。仅对文件组进行部分备份。使用piecemeal restore 将
[PRIMARY]
其还原到新的数据库和文件。最后,将文件组标记为 defunct。确保首先干净地运行。您也应该像选项 1 一样将架构和数据导出到安全的地方。如您所知,测试有价值数据的备份是首要任务 #1 :)DBCC CHECKFILEGROUP
[PRIMARY]