一个备份集出错的恢复例子
/******************************************
尝试修复,出现错误
*******************************************/
restore database th114_oa
from disk='D:\DESK\2010-02-05.bak'
with move 'TH114_OA_Data' to 'd:\TH114_OA_Data.MDF',
move 'TH114_OA_Log' to 'd:\TH114_OA_Log.ldf',
stats
/*
已处理百分之 10。
已处理百分之 20。
已处理百分之 30。
消息 3183,级别 16,状态 2,第 1 行
在从该备份集进行读取时,RESTORE 检测到在数据库 "th114_oa" 中的页(27088:-498182872)上存在错误。
消息 3013,级别 16,状态 1,第 1 行
RESTORE DATABASE 正在异常终止。
*/
/******************************************
使用CONTINUE_AFTER_ERROR选项,能够恢复,但仍有一致性错误
*******************************************/
restore database th114_oa
from disk='D:\DESK\2010-02-05.bak'
with move 'TH114_OA_Data' to 'd:\TH114_OA_Data.MDF',
move 'TH114_OA_Log' to 'd:\TH114_OA_Log.ldf',
CONTINUE_AFTER_ERROR ,replace,
stats
/*
已处理百分之 10。
已处理百分之 20。
已处理百分之 30。
已处理百分之 40。
已处理百分之 50。
已处理百分之 60。
已处理百分之 70。
已处理百分之 80。
已处理百分之 90。
已处理百分之 100。
已为数据库 'th114_oa',文件 'TH114_OA_Data' (位于文件 1 上)处理了 5648 页。
已为数据库 'th114_oa',文件 'TH114_OA_Log' (位于文件 1 上)处理了 1 页。
正在将数据库 'th114_oa' 从版本 539 转换为当前版本 655。
数据库 'th114_oa' 正在从版本 539 升级到版本 551。
数据库 'th114_oa' 正在从版本 551 升级到版本 552。
数据库 'th114_oa' 正在从版本 552 升级到版本 611。
数据库 'th114_oa' 正在从版本 611 升级到版本 621。
数据库 'th114_oa' 正在从版本 621 升级到版本 622。
数据库 'th114_oa' 正在从版本 622 升级到版本 625。
数据库 'th114_oa' 正在从版本 625 升级到版本 626。
数据库 'th114_oa' 正在从版本 626 升级到版本 627。
数据库 'th114_oa' 正在从版本 627 升级到版本 628。
数据库 'th114_oa' 正在从版本 628 升级到版本 629。
数据库 'th114_oa' 正在从版本 629 升级到版本 630。
数据库 'th114_oa' 正在从版本 630 升级到版本 631。
数据库 'th114_oa' 正在从版本 631 升级到版本 632。
数据库 'th114_oa' 正在从版本 632 升级到版本 633。
数据库 'th114_oa' 正在从版本 633 升级到版本 634。
数据库 'th114_oa' 正在从版本 634 升级到版本 635。
数据库 'th114_oa' 正在从版本 635 升级到版本 636。
数据库 'th114_oa' 正在从版本 636 升级到版本 637。
数据库 'th114_oa' 正在从版本 637 升级到版本 638。
数据库 'th114_oa' 正在从版本 638 升级到版本 639。
数据库 'th114_oa' 正在从版本 639 升级到版本 640。
数据库 'th114_oa' 正在从版本 640 升级到版本 641。
数据库 'th114_oa' 正在从版本 641 升级到版本 642。
数据库 'th114_oa' 正在从版本 642 升级到版本 643。
数据库 'th114_oa' 正在从版本 643 升级到版本 644。
数据库 'th114_oa' 正在从版本 644 升级到版本 645。
数据库 'th114_oa' 正在从版本 645 升级到版本 646。
数据库 'th114_oa' 正在从版本 646 升级到版本 647。
数据库 'th114_oa' 正在从版本 647 升级到版本 648。
数据库 'th114_oa' 正在从版本 648 升级到版本 649。
数据库 'th114_oa' 正在从版本 649 升级到版本 650。
数据库 'th114_oa' 正在从版本 650 升级到版本 651。
数据库 'th114_oa' 正在从版本 651 升级到版本 652。
数据库 'th114_oa' 正在从版本 652 升级到版本 653。
数据库 'th114_oa' 正在从版本 653 升级到版本 654。
数据库 'th114_oa' 正在从版本 654 升级到版本 655。
检测到该备份集损坏。
RESTORE WITH CONTINUE_AFTER_ERROR 成功完成,但遇到了一些损坏。数据库中可能存在不一致的地方。
RESTORE DATABASE 成功处理了 5649 页,花费 2.425 秒(18.196 MB/秒)。
*/
/******************************************
DBCC 不报一致性错误,但出现其他问题,搞不懂,但可以查询表数据
*******************************************/
alter database th114_oa set single_user
dbcc checkdb('th114_oa',repair_allow_data_loss)
/*
有些错误看起来是没办法修复了,估计是跟加密有关
*/
/******************************************
重新备份
*******************************************/
backup database th114_oa
to disk='d:\th114_oa_ok.bak'
with stats
/*
已处理百分之 10。
已处理百分之 20。
已处理百分之 31。
已处理百分之 40。
已处理百分之 50。
已处理百分之 60。
已处理百分之 70。
已处理百分之 81。
已处理百分之 90。
已为数据库 'th114_oa',文件 'TH114_OA_Data' (位于文件 1 上)处理了 6248 页。
已处理百分之 100。
已为数据库 'th114_oa',文件 'TH114_OA_Log' (位于文件 1 上)处理了 2 页。
BACKUP DATABASE 成功处理了 6250 页,花费 2.555 秒(19.110 MB/秒)。
*/
/******************************************
验证备份的有效性,看起来是有效的。
*******************************************/
restore verifyonly from disk='d:\th114_oa_ok.bak'
/*
文件 1 上的备份集有效。
*/