SQL Server置疑的产生原因与解决

数据库 SQL Server
我们今天主要向大家讲述的是sql数据库置疑之SQL Server置疑的正确解决,以下就是文章的主要内容的详细解析,望大家对其会有所收获。

文章主要描述的是sql数据库置疑之SQL Server置疑的正确解决,以及对SQL Server置疑的产生原因,以及对其在实际操作中出现的一些错误现象的具体描述,以下就是文章的主要内容的详细解析。

办法

原因:

通常这个问题是由于硬盘空间不够或硬盘读写错误造成的。

现象:

数据库后面有“SQL Server置疑”字样,查看系统事务日记出现以下错误:

错误1---------------------------------------------

错误: 823,严重度: 24,状态: 2

I/O error 23(数据错误 (循环冗余检查)。) detected during read at offset 0x00000000200000 in file

'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Jiapei_Data.MDF'.

错误2---------------------------------------------

错误: 3313,严重度: 21,状态: 2

恢复数据库 'Jiapei' 的日志中记录的操作时出错。出错位置在日志记录 ID (274:377:2)。

错误3---------------------------------------------

错误: 3313,严重度: 21,状态: 2

Error while redoing logged operation in database 'Jiapei'. Error at log record ID (274:377:2).

数据库可以分离,但分离后无法附加,附加时出现“823”号错误。

程序突然连接不数据库了,开企业管理器发现数据库SQL Server置疑!!!重启数据库后该数据库又找不到了.

解决方法:

1.新建一个同名的数据库

2.再停掉SQL Server

3.用suspect数据库的文件覆盖掉这个新建的同名数据库

4.再重启SQL Server

5.此时打开企业管理器时新建的同名数据库会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)

  1. USE MASTER  
  2. GO  
  3. SP_CONFIGURE 'ALLOW UpdateS',1 RECONFIGURE WITH OVERRIDE  
  4. GO  
  5. Update SYSDATABASES SET STATUS =32768 Where NAME='置疑的同名数据库名' 
  6. Go  
  7. sp_dboption '置疑的同名数据库名', 'single user', 'true'  
  8. Go  
  9. DBCC CHECKDB('置疑的同名数据库名')  
  10. Go  
  11. update sysdatabases set status =28 where name='置疑的同名数据库名' 
  12. Go  
  13. sp_configure 'allow updates', 0 reconfigure with override  
  14. Go  
  15. sp_dboption '置疑的同名数据库名', 'single user', 'true'  
  16. Go 

6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用

数据库的脚本创建一个新的数据库,并将数据导进去就行了.

外一篇:

1、新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数

据库文件,启动数据库,该数据库被设为suspect

2、把数据库改成紧急模式:

  1. sp_configure 'allow', 1  
  2. reconfigure with override  
  3. update sysdatabases set status = 32768 where name = '数据库名' 

3、把LDF文件改名,再执行

DBCC REBUILD_LOG ('数据库名', 'E:\fdzz\database\fdzz1204_Log.LDF' )

4、恢复数据库紧急模式

update sysdatabases set status = 0 where name = '数据库名'

执行

  1. restore database 数据库名 WITH RECOVERY  
  2. sp_configure 'allow', 0  
  3. reconfigure with override 

5、然后用DBCC CHECKDB ('数据库名')看看有没有错误

6、如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库

其他有用的操作:

/*--重置SQL Server置疑状态

1.系统方法:

如果 SQL Server 因为磁盘驱动器不再有可用空间,而不能完成数据库的恢复,

那么 microsoft? SQL Server? 2000 会返回错误 1105

并且将 sysdatabases 中的 status 列设为置疑。按下面的步骤解决这个问题:

执行 sp_resetstatus。

语法为:

sp_resetstatus '数据库名'

用 alter database 向数据库添加一个数据文件或日志文件。

停止并重新启动 SQL Server。

用新的数据文件或日志文件所提供的额外空间,SQL Server 应该能完成数据库的恢复。

释放磁盘空间并且重新运行恢复操作。

sp_resetstatus 关闭数据库的SQL Server置疑标志,但是原封不动地保持数据库的其它选项。

【编辑推荐】

  1. 对SQL Server 数据库易混淆的数据类型的描述
  2. SQL Server数据库的临时表的正确操作步骤
  3. SQL Server存储过程的命名标准如何进行?
  4. 卸载SQL Server 2005组件的正确顺序
  5. SQL Server浮点数据类型的详细解析
责任编辑:佚名 来源: 中国网管联盟
相关推荐

2010-07-22 10:02:12

SQL Server置

2010-07-02 10:53:32

SQL Server死

2009-05-04 13:43:16

SQL Server置疑数据库恢复

2009-11-30 11:01:20

MySQL与PHP产生

2010-06-30 14:15:08

SQL Server死

2010-06-29 09:56:00

SQL Server查

2010-07-20 08:35:54

SQL Server锁

2010-11-09 16:29:39

SQL Server死

2010-05-20 10:00:58

MySQL 中文乱码

2024-01-19 20:42:08

Redis数据库Key

2010-09-08 15:28:50

SQL Server复制

2011-08-22 15:31:51

SQL Servermssqlserver数据库复制

2011-04-02 16:39:53

SQL Server查询

2010-05-31 10:45:09

MySQL+tomca

2010-08-20 11:28:45

DB2 -964问题

2010-07-26 14:09:32

SQL Server

2010-07-08 14:24:21

SQL Server

2010-05-28 18:05:22

jsp MySQL

2010-06-18 12:37:04

SQL Server查

2022-05-11 07:41:55

死锁运算线程
点赞
收藏

51CTO技术栈公众号