首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确保正在还原的页面不损坏的SQL服务器机制是什么?

确保正在还原的页面不损坏的SQL服务器机制是什么?
EN

Database Administration用户
提问于 2022-09-08 09:37:46
回答 2查看 891关注 0票数 4

假设dbcc checkdb在1页上显示损坏。

假设我只想通过还原损坏的页面来修复这个问题。

因此,我转到还原页面UI,单击按钮查找损坏的页面,输入完整和日志备份文件和还原。

我的问题是-在给定的完整备份中,sql服务器检查页面是否损坏的方式是什么?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2022-09-08 14:01:25

DBA有责任制定适当的维护计划,并确保运行中的数据库和数据库备份的完整性。

DBCC CHECKDB()是检查生产性运行数据库中的损坏情况的工具。

BACKUP DATABASE ... WITH CHECKSUM...将是一个适当的设置,以确保写入备份位置的数据与从运行中的数据库检索的数据相同。

指定备份操作验证每个页的校验和撕破页(如果启用和可用的话),并为整个备份生成校验和。

在GUI中设置“验证备份”选项或对数据库备份文件执行手动RESTORE VERIFYONLY...,也将检查创建的备份文件的有效性。

RESTORE DATABASE ... WITH CHECKSUM ...是将数据库还原到另一个位置/服务器所要运行的内容。

默认情况下,在遇到无效校验和时,RESTORE报告校验和错误并停止。但是,如果指定了CONTINUE_AFTER_ERROR,则在返回校验和错误以及包含无效校验和的页数(如果损坏允许)之后,还原操作将继续进行。

还原之后,您将再次运行一个DBCC CHECKDB(),以确保还原的数据库不会损坏。

回答你的问题

确保正在还原的页面不损坏的SQL服务器机制是什么?

根本就没有。DBA只需要执行几个步骤(上面概述),才能确保数据库备份不损坏。页可以包含损坏的内容,但仍然可以还原。只有在运行DBCC CHECKDB()之后,您才会知道某个页面是否已损坏。

参考阅读

票数 10
EN

Database Administration用户

发布于 2022-09-08 12:31:43

不会的。如果备份文件中有一个损坏的页,并且要还原它,SQL将恢复它(并且不会引发任何错误)。

经常运行checkdb并确保不备份损坏的页面是您的工作。

现在,您可以尝试恢复最新的完全备份+ diff/log,并运行checkdb来查看是否修复了您的损坏。

如果没有,那么您可以获得以前的完全备份,并将所有日志应用到最后一个日志(这可能需要时间,因为您可能需要很多时间来恢复),然后再次运行checkdb。

*您可以通过只在其他地方还原完整文件并在那里运行checkdb来节省时间。如果页面未完全损坏,则在应用日志后,它在技术上应保持未损坏。

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

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

复制
相关文章

相似问题

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