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

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% 数据恢复成功

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

posted on 2024-04-10 11:47  数据库帮帮团  阅读(144)  评论(0编辑  收藏  举报

导航