数据库页面级恢复看似无效

时间:2016-03-23 17:08:02

标签: sql-server sql-server-2012 database-administration

背景

SQL Server Enterprise 2012
发生磁盘IO错误,导致两个表错误:

DBCC CHECKDB(dbname)
GO
--Output:
--Msg 8939, Level 16, State 98, Line 1
--Table error: Object ID 0, index ID -1, partition ID 0, alloc unit ID 0 (type Unknown), page (3:7432269). Test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. Values are 133129 and -6.
--Msg 8939, Level 16, State 98, Line 1
--Table error: Object ID 0, index ID -1, partition ID 0, alloc unit ID 0 (type Unknown), page (3:7434265). Test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. Values are 133129 and -6.

故障磁盘已被替换,所有文件都已成功复制到替换磁盘。

问题

更换磁盘后,幸运的是在错误发生前一天从完整备份执行页面级恢复导致处理0页:

USE MASTER  
RESTORE DATABASE dbname PAGE = '3:7434265, 3:7432269' FROM DISK = 'P:\MSSQL_BACKUPS\dbname\dbname\dbname_backup_2016_02_27_050001_8076562.full.bak' WITH NORECOVERY
GO
--Output:
--Processed 0 pages for database 'dbname', file 'dbname_pt0b' on file 1.
--RESTORE DATABASE ... FILE=<name> successfully processed 0 pages in 398.710 seconds (0.000 MB/sec).

再次运行CHECKDB确认错误仍然存​​在。据我所知,这是从数据库损坏中恢复的正确方法,其中只有少量页面受到影响。我知道这不会让我进入数据库完全恢复的阶段 - 我需要恢复后续日志 - 但它应该至少处于表错误已修复的状态。我错过了什么?

由于

0 个答案:

没有答案