Server数据库置疑的解决办法.doc_第1页
Server数据库置疑的解决办法.doc_第2页
Server数据库置疑的解决办法.doc_第3页
Server数据库置疑的解决办法.doc_第4页
Server数据库置疑的解决办法.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SqlServer数据库置疑的解决办法作者:slash 日期:2006-11-20字体大小: 小 中 大原因:通常这个问题是由于硬盘空间不够或硬盘读写错误造成的。现象:数据库后面有“置疑”字样,查看系统事务日记出现以下错误:错误1-错误:823,严重度:24,状态:2I/Oerror23(数据错误(循环冗余检查)。)detectedduringreadatoffset0x00000000200000infileC:ProgramFilesMicrosoftSQLServerMSSQLDataJiapei_Data.MDF.错误2-错误:3313,严重度:21,状态:2恢复数据库Jiapei的日志中记录的操作时出错。出错位置在日志记录ID(274:377:2)。错误3-错误:3313,严重度:21,状态:2ErrorwhileredoingloggedoperationindatabaseJiapei.ErroratlogrecordID(274:377:2).数据库可以分离,但分离后无法附加,附加时出现“823”号错误。程序突然连接不数据库了,开企业管理器发现数据库置疑!重启数据库后该数据库又找不到了.解决方法:1.新建一个同名的数据库2.再停掉sqlserver3.用suspect数据库的文件覆盖掉这个新建的同名数据库4.再重启sqlserver5.此时打开企业管理器时新建的同名数据库会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)USEMASTERGOSP_CONFIGUREALLOWUpdateS,1RECONFIGUREWITHOVERRIDEGOUpdateSYSDATABASESSETSTATUS=32768WhereNAME=置疑的同名数据库名Gosp_dboption置疑的同名数据库名,singleuser,trueGoDBCCCHECKDB(置疑的同名数据库名)Goupdatesysdatabasessetstatus=28wherename=置疑的同名数据库名Gosp_configureallowupdates,0reconfigurewithoverrideGosp_dboption置疑的同名数据库名,singleuser,trueGo6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了.外一篇:1、新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数据库文件,启动数据库,该数据库被设为suspect2、把数据库改成紧急模式:sp_configureallow,1reconfigurewithoverrideupdatesysdatabasessetstatus=32768wherename=数据库名3、把LDF文件改名,再执行DBCCREBUILD_LOG(数据库名,E:fdzzdatabasefdzz1204_Log.LDF)4、恢复数据库紧急模式updatesysdatabasessetstatus=0wherename=数据库名执行restoredatabase数据库名WITHRECOVERYsp_configureallow,0reconfigurewithoverride5、然后用DBCCCHECKDB(数据库名)看看有没有错误6、如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库。其他有用的操作:/*-重置置疑状态1.系统方法:如果sqlserver因为磁盘驱动器不再有可用空间,而不能完成数据库的恢复,那么microsoftsqlserver2000会返回错误1105并且将sysdatabases中的status列设为置疑。按下面的步骤解决这个问题:执行sp_resetstatus。语法为:sp_resetstatus数据库名用alterdatabase向数据库添加一个数据文件或日志文件。停止并重新启动sqlserver。用新的数据文件或日志文件所提供的额外空间,sqlserver应该能完成数据库的恢复。释放磁盘空间并且重新运行恢复操作。sp_resetstatus关闭数据库的置疑标志,但是原封不动地保持数据库的其它选项。-*/-2.手工重置置疑状态usemastergosp_configureallowupdates,1reconfigurewithoverridegodeclaredbnamevarchar(30)setdbname=你要处理的数据库名iftrancount0print正在进行事务处理,操作不能进行elseifsuser_id()!=1print你不是系统管理员(sa),不能进行此操作elseifnotexists(select1frommaster.sysdatabaseswherename=dbname)print你要操作的数据库不存在elseifnotexists(select1frommaster.sysdatabaseswherename=dbnameandstatus&256=256)print你的数据库没有被置疑elsebeginbegintranupdatemaster.sysdatabasessetstatus=status256wherename=dbnameiferror!=0orrowcount!=1rollbacktranelsebegincommittranprint操作成功,请重新启动SQLendendgosp_configureallowupdates,1reconfigurewithoverridego-可是现在我已经将这个数据库分离出去了,又不能附加进来,所以那个操作sp_resetstatus就玩不起来了-右键置疑状态的数据库-所有任务-脱机右键脱机状态的数据库-所有任务-联机重置置疑状态如果SQLServer因为磁盘驱动器不再有可用空间,而不能完成数据库的恢复,那么Microsoft?SQLServer?2000会返回错误1105并且将sysdatabases中的status列设为置疑。按下面的步骤解决这个问题:1.执行sp_resetstatus。2.用AlterDATABASE向数据库添加一个数据文件或日志文件。3.停止并重新启动SQLServer。用新的数据文件或日志文件所提供的额外空间,SQLServer应该能完成数据库的恢复。4.释放磁盘空间并且重新运行恢复操作。sp_resetstatus关闭数据库的置疑标志,但是原封不动地保持数据库的其它选项。注意只有在您的主要支持提供者指导下或有疑难解答建议的做法时,才可以使用sp_resetstatus。否则,可能会损坏数据库。由于该过程修改了系统表,系统管理员必须在创建这个过程前,启用系统表更新。要启用更新,使用下面的过程:USEmasterGOsp_configureallowupdates,1GORECONFIGUREWITHOVERRIDEGO过程创建后,立即禁用系统表更新:sp_configureallowupdates,0GORECONFIGUREWITHOVERRIDEGO只有系统管理员才能执行sp_resetstatus。执行该过程后,立即关闭SQLServer。语法为:sp_resetstatusdatabase_name下面的例子将关闭PRODUCTION数据库的置疑标志。sp_resetstatusPRODUCTION下面是结果集:DatabasePRODUCTIONstatusreset!WARNING:YoumustrebootSQLServerpriortoaccessingthisdatabase!sp_resetstatus存储过程代码下面是sp_resetstatus存储过程的代码:IFEXISTS(Select*fromsysobjectswherename=sp_resetstatus)DropPROCEDUREsp_resetstatusGOCreatePROCsp_resetstatusdbnamevarchar(30)ASDECLAREmsgvarchar(80)IFtrancount0BEGINPRINTCantrunsp_resetstatusfromwithinatransaction.RETURN(1)ENDIFsuser_id()!=1BEGINSelectmsg=YoumustbetheSystemAdministrator(SA)Selectmsg=msg+toexecutethisprocedure.RETURN(1)ENDIF(SelectCOUNT(*)FROMmaster.sysdatabasesWherename=dbname)!=1BEGINSelectmsg=Database+dbname+doesnotexist!PRINTmsgRETURN(1)ENDIF(SelectCOUNT(*)FROMmaster.sysdatabasesWherename=dbnameANDstatus&256=256)!=1BEGINPRINTsp_resetstatuscanonlyberunonsuspectdatabases.RETURN(1)ENDBEGINTRANUpdatemaster.sysdatabasesSETstatus=st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论