SQL 2008 可疑状态,数据库好像损坏了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 2008 可疑状态,数据库好像损坏了相关的知识,希望对你有一定的参考价值。

断电,SQL 2008 可疑状态,网络很多方法都试了,

当执行到:
dbcc checkdb(jfyplm,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(jfyplm,REPAIR_REBUILD) 时出现了错误。

个人觉得数据库文件是不是已经损坏了?如果损坏了,要怎么修复,

楼主,你好!这类问题我自己没有碰到过,当然也就没有经验。我这边有一个可以参考的网址,你可以去看看,或许有所帮助。

网址1:http://www.itpub.net/thread-49776-1-1.html(这个也是断电)

网址2:http://www.itpub.net/tree/index_105_1/(这个是MSSQLServer问题的总目录)

另,附图两张。


以上希望能帮助到你。

参考技术A 最好是重建数据库日志,具体方法如下:
--注:example为测试用数据库,相应的Example_log.ldf为测试用的日志文件
use master
go
alter database example set emergency
go
--置数据库为单用户模式
alter database example set single_user with rollback immediate
go
--重建数据库日志文件(执行这一步之前需先删除该文件夹下的相应日志,如本例所示应先删除Example_log.ldf。)
alter database example Rebuild Log on (name=Example_log,filename='C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\Example_log.ldf')
go
--最后设置数据库为多用户模式。
alter database example set multi_user
go
dbcc checkdb('example')
go
use Example
go
参考技术B 你的数据库文件损坏了,只能是从之前你备份的文件来恢复。追问

我之前备份还是6月份的,名称为:jfyplm201306141730.bak

请问怎么恢复?能具体讲下步骤吗?

另外:我把 jfyplm201306141730.bak 附加进去,发现逻辑名称和文件名称是这样的?

请问逻辑名称和文件名称有什么区别?

我如果要新建一个一样的数据库,名称也是按照这样写吗?

追答

只能利用bak恢复了,首先关闭所有与数据库的链接,具体操作你可以上网查一下。

选择你要恢复的数据库,右键,选择“还原数据库” ;

常规选项 里---在“还原的源” , 选择“源设备”后面的“...”按钮 , 弹出一个小窗体,点击“添加”按钮,选择要恢复的jfyplm201306141730.bak文件;

选项 中---把覆盖现有数据库选中(这里会把数据库的数据都覆盖掉,所以你的数据肯定会回到20130614那天的数据)

SQL SERVER数据库状态(脱机,联机,可疑)及SQL设置语句详解

 

 
首先我们应该知道数据库总是处于一个特定的状态中,下面先来了解一下数据库的常见的三种状态:
1,脱机:我们可以在Microsoft SQL Server Management中看到该数据库,但该数据库名称旁边有"脱机"的字样,说明该数据库现在虽然存在于数据库引擎实例中,但是不可以执行任何有效的数据操作,比如新增,修改,删除等,这就是脱机状态。

2,联机:该状态为数据库正常状态,也就是我们常看到的数据库的状态,该状态下的数据库处于可操作状态,可以对数据库进行任何权限内的操作。

3,可疑:和"脱机"状态一样,我们可以在Microsoft SQL Server Management中看到该数据库,但该数据库名称旁边有"可疑"的字样,这说明至少主文件组可疑或可能已损坏。

如何利用SQL命令查看数据库状态
可利用sys.databases表.在该表的state_desc列中标记了数据库的状态,sql语句如下:
select name,state_desc from sys.databases


可视化设置数据库状态
设置为脱机:在Microsoft SQL SERVER Management中打开该数据库,在该数据库上右击,在右键菜单选择"任务"- >"脱机"

设置为联机:如果数据库的现在状态为脱机,则可在Microsoft SQL SERVER Management中打开该数据库,在该数据库上右击,在右键菜单选择"任务"- >"联机"

可疑:该状态为数据库自动测试数据文件的状态。

利用SQL命令设置数据库状态
设置为脱机的SQL语句如下:
EXEC sp_dboption ‘数据库名称‘, ‘offline‘, ‘TRUE‘

或者
ALTER DATABASE 数据库名称
SET OFFLINE


设置为联机的SQL语句如下:
ALTER DATABASE 数据库名称
SET ONLINE


说明:
·虽然SQL SERVER数据库的脱机与联机是两个很简单的概念,但是它却能在细微之处反映我们的开发人员对数据库的基础知识的了解程度,所以还是希望大家能够清楚的了解数据库的状态及改变数据库状态的SQL命令。

·如果我们在复制数据库的源文件的时候提示该文件正在使用,我们可以先设置数据库为脱机再复制。

以上是关于SQL 2008 可疑状态,数据库好像损坏了的主要内容,如果未能解决你的问题,请参考以下文章

为啥sql server 2008r2 数据库出现"可疑"导致无法访问

用友U8 2008r2数据库 变为可疑状态修复

SQL2008断电 出现可疑的修复

怎么还原sql2008数据库 heroes可疑

sql server 2008 数据库提示为可疑是啥意思

SQL数据库可疑恢复 挂起恢复 置疑恢复 SQL数据库无法附加修复 附加报错 9003