【问题标题】:SQL Server--piecemeal restore of filegroups from complete backup in Simple Recovery ModeSQL Server——在简单恢复模式下从完整备份中逐步恢复文件组
【发布时间】:2014-09-23 21:23:45
【问题描述】:

我们在 MS SQL 中有一个大型数据库,其中一个表按日期列分区。主键索引也使用相同的分区函数进行分区。数据库以简单恢复模式保存,因为数据每 3 个月分批添加到其中。

DBCC checkfilegroup 发现一致性错误,因此我们只需从完整备份中恢复一个文件组。

Restore 不允许我在简单模式下运行文件组的恢复,因此我更改为完全恢复模式,然后运行以下命令,没有任何错误。

恢复数据库aricases filegroup='2003' from disk=N'backupfile-name.bak' 有恢复

我希望“with recovery”条款能将其恢复到正常工作状态,但该过程以一条注释结束

前滚起点现在位于日志序列号 (LSN) 511972000001350200037。需要额外前滚超过 LSN 549061000001370900001 才能完成恢复序列。

当我查询包含此文件组的数据库表时,我收到一条消息,指出无法访问主键,因为无法访问该表的一个分区,因为它处于脱机、恢复或失效状态。

为什么“with recovery”子句没有让这个文件组完全恢复。怎么办? 整个数据库非常大(1.5TB)。我无法备份日志文件,因为我首先需要在完整模型模式下创建备份。文件组本身只有 300GB。

我可以再次进行恢复 - 但想知道执行此操作的正确方法。 有没有办法保持完整的恢复模式并从完整的数据库备份执行零碎的文件组备份?

【问题讨论】:

    标签: sql-server database-restore filegroup


    【解决方案1】:

    我找到了答案。底线是简单恢复模型非常有限。您必须从同一个备份中一起恢复所有读/写文件组。单个只读文件组可以单独恢复,只要它们在读/写文件组的最后备份之前变为只读(没有更多更改)。

    底线——只有完整或批量记录模型允许您恢复单个读/写文件组。 Bulk-Logged 模型是具有批量加载的数据仓库应该使用的模型,而不是简单模型。我的设计错误。

    从微软看

    http://msdn.microsoft.com/en-us/library/ms191253.aspx

    然后查看简单模型的零碎恢复 http://msdn.microsoft.com/en-us/library/ms190984%28v=sql.100%29.aspx 非常有限

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多