异常关机后,金蝶帐套突然无法访问,发现数据库置疑,使用此方案解决:

注意:在做任何修复操作之前,请务必备份.mdf/.ndf以及.ldf文件。

一般情况下这样可以解决:

1、将数据库设置为应急状态

ALTER DATABASE AIS20150723104254 SET emergency

2、将数据库设置为单用户模式

ALTER DATABASE AIS20150723104254 SET SINGLE_USER

3、对数据库进行检查修复

DBCC CheckDB (AIS20150723104254, REPAIR_ALLOW_DATA_LOSS)

REPAIR_ALLOW_DATA_LOSS代表,若此错误不能修复时,系统将直接删除相关数据。

DBCC  checkdb (AIS20150723104254, REPAIR_REBUILD)

尝试直接修复数据库错误

使用上面两个语句进行数据库检查修复,如果返回结果中没有了红色的提示文字,说明修复成功

此数据库执行CHECKDB的过程中发现一些表的索引被破坏,于是针对具体的表进行重建索引的操作:

DBCC DBREINDEX(表名)

完成后可以运行dbcc checkdb(db_name)检查数据库的完整性.

4、最后,取消单用户模式即可。

exec sp_dboption AIS20150723104254, N'single', N'false'

ALTER DATABASE AIS20151130094910 SET MULTI_USER

日志文件损坏或丢失时,可以尝试此方法:

方法一:

先停止数据库服务,备份数据文件(MDF/LDF):

A. 我们使用默认方式建立一个供恢复使用的数据库(如AIS20131106110002)。可以在SSQL Server Management Studio里面建立。

B. 停掉数据库服务器。

C. 将刚才生成的数据库的日志文件AIS20131106110002_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件AIS20131106110002_data.mdf。

D. 启动数据库服务器。此时会看到数据库AIS20131106110002的状态为“置疑”。这时候不能对此数据库进行任何操作。

E. 设置数据库允许直接操作系统表。此操作可以在SQL Server Management Studio里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如

下语句来实现。

use   master

go

sp_configure 'allow updates',1

go

reconfigure with override

go

F. 设置AIS20131106110002为紧急修复模式

alter database AIS20131106110002 set emergency

此时可以在SQL Server Management Studio里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表

G. 下面执行真正的恢复操作,重建数据库日志文件

dbcc   rebuild_log( 'AIS20131106110002 ', 'D:\MSSQL2008\Data\AIS20131106110002_log.ldf ')

SQL 2012版本以后版本时:

alter database AIS20131106110002 Rebuild Log on (name=AIS20131106110002_log,filename='D:\MSSQL2008\AIS20131106110002_log.ldf')

执行过程中,如果遇到下列提示信息:

服务器:   消息   5030,级别   16,状态   1,行   1

未能排它地锁定数据库以执行该操作。

DBCC   执行完毕。如果   DBCC   输出了错误信息,请与系统管理员联系。

打开单用户模式即可

ALTER DATABASE AIS20131106110002 SET SINGLE_USER

alter database AIS20131106110002 set SINGLE_USER with ROLLBACK IMMEDIATE

警告:   数据库   'AIS20131106110002 '   的日志已重建。已失去事务的一致性。应运行   DBCC   CHECKDB   以验证物理一致性。

DBCC   执行完毕。如果   DBCC   输出了错误信息,请与系统管理员联系。

此时可以访问数据库里面的用户表了。

H. 验证数据库一致性(可省略)

dbcc   checkdb( 'AIS20131106110002 ')

一般执行结果如下:

CHECKDB   发现了   0   个分配错误和   0   个一致性错误(在数据库   'AIS20131106110002 '   中)。

DBCC   执行完毕。如果   DBCC   输出了错误信息,请与系统管理员联系。

如果发现出问题,可使用下面方法尝试修复:

一、

dbcc checkdb(AIS20131106110002,REPAIR_ALLOW_DATA_LOSS)

dbcc checkdb(AIS20131106110002,REPAIR_REBUILD)

二、

使用Repair_Allow_Data_Loss选项修复数据库。

优点: 可能可以恢复尽量多的数据

缺点:

