<script type="text/javascript">
</script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
修复 SQLSERVER2000数据库 之实战经验
********************************************************************************
Author:黄山光明顶
mail:leimin@jxfw.com
version:1.0.0
date:2004-1-30
(如需转载,请注明出处!,如果有问题请发MAIL给我:-))
*******************************************************************************
我所讲的一个故事的背景是这样的,在某一个POS的项目中使用 SQLSERVER2000做前台数据库,IBM的做后台数据库。前台数据库的环境是这样的是WINDOWS2000SERVER(10USERS),数据库是 SQLSERVER2000(E)+SP3,Application是POS的收银系统(是一种实时的交易系统)。的配置是:P4XRON2.4G*2,36GHDD*5做的RAID5,1GMEMORY,HPDDS4磁带机,数据库的容量一般保持在5G左右。
因为数据比较的重要,并且数据容量也不大,我们要求的备份策略是每天在磁带机做POS_DB的全备份(一个星期7天一个循环),在晚上还在硬盘上做全部备份(MASTER,MSDB,POS_DB).这样保持双重的保险。
1.故障爆发:
2003-12-2613:00
客户报告所有的POS死机和SERVER运行速度非常的慢。经过重新启动服务器(启动到检查RAID卡时开始报警)我们发现在WINDEOWS2000SERVER的“系统日志”中有这样的信息:
Error:823,Severity:24,State:2
I/Oerror(tornpage)detectedduringreadatoffset0x0000001bf96000infile D:/DATA/POS_DB.mdf'.
SQLSERVER的“错误日志”中有这样的信息:
2003-12-1003:34:22.23spid56 Error:823,Severity:24,State:2
2003-12-1003:34:22.23spid56 I/Oerror(tornpage)detectedduringreadatoffset0x00000074964000infile 'D:/DATA/POS_DB.mdf'..
来自msdn的解释:
I/Ologicalcheckfailure:IfareadWindowsAPIcallorawriteWindowsAPIcallforadatabasefileissuccessful,butspecificlogicalchecksonthedataarenotsuccessful(atornpage,forexample),an823errorisraised.Thefollowingerrormessageisanexampleofan823errorforanI/Ologicalcheckfailure:
2003-09-0516:51:18.90spid17Error:823,Severity:24,State:2
2003-09-0516:51:18.90spid17I/Oerror(tornpage)detectedduringreadatoffset0x00000094004000infile 'F:QLData/mydb.MDF'..
Toresolvethisproblem,firstruntheDBCCCHECKDBstatementonthedatabasethatisassociatedwiththefileintheerrormessage.IftheDBCCCHECKDBstatementreportserrors,correctthoseerrorsbeforeyoutroubleshootthisproblem.IftheproblempersistsevenaftertheDBCCCHECKDBerrorshavebeencorrected,oriftheDBCCCHECKDBstatementdoesnotreportanyerrors,reviewtheMicrosoftWindowsNTsystemeventlogforanysystemerrorsordisk-relatederrors.Youcanalsocontactyourhardwarevendortorunanyappropriatediagnostics.
I/O逻辑检查失败:如果有一个WINDOWS程序在读取和写数据库文件时是成功的,但是在详细的数据逻辑检查时没有成功(比如:不完整的页), SQLSERVER会返回MSG823的错误。下面就是一个I/O逻辑检查失败MSG823的实例:
2003-09-0516:51:18.90spid17Error:823,Severity:24,State:2共4页 1 <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript">
</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
修复 SQLSERVER2000数据库 之实战经验
********************************************************************************
Author:黄山光明顶
mail:leimin@jxfw.com
version:1.0.0
date:2004-1-30
(如需转载,请注明出处!,如果有问题请发MAIL给我:-))
*******************************************************************************
我所讲的一个故事的背景是这样的,在某一个POS的项目中使用 SQLSERVER2000做前台数据库,IBM的做后台数据库。前台数据库的环境是这样的是WINDOWS2000SERVER(10USERS),数据库是 SQLSERVER2000(E)+SP3,Application是POS的收银系统(是一种实时的交易系统)。的配置是:P4XRON2.4G*2,36GHDD*5做的RAID5,1GMEMORY,HPDDS4磁带机,数据库的容量一般保持在5G左右。
因为数据比较的重要,并且数据容量也不大,我们要求的备份策略是每天在磁带机做POS_DB的全备份(一个星期7天一个循环),在晚上还在硬盘上做全部备份(MASTER,MSDB,POS_DB).这样保持双重的保险。
1.故障爆发:
2003-12-2613:00
客户报告所有的POS死机和SERVER运行速度非常的慢。经过重新启动服务器(启动到检查RAID卡时开始报警)我们发现在WINDEOWS2000SERVER的“系统日志”中有这样的信息:
Error:823,Severity:24,State:2
I/Oerror(tornpage)detectedduringreadatoffset0x0000001bf96000infile D:/DATA/POS_DB.mdf'.
SQLSERVER的“错误日志”中有这样的信息:
2003-12-1003:34:22.23spid56 Error:823,Severity:24,State:2
2003-12-1003:34:22.23spid56 I/Oerror(tornpage)detectedduringreadatoffset0x00000074964000infile 'D:/DATA/POS_DB.mdf'..
来自msdn的解释:
I/Ologicalcheckfailure:IfareadWindowsAPIcallorawriteWindowsAPIcallforadatabasefileissuccessful,butspecificlogicalchecksonthedataarenotsuccessful(atornpage,forexample),an823errorisraised.Thefollowingerrormessageisanexampleofan823errorforanI/Ologicalcheckfailure:
2003-09-0516:51:18.90spid17Error:823,Severity:24,State:2
2003-09-0516:51:18.90spid17I/Oerror(tornpage)detectedduringreadatoffset0x00000094004000infile 'F:QLData/mydb.MDF'..
Toresolvethisproblem,firstruntheDBCCCHECKDBstatementonthedatabasethatisassociatedwiththefileintheerrormessage.IftheDBCCCHECKDBstatementreportserrors,correctthoseerrorsbeforeyoutroubleshootthisproblem.IftheproblempersistsevenaftertheDBCCCHECKDBerrorshavebeencorrected,oriftheDBCCCHECKDBstatementdoesnotreportanyerrors,reviewtheMicrosoftWindowsNTsystemeventlogforanysystemerrorsordisk-relatederrors.Youcanalsocontactyourhardwarevendortorunanyappropriatediagnostics.
I/O逻辑检查失败:如果有一个WINDOWS程序在读取和写数据库文件时是成功的,但是在详细的数据逻辑检查时没有成功(比如:不完整的页), SQLSERVER会返回MSG823的错误。下面就是一个I/O逻辑检查失败MSG823的实例:
2003-09-0516:51:18.90spid17Error:823,Severity:24,State:2共4页 1 <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript">
</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>