SQl数据库被置疑!!!高手请进!!

SQl数据库被置疑!!!高手请进!!,第1张

假定数据库名为AA

1将AA_logldf文件备份到其它目录下;

2将源目录下的AA_logldf文件改名为smlog_log_bakldf;

3在查询分析器中执行以下语句修改数据库的状态:

use Master

go

update sysdatabases set status=32768 where name='AA' --修改状态

go

shutdown with nowait --停止数据库服务器

go

4退出SQL并在命令行模式中执行以下代码:

sqlservr -c -T3608 -T4022 --安全模式启动SQL SERVER

5在查询分析器中执行以下语句来查看刚刚修改过状态的数据库状态:

select Name,Status from sysdatabases where Name='AA'

6在查询分析器中执行以下代码重建日志文件:

dbcc traceon(3604) --跟踪

dbcc rebuild_log('AA','AA') --文件名要有全路径和扩展名

本步骤如果成功,继续执行下一步的 *** 作,如果报错,也可以不管它继续下一步,也可以将 *** 作之前建立的同名空数据库日志文件COPY过来就行。

7在查询分析器中执行以下代码将数据库置回正常状态:

update sysdatabases set status=0 where name='AA'

8重新启动数据库后执行以下语句检查数据库:

DBCC CHECKDB --如果执行完有错误用以下910两步语句修复

9要修复数据库必需将数据库改为单用户模式:

Exec sp_dboption '数据库名称','single user','true'

10执行以下语句修复数据库:

DBCC CHECKDB('AA',REPAIR_ALLOW_DATA_LOSS)

11将数据库改为多用户模式:

Exec sp_dboption 'AA','single user','false'

12重新启动电脑,成功!

一、正规的SQL服务器需要UPS电源,以保证数据能尽可能不出错的写入到服务器中。至少要求网络交换设备断电先于服务器断电。

二、你这种情况,服务器数据已受损了,不一定能解决,当然,也不排除你运气不错。可以参考下面的 *** 作:

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

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

sp_configure 'allow', 1

reconfigure with override

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

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

DBCC REBUILD_LOG ('数据库名', 'E:\fdzz\database\fdzz1204_LogLDF' )

4、恢复数据库紧急模式

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

执行

restore database 数据库名 WITH RECOVERY

sp_configure 'allow', 0

reconfigure with override

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

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

数据库被质疑,可以使用以下语句进行修复。前题是你的数据库文件必须真实存在,不能被误删除。

--修复数据库DBCC

ALTER DATABASE test SET EMERGENCY

ALTER DATABASE test SET SINGLE_USER

DBCC CHECKDB(test,REPAIR_ALLOW_DATA_LOSS)

ALTER DATABASE test SET MULTI_USER

ALTER DATABASE test SET ONLINE

 

--如果检测到某个表读取不了数据还可以check一下表

USE test

DBCC CHECKTABLE(nihao)

1设置数据库为紧急模式

Use Master

GO

sp_configure 'allow updates', 1

reconfigure with override

GO

UPDATE sysdatabases SET status = 32768 where name = 'DB_SUSPECT'

GO

2停掉SQL Server服务:

Net STOP MSSQLSERVER

3把原始数据库的数据文件DBNAME_DATMDF,DBNAME_LOGLDF移走:

4启动SQL Server服务:

Net START MSSQLSERVER

5重新建立一个同名的数据库DB_SUSPECT;

USE master

GO

CREATE DATABASE DB_SUSPECT

ON

( NAME = DBNAME_DAT,

FILENAME = 'C:',

SIZE = 10,

FILEGROWTH = 5 )

LOG ON

( NAME = 'DBNAME_LOG',

FILENAME = 'g:',

SIZE = 5MB,

FILEGROWTH = 5MB )

GO

6设置数据库运行在单用户的模式:

USE MASTER

GO

ALTER DATABASE DB_SUSPECT SET SINGLE_USER

GO

7停掉SQL服务:

Net STOP MSSQLSERVER

8把原来的数据文件再覆盖回来:

9启动SQL Server服务:

Net START MSSQLSERVER

10重新设置SQLSERVER的状态:

USE MASTER

GO

EXEC sp_resetstatus "DB_SUSPECT"

11数据库完整性检测:

DBCC CHECKDB('DB_SUSPECT')

12恢复数据库为多用户模式:

USE MASTER

GO

ALTER DATABASE DB_SUSPECT SET MULTI_USER

GO

13恢复SQLSERVER原始的配置:

USE MATER

GO

UPDATE sysdatabases SET status = 4194320 where name = 'DB_SUSPECT'

GO

14配置SQLSERVER不允许更新系统表:

USE MASTER

GO

sp_configure 'allow updates', 0

reconfigure with override

GO

15重新启动MSSQLSERVER服务:

最好重新启动 *** 作系统

16备份数据库:

可以通过SQLSERVER企业管理器或T-SQL需要备份MASTER和DB_SUSPECT

补充一点,如果用DOMAIN\USER时,要注意对MDFLDF的所在目录的权限

以上就是关于SQl数据库被置疑!!!高手请进!!全部的内容,包括:SQl数据库被置疑!!!高手请进!!、SQL2000断电置疑,停止sql服务后,ldf文件复制没任何问题,mdf文件复制提示“数据错误,循环冗余检查、sql server2000附加数据出现wxywt21(置疑)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9365083.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存