a)  不一定能够将全部错误修复,还有可能越修越多。同时,需要大量时间,需要经过多次执行修复命令.十几次,甚至数十次.修复时间不能预估.

b)  就算我们将所有错误修复,我们也不能保证数据在应用程序逻辑这一层次上的数据正确性,您需要找您的应用程序提供商来检查数据在程序逻辑层次是否正确。

dbcc checkdb (‘’, REPAIR_ALLOW_DATA_LOSS) go

—此命令可能需要运行多次,才能完全修复。

三、

通过BCP,DTS,select into等方式将好的表,或者表中好的数据导出来。建议使用BCP的方法,这样可以最大限度的回复数据.BCP会停在出错的纪录上,但是前面的数据就能成功导出.使用DTS或Select into的话, 我们很难判断最大限度能导出的记录数.

优点:导出来的数据保证在应用程序逻辑这一层次的正确性

缺点:不会修复数据库中存在的错误,丢失的数据量会比较大,取决于第7步的运行结果。

二和三摘自:

I. 设置数据库为正常状态

exec sp_dboption AIS20131106110002, N'single', N'false'

ALTER DATABASE AIS20131106110002 SET MULTI_USER

如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。

J. 最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Management Studio里面恢复,也可以使用如下语句完

use master

go

sp_configure 'allow updates',0

go

reconfigure with override

go

注意,SQL2012后,系统无sp_dboption这个存储过程,可以用附件文本的方式,在MASTER中创建此存储过程即可。

方法二:

1、把问题数据库文件备份到其它目录

停掉SQLSERVER服务,把服务器上出问题的数据库, 假设名称为 ErrorDB的数据库文件及日志文件备份复制到其他目录,然后直接将其删除,把其数据库文件及日志文件也删除

2、新建同名数据库

启动SQLSERVER服务,新建同名数据库ErrorDB,文件目录和文件名和原来一致

3、用备份的数据库文件替换新的数据库文件

停掉SQLSERVER服务,把备份的数据库文件替换新的数据库文件(只替换数据库文件,不替换日志文件)

启动SQLSERVER服务,打开数据库,这时数据库应该是不能访问的

-------------------设置应急模式、单用户模式、检查修复数据,取消单用户模式----------------------

4、将数据库设置为应急状态

alter database ErrorDB set emergency

执行后,为了保险起见,重新停止、开启的SQLSERVER服务

再打开数据库,已经可以看到里面的内容了,如表,视图,存储过程等

数据库名称后有紧急标志,能看到数据库结构,但无法进行备份等操作

5、将数据库设置为单用户模式

ALTER DATABASE ErrorDB SET SINGLE_USER

6、对数据库进行检查修复

dbcc checkdb(ErrorDB,REPAIR_ALLOW_DATA_LOSS)

dbcc checkdb(ErrorDB,REPAIR_REBUILD)

操作后,仍然停止启动SQLSERVER服务(不确定是否需要,我只是为了想无干扰查看执行后的数据库状况)

7、取消单用户模式即可

exec sp_dboption ErrorDB, N'single', N'false'

ALTER DATABASE ErrorDB SET MULTI_USER

