小樱知识 > 生活常识 > 数据库损坏(SQL Server数据库损坏、检测以及简单的修复办法)

数据库损坏(SQL Server数据库损坏、检测以及简单的修复办法)

提问时间:2022-08-26 00:47:59来源:小樱知识网


单边带检查

检查索引视图、XML索引等。

首先,当发现系统表损坏时,只能通过备份来恢复(这就是为什么备份TempDB以外的系统表非常重要)。其次,在大型数据库中,做CheckDB会花费很长时间,系统的维护窗口时间或者空闲时间可能不会覆盖这个时间,所以我们可以将CheckDB的任务分配给CHECKALLOC、DBCC CHECKTABLE和DBCC CHECKCATALOG三个命令。

有关CheckDB的更多详细信息,请参见:http://technet.microsoft.com/en-us/library/ms176064.aspx.

修复数据库损坏

损坏数据库的最有效方法是拥有冗余数据并使用冗余数据进行恢复。所谓冗余数据包括热备用、冷备用和热备用。

使用镜像或可用性组作为热备盘,当检测到错误时,页面可以自动修复(镜像要求高于2008,可用性组是2012的功能)。当镜像主体服务器遇到824错误时,它将向镜像服务器发送请求,将损坏的页面从镜像复制到主体服务器以解决问题。对于可用性组,如果在主副本上找到数据页,主副本将向所有辅助副本发送广播,第一个响应辅助副本的页面将修复页面错误;如果错误出现在只读辅助副本上,将从主副本请求相应的页面来修复错误。这里值得注意的是,无论是哪种高可用性技术,都不会将页面错误扩散到冗余数据中,因为SQL Server中的所有高可用性技术都是基于日志的,而不是数据页面。

其次,使用热备用或冷备用来恢复页面。我已经在清单1中给出了详细的代码,所以我在这里不再赘述。

如果没有合适的备份,如果非聚集索引上存在损坏的数据页,那么您很幸运,您只需要禁用索引并重建它。

如果存在基线的完整备份,并且日志链没有中断(包括差异备份可以覆盖的日志缺失部分),则可以通过在备份结束日期后恢复数据库来修复。

最后,如果基础工作做得不好,可能需要通过丢失数据来改变数据库的一致性。我们可以通过DBCC检查数据库命令的修复允许数据丢失来修复数据库。使用此方法可能会也可能不会导致数据丢失,但在大多数情况下,一致性将通过删除数据来修复。使用REPAIR_ALLOW_DATA_LOSS需要将数据库设置为单用户模式,这意味着停机。

不管修复数据库的情况如何,都要考虑是否能满足SLA。如果出现问题,发现无论如何都达不到SLA,我们只能回顾一下之前的准备工作,祈祷你不会失业。

以上内容就是为大家推荐的数据库损坏(SQL Server数据库损坏、检测以及简单的修复办法)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题

内容来源于网络仅供参考
二维码

扫一扫关注我们

版权声明:所有来源标注为小樱知识网www.cnfyy.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。

本文标题:数据库损坏(SQL Server数据库损坏、检测以及简单的修复办法)

本文地址:https://www.cnfyy.com/shcs/650480.html

相关文章