首页 > 数据库 >SQLSERVER 2019数据库(可疑) 数据修复案例

SQLSERVER 2019数据库(可疑) 数据修复案例

时间:2024-04-10 11:56:00浏览次数:18  
标签:修复 错误 数据库 SQLSERVER ALTER 2019 ID row

2019 数据库 , 在正常使用过程中 , 服务器突然断电 , 重新启动服务器后 , 数据库变为(可疑)。

【数据恢复故障分析】
由于数据库在正常读写操作过 , 服务器突然断电 , 导致数据库无法把所有缓冲中的数据写入到数据库文件中 , 所以会使数据内部索引及数据区损坏。
【数据恢复过程】
1.通过命令对损坏的数据库进行扫描
USE master; ALTER DATABASE 你的数据库名 SET EMERGENCY;

---首先,你需要将数据库设置为单用户模式,然后修复数据库:
ALTER DATABASE 你的数据库名 SET SINGLE_USER
DBCC CHECKDB('你的数据库名', REPAIR_ALLOW_DATA_LOSS);


2. 使用 DBCC 检测数据库,发现有“并闩锁页”错误,具体错误提示:
对象 ID 772952063,索引 ID 0,分区 ID 72057602335309824,分配单元 ID 72057609872080896 (类型为 In-row data): 无法处理页 (1:5363528)。有关详细信息,请参阅其他错误消息。
该错误已修复。
消息 8939,级别 16,状态 98,第 2 行
表错误: 对象 ID 772952063,索引 ID 0,分区 ID 72057602335309824,分配单元 ID 72057609872080896 (类型为 In-row data),页 (1:5363528)。测试(IS_OFF (BUF_IOERR, pBUF->bstat))失败。值为 2059 和 -6。
该错误已修复。
消息 8928,级别 16,状态 1,第 2 行
对象 ID 772952063,索引 ID 0,分区 ID 72057602335309824,分配单元 ID 72057609872080896 (类型为 In-row data): 无法处理页 (1:5363536)。有关详细信息,请参阅其他错误消息。
该错误已修复。
消息 8939,级别 16,状态 98,第 2 行
表错误: 对象 ID 772952063,索引 ID 0,分区 ID 72057602335309824,分配单元 ID 72057609872080896 (类型为 In-row data),页 (1:5363536)。测试(IS_OFF (BUF_IOERR, pBUF->bstat))失败。值为 2059 和 -6。
该错误已修复。

3. 通过对 MDF 文件自身内部结构分析 , 发现有多个页损坏 , 通过计算 , 重新回写正确的值 , 数据库可正常读取 .

恢复正常运行: 最后,将数据库恢复到正常模式,并允许多用户访问:
ALTER DATABASE 你的数据库名 SET ONLINE;
ALTER DATABASE 你的数据库名 SET MULTI_USER;
【数据恢复结论】
历时 1小时, 100% 数据恢复成功

【后记】
数据库在使用过程中,如遇到突然断电的情况,数据库损坏的机率很大,建议客户实时备份数据。数据库损坏后不要盲目进行修复处理,先做好备份后再进行其它操作。

标签:修复,错误,数据库,SQLSERVER,ALTER,2019,ID,row
From: https://www.cnblogs.com/shukuinfo/p/18125731

相关文章

  • openGauss数据库xlog目录满问题处理
    openGauss数据库xlog目录满问题处理openGauss数据库xlog满通常为以下几个原因:1.主备状态不正常,存在网络问题,集群内有宕机的节点2.xlog保留数量过多3.逻辑复制槽失效,且未及时清理4.开启归档,但归档失败导致xlog不清理首先,确认数据库状态gs_om-tquery确认主备状态......
  • P5327 [ZJOI2019]语言 解题报告
    oj:https://gxyzoj.com/d/gxyznoi/p/P35树上差分+线段树合并+树链剖分1.暴力从最基础的方法开始,暴力统计s-t上的点,然后用map直接统计,显然会T,20pts2.特殊性质测试点5,6保证了数据是一条链,将链上每一个节点编号为1-n对于每一次操作,可以记录其覆盖情况,设共有x个节点,有y个节......
  • C++ - VS2019配置Qt开发环境
    下面正式介绍VS2019+Qt5.14.2开发环境的配置,其它版本类似,安装步骤如下:注意:首先自行安装好vs2019和qt5.14.2再执行以下步骤1、VisualStudio2019配置Qt环境(1)插件下载安装点击VS上方的菜单栏,选择“拓展—>管理拓展”进入管理拓展对话框,在右上方搜索qt,出现搜索结果后,选择......
  • 数据库性能优化调优
    0,创建的时候分库分表。表大小超过一定范围如2G1,主键顺序插入,性能好于乱序插入。推荐使用自增。2,合理索引设计,降低主键长度。在查询时,创建列的索引,然后查询用索引列升序降序查询。分页查询limit,最好覆盖索引。部分查询条件会使其索引失效,导致全盘扫描:w......
  • 2-53. 种子数据库制作
    创建DropDetails创建CropDataList_SO项目相关代码代码仓库:https://gitee.com/nbda1121440/farm-tutorial.git标签:20240410_0932......
  • 【高薪诚聘】数据库精英,加入我们,共创数据未来!
    我们寻找的你:【如果你是数据库架构专家】对数据库架构有深入的了解和实践经验,能够为公司构建稳定、高效、可扩展的数据库架构;对各种数据库系统有深入的理解,包括但不限于MySQL、Oracle、SQLServer等,并能够根据实际业务需求进行选择和优化;对新技术和新架构保持敏感,有能力推动公......
  • Windows 中的 REG 命令是用于在命令行界面下直接操作 Windows 注册表的工具。注册表是
    Windows中的REG命令是用于在命令行界面下直接操作Windows注册表的工具。注册表是Windows系统中存储配置信息、应用程序设置以及系统参数的数据库,通过修改注册表可以影响系统的行为和配置。REG命令允许用户通过命令行界面来查询、修改和删除注册表中的键值。它的主要作用......
  • 数据库sql入门
    目录前言:一、什么是sql1、定义2、类型二、什么是数据库三、数据库的增删改1、查询数据库  2、创建数据库 3、删除数据库4、选择进入数据库5、创建表6、查看表的信息7、查看数据表列表8、删除数据表9、修改数据库表名 10、修改字符集11、写入内容12、增......
  • Qt使用Sqlite数据库-1(入门级)
    1.在Pro文件中加入sql资源QT+=coreguisql    这是第一步也是最重要的一步,没有加入sql资源。在包含数据库文件时会报错找不到该文件。2.创建链接及打开数据库//包含数据库头文件#include<QSqlDatabase>#include<QSqlError>#include<QSqlQuery>//创建链接......
  • 深入解析MySQL数据库报错:`ERROR 1146 (42S02): Table ‘mysql.user‘ doesn‘t exist`
    在安装或升级MySQL数据库时,你可能会遇到ERROR1146(42S02):Table'mysql.user'doesn'texist错误。这个错误表明尝试访问的mysql.user表不存在,这是MySQL用于存储用户账户和权限信息的关键系统表。本文将详细探讨这一错误的原因和解决方案,帮助你顺利完成MySQL的安装或恢复......