使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中还原页。 页面还原的目的是还原一个或多个损坏的页,而不还原整个数据库。 一般,要进行还原的页已经因为在访问该页时遇到错误而标记为“可疑”。 可疑页在 msdb 数据库的 suspect_pages 表中进行了标识。数据库
页面还原用于修复隔离出来的损坏页。 还原和恢复少许页面的速度可能比还原一个文件更快,所以减小了还原操做中处于脱机状态的数据量。 然而,若是文件中要还原的不仅是少许页面,则一般还原整个文件更为有效。 例如,若是某个设备上的大量页都指出此设备有未解决的故障;不妨考虑还原该文件(能够还原到另外一位置)并修复该设备。缓存
此外,并不是全部的页面错误都须要还原。 缓存数据(例如辅助索引)中可能出现的问题能够经过从新计算这些数据来解决。 例如,若是数据库管理员删除一个辅助索引,而后再从新生成一个辅助索引,则损坏的数据虽然已修复,但并无在 suspect_pages 表中反映出这一状况。ide
页面还原适用于使用完整或大容量日志恢复模式的 SQL Server 数据库。 只有读/写文件组支持页面还原。spa
仅能还原数据页,如下类型的页面不能还原:日志
分配页:IAM, GAM, SGAM, PFS blog
第0页(文件首页) 索引
第9页(数据库启动页)事务
执行页面还原的最佳作法是将数据库设置为完整恢复模式,并尝试进行一第二天志备份。 若是能够进行日志备份,则能够继续进行页面还原。 若是日志备份失败,则您将不得不丢失上一个日志备份以后的工做,或必须尝试运行 DBCC(必须使用 REPAIR_ALLOW_DATA_LOSS 选项)。get
=========================================================================it
脱机页面还原
SQL Server 2005 的全部版本和更高版本都支持在数据库脱机时还原页面。 在脱机还原页过程当中,还原损坏的页时数据库处于脱机状态。 还原顺序结束时,数据库将联机。
联机页面还原
SQL Server 2005 Enterprise Edition 和更高版本支持联机页面还原,但它们在数据库当前处于脱机状态时将使用脱机还原。 在大多数状况下,能够在数据库(包括页面要还原到的文件组)保持联机状态时还原损坏的页。 在主文件组处于联机状态时,即便有一个或多个辅助文件组处于脱机状态,页面还原也一般联机执行。 但有时候,损坏的页可能须要脱机还原。 例如,某些重要的页发生损坏可能会使数据库没法启动。
注意
若是损坏的页存储了重要的数据库元数据,则在联机页面还原尝试过程当中对元数据的必需的更新可能失败。 在此状况下,您能够执行脱机页面还原,但首先,您必须建立一个结尾日志备份(经过使用 RESTORE WITH NORECOVERY 备份事务日志)。
页面还原利用了 SQL Server 2005 中引入的改进的页级错误报告(包含页校验和)和跟踪。 经过校验和或残缺写操做检测为已损坏的页(“损坏页”)能够经过页还原操做进行还原。 仅还原显式指定的页。 每一个指定页都被来自指定数据备份的页的副本替换。
========================================================================
右击要进行页还原的数据库,选择任务——还原——页。
能够运行“检查数据库页”来查找数据库中损坏的数据,即运行dbcc checkdb physical_onlly。
也能够手动输入要还原的页的文件ID和页ID,如图。
输入完成后,点击肯定。如图。
注意:
还原页实际上也是从现有的备份中进行还原的,因此在进行页还原以前,必定要确保有数据备份,即作了完整+事务日志的备份,以下图。
咱们还能够经过查看下面的系统表来肯定错误页,如图。
dbo.suspect_pages在系统默认数据库msdb中。
也能够执行命令来查看,以下图
最后,经过一个个点击查看,我发现mater和msdb数据库默认处于简单恢复模式下,因此不能进行还原页的操做,而model数据库默认处于完整恢复模式下,能够进行页还原的操做,至于tempdb,由于是临时数据库,
因此没有备份还原的选项,只有收缩的选项。
=====================================================================