ais文件还原到mysql_SQLSERVER 数据库可疑的解决步骤相关推荐

  1. sql server 2008 数据库可疑的解决步骤

    没有使用微软提供的代码管理工具,在使用百度云进行同步,出现了"数据库可疑" 在网上搜索文章,经测试恢复成功,这种方法同样适用于2005,操作如下: ---------------- ...

  2. 计算机管理说文件缺失lnk,win7系统提示windows找不到文件computer management.lnk的具体解决步骤...

    近几日一些用户使用win7系统出现提示windows找不到文件computer management.lnk该怎么处理呢?下面文章就呈现了win7系统提示windows找不到文件computer ma ...

  3. ais文件还原到mysql_金蝶kis系列数据库(.ais)打开与账套恢复办法

    注意事项: 后缀名为AIB为金蝶软件的备份帐套文件,不可以直接打开,应点击"文件"菜单里的"恢复"命令,在跳出的对话框里选择后缀名为AIB的文件,只要该备份文件 ...

  4. win10打开计算机加载很慢,win10电脑文件夹打开特别慢怎么回事 文件夹假死问题快速解决步骤...

    win10系统打开文件夹速度变慢是怎么办?大家在使用电脑一段时间后,有时候打开文件夹速度变得很慢,那么怎么才能让打开文件夹的速度恢复正常呢?又是什么原因造成的文件夹打开缓慢呢?其实这就是传说中的假死现 ...

  5. bak文件转换成sql文件_将BAK文件还原到SQL数据库!

    还原数据库,例如: --返回由备份集内包含的数据库和日志文件列表组成的结果集 RESTORE FILELISTONLY FROM DISK = 'd:\Northwind.bak' --还原由BACK ...

  6. 【dmp文件还原到oralce数据库】

    1.数据库执行语句,创建一个用户并赋予权限 --创建用户 CREATE USER test2 IDENTIFIED BY 123456 DEFAULT TABLESPACE USERS TEMPORA ...

  7. server数据库标记为可疑 sql_sqlserver2008数据库被标记为可疑的解决方法.docx

    sqlserver2008数据库被标记为可疑的解决方法.docx SQL Server 2008数据库被标记为可疑 的解决方法 2011-08-23 16:36 佚名 火魔网 字号:T | T 本文我 ...

  8. SQL SERVER 2005 数据库状态为“可疑”的解决方法(转)

    SQL SERVER 2005 数据库状态为"可疑"的解决方法(转) 2010-01-04 15:10 在被设置为"可疑"后很纳闷,之前没有遇到此类情况,问了几 ...

  9. SQL SERVER 2005 数据库状态为“可疑”的解决方法

    重启服务 -------------------------------------------------- 日志文件丢了,建一个日志文件 ----------------------------- ...

最新文章

  1. 分布式锁的三种实现方式_基于 redis 的分布式锁实现
  2. 平顶山学院计算机专业是几本,平顶山学院是几本_是二本还是三本大学?
  3. when is IBASE status changed from inital to created - not answered
  4. 2021 CCPC E. 被遗忘的计划(循环卷积+快速幂)
  5. 无内存在优盘可以启动计算机吗,没有U盘不要紧,内存卡做启动盘装Win7方法
  6. MFC使用http post请求上传文件
  7. C# winform 使用DsoFramer 创建 显示office 文档
  8. 马哥Linux网络班作业(6)
  9. ubuntu安装cuda11.2
  10. Java Web 后端技术可视化
  11. 【GEE笔记】最大类间方差法(otsu、大津法)算法实现——计算阈值、图像二值化分割
  12. java中object转数组_在Java中将Object []数组转换为int []数组?
  13. 中国移动的固网宽带不再免费,该项业务收入已与中国电信相当
  14. 计算机组装电源的位置在哪,计算机组装之机箱和ATX电源
  15. jbox弹窗_强大的jquery弹出层插件jBox
  16. java基础学安卓开发_Android开发学习路线之Java基础学习
  17. Java创建文件夹及文件
  18. 股票类APP排名:同花顺第一、大智慧第二、东方财富网第三
  19. 上海迪士尼盛大开幕 高德地图带你玩转迪士尼
  20. matlab模拟角度调制系统的仿真与设计,基于Matlab的模拟通信系统的仿真设计

热门文章

  1. HDFS使用JavaAPI操作上传特定副本到datanode
  2. 湖北工业大学计算机专硕学费,2019年湖北工业大学硕士研究生学费奖助政策
  3. Java Apple_GitHub - izhaorui/AppleLogin-java: 苹果登录 Sign in with Apple 服务端校验
  4. windows和linux命令的区别,linux和windows命令区别
  5. kafka集群脚本启动失败,在kafkaServer.out中提示nohup: failed to run command `java’: No such file or directory
  6. python的selenium模块_Python中Selenium模块的使用
  7. Win7图片查看器打印不了图片怎么办
  8. vue学习:事件传递(冒泡和捕获),事件委托,jquery中的事件委托,$event 获取元素,vue事件修饰符
  9. django和mysql如何建模_Django如何设计数据模型
  10. Java分布式篇5——FastDFS