设为首页 收藏本站
查看: 658|回复: 0

[经验分享] SQL Server 2012笔记分享-30:页还原

[复制链接]

尚未签到

发表于 2018-6-23 09:42:21 | 显示全部楼层 |阅读模式
  使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中还原页。 页面还原的目的是还原一个或多个损坏的页,而不还原整个数据库。 通常,要进行还原的页已经由于在访问该页时遇到错误而标记为“可疑”。 可疑页在 msdb 数据库的 suspect_pages 表中进行了标识。
  页面还原用于修复隔离出来的损坏页。 还原和恢复少量页面的速度可能比还原一个文件更快,因此减少了还原操作中处于脱机状态的数据量。 然而,如果文件中要还原的不只是少量页面,则通常还原整个文件更为有效。 例如,如果某个设备上的大量页都指出此设备有未解决的故障;不妨考虑还原该文件(可以还原到另一位置)并修复该设备。
  此外,并非所有的页面错误都需要还原。 缓存数据(例如辅助索引)中可能出现的问题可以通过重新计算这些数据来解决。 例如,如果数据库管理员删除一个辅助索引,然后再重新生成一个辅助索引,则损坏的数据虽然已修复,但并没有在 suspect_pages 表中反映出这一情况。
  页面还原适用于使用完整或大容量日志恢复模式的 SQL Server 数据库。 只有读/写文件组支持页面还原。
  仅能还原数据页,以下类型的页面不能还原:

  •   分配页:IAM, GAM, SGAM, PFS
  •   第0页(文件首页)
  •   第9页(数据库启动页)
  执行页面还原的最佳做法是将数据库设置为完整恢复模式,并尝试进行一次日志备份。 如果可以进行日志备份,则可以继续进行页面还原。 如果日志备份失败,则您将不得不丢失上一个日志备份之后的工作,或必须尝试运行 DBCC(必须使用 REPAIR_ALLOW_DATA_LOSS 选项)。
  =========================================================================
  脱机页面还原
  SQL Server 2005 的所有版本和更高版本都支持在数据库脱机时还原页面。 在脱机还原页过程中,还原损坏的页时数据库处于脱机状态。 还原顺序结束时,数据库将联机。
  联机页面还原
  SQL Server 2005 Enterprise Edition 和更高版本支持联机页面还原,但它们在数据库当前处于脱机状态时将使用脱机还原。 在大多数情况下,可以在数据库(包括页面要还原到的文件组)保持联机状态时还原损坏的页。 在主文件组处于联机状态时,即使有一个或多个辅助文件组处于脱机状态,页面还原也通常联机执行。 但有时候,损坏的页可能需要脱机还原。 例如,某些重要的页发生损坏可能会使数据库无法启动。
  注意
  如果损坏的页存储了重要的数据库元数据,则在联机页面还原尝试过程中对元数据的必需的更新可能失败。 在此情况下,您可以执行脱机页面还原,但首先,您必须创建一个结尾日志备份(通过使用 RESTORE WITH NORECOVERY 备份事务日志)。
  页面还原利用了 SQL Server 2005 中引入的改进的页级错误报告(包含页校验和)和跟踪。 通过校验和或残缺写操作检测为已损坏的页(“损坏页”)可以通过页还原操作进行还原。 仅还原显式指定的页。 每个指定页都被来自指定数据备份的页的副本替换。
  ========================================================================
  右击要进行页还原的数据库,选择任务——还原——页。
DSC0000.png

  可以运行“检查数据库页”来查找数据库中损坏的数据,即运行dbcc checkdb physical_onlly。
DSC0001.png

  也可以手动输入要还原的页的文件ID和页ID,如图。
DSC0002.png

  输入完成后,点击确定。如图。
DSC0003.png

  注意:
  还原页实际上也是从现有的备份中进行还原的,所以在进行页还原之前,一定要确保有数据备份,即做了完整+事务日志的备份,如下图。
DSC0004.png

  我们还可以通过查看下面的系统表来确定错误页,如图。
  dbo.suspect_pages在系统默认数据库msdb中。
DSC0005.png

  也可以执行命令来查看,如下图
DSC0006.png

  最后,通过一个个点击查看,我发现mater和msdb数据库默认处于简单恢复模式下,所以不能进行还原页的操作,而model数据库默认处于完整恢复模式下,可以进行页还原的操作,至于tempdb,因为是临时数据库,
  所以没有备份还原的选项,只有收缩的选项。
  =====================================================================

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-529441-1-1.html 上篇帖子: SQL Server 2012笔记分享-29:日志文件的工作方式 下篇帖子: SQL Server 2012笔记分享-31:文件与文件组还原
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表