数据库置疑(可疑状态)的修复方法
来源:互联网 发布:知乎日报 瞎扯合集 编辑:程序博客网 时间:2024/05/16 14:52
首先要强调的是最好要在此数据库断开所有连接,没有未被提交的事务的状态下关掉数据库,否则可能会引起日志文件无法重做。
有如下几种可行的方案:
1.一般情况
ALTER DATABASE DatabaseName SET EMERGENCY
ALTER DATABASE DatabaseName SET SINGLE_USER
DBCC CheckDB (DatabaseName, REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE DatabaseName SET multi_USER
按以上语句操作便可恢复数据库状态
2,最快速方法
分离此数据库,把日志文件备份转移到别的文件夹下,附加此数据库下的所有数据文件,不要日志文件,附加后会自动重新创建日志文件,这种方法数据库在最短时间内便可恢复,但恢复后最好用如下语句修复数据库以免留下后遗症
DBCC CheckDB (DatabaseName, REPAIR_ALLOW_DATA_LOSS)
3,若数据库可疑不能执行以上操作语句,还可按下面的步骤执行就能解决问题
SQL Server 2005/2008/2008R2修复步骤
方法一
alter database <DatabaseName>set emergency
go
alter database <DatabaseName>set single_user with rollback immediate
go
use master
go
alter database <DatabaseName>Rebuild Log on
(name=<DatabaseName>_log,filename='c:\sql\logs\<DatabaseName>_log.LDF')
go
select * from sys.databases
go
dbcc checkdb('<DatabaseName>', repair_allow_data_loss)
go
sp_dboption '<DatabaseName>','single user','false'
方法二
alter database <DatabaseName> set emergency
go
alter database <DatabaseName> set single_user with rollback immediate
go
use master
go
alter database <DatabaseName> Rebuild Log on
(name=<DatabaseName>_log,filename='c:\sql\logs\<DatabaseName>_log.LDF')
go
use <DatabaseName>
go
dbcc checkdb
go
--此时checkdb有错误才需要做步骤d)
d) 此时数据库应处于emergency状态,创建一个新数据库,通过bcp/bulk insert/DTS/SSIS方式将数据导出到新的数据库.
请注意,这种情况下索引,存储过程,视图等,都需要手工导出来。
4.若数据库不能切换为单用户模式或者无法操作或者非正常关闭,那就需要将数据库分离或者脱机或者关掉数据库服务,使其MDF文件和NDF文件可用,
重新创建同名数据库,同时按照待恢复的数据库相同的NDF文件创建时间顺序创建每个NDF文件,创建好后用如下这样的语句用待恢复的数据文件替换现有库文件
ALTER DATABASE databasename
MODIFY FILE (NAME =logicName,
FILENAME ='H:\file\name.ndf')
ALTER DATABASE databasename
MODIFY FILE (NAME =logicName,
FILENAME ='H:\file\name_log.ldf')
替换后重新启动数据库服务,再按如下步骤执行
alter database <DatabaseName>set emergency
go
alter database <DatabaseName>set single_user with rollback immediate
go
use master
go
alter database <DatabaseName>Rebuild Log on
(name=<DatabaseName>_log,filename='c:\sql\logs\<DatabaseName>_log.LDF')
go
select * from sys.databases
go
dbcc checkdb('<DatabaseName>', repair_allow_data_loss)
go
sp_dboption '<DatabaseName>','single user','false'
- 数据库置疑(可疑状态)的修复方法
- MS SQL Server 2005数据库可疑、置疑修复方法
- MS SQL Server 2005数据库可疑、置疑修复方法
- 修复数据库置疑的语法
- sql server 2008 数据库置疑的修复方法
- sql server2005 可疑或置疑修复
- 修复可疑数据库.
- MS数据库可疑修复
- 修复MSSQLSERVER数据库置疑的步骤
- SQL2000置疑数据库修复
- SQL数据库置疑修复
- 数据库置疑的处理方法
- 数据库置疑的处理方法
- 数据库置疑的还原方法
- MS SqL2000 数据库置疑状态的解决方法
- MS SqL2000 数据库置疑状态的解决方法
- 修复Pubwin EP置疑数据库
- mssql数据库823置疑修复
- 数组初始化才能使用
- 给qemu虚拟机加硬盘,分区,自动挂在
- 用bootstrap写弹窗,页面抖动问题
- ubuntu安装mac主题
- layoutSubviews和drawRect
- 数据库置疑(可疑状态)的修复方法
- 【转】RSA,DSA等加解密算法介绍 (2013-02-06 15:39:10)
- Android Toast工具类
- AP(接入点)模式、Router(无线路由)模式、Repeater(中继)模式、Bridge(桥接)模式、 Client(客户端)模式
- 有道翻译官电脑版下载 v2.0.1
- 上传App Store的截图尺寸
- C1FlexDataGrid数据源设为DataTable后,如何通过界面获取DataRow
- 命令调用C#程序, 路径参数解析错误
- SSH框架no session错误