-
无日志恢复
SQL
Server
数据库方法一
1.
新建一个同名的数据库
2.
再停掉
sql
server(
注意不要分离数据库
)
3.
用原数据库的数据文件覆盖掉这个新建的数据库
4.
再重启
sql server <
/p>
5.
此时打开企业管理器时会出现置疑,先不管,执行下面的语句
(
注意修改其中的数据库名
)
6.
完成后一般就可以访问数据库中的数据了
,
这时
,
数据库本身一般还要问题
p>
,
解决办法是
,
利
用
数据库的脚本创建一个新的数据
库
,
并将数据导进去就行了
.
1.
USE
MASTER
2.
3.
GO
4.
5.
SP_CONFIGURE
'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
6.
7.
GO
8.
9.
UPDATE
SYSDATABASES SET STATUS =
32768 WHERE
NAME='
置疑的数据库
名
'
10.
11.
Go
12.
13.
sp_dboption
'
置疑的数据库名
', 'single user',
'true'
14.
15.
Go
16.
17.
DBCC
CHECKDB('
置疑的数据库名
')
18.
19.
Go
20.
21.
update
sysdatabases set status =
28 where
name='
置疑的数据库名
'
22.
23.
Go
24.
25.
sp_configure
'allow updates', 0 reconfigure with override
26.
27.
Go
28.
29.
sp_dboption
'
置疑的数据库名
', 'single user',
'false'
30.
31.
Go
无日志恢复
SQL
Server
数据库方法二
没有效果的恢复步骤
附加数据库
p>
_Rambo
讲过被删除日志文件中不存在活动日志时,可以这么做
来恢复
:
1
,分离被置疑的数据库,可
以使用
sp_detach_db
2
,附加数据库,可以使用
sp_attach_single_
file_db
但是,很遗憾,执行之后,
SQL Serv
er
质疑数据文件和日志文件不符,所以无法附加数据库数
据文
件。
DTS
数据导出
不行,无法读取
XXX
数据库,
D
TS Wizard
报告说
“
初始化上
下文发生错误
”
。
紧急模式
怡红公子讲过没有日志用于恢复时,可以这么做
:
1
,把数据库设置为
em
ergency m
ode
2
,
重新建
立一个
log
文件
3
,把
SQL Server
重新启动一下
4
,把应用数据库设置成单用户模式
5
,做
DBCC CHECKDB <
/p>
6
,如果没有什么大问题就可以把数据库状态改回去了,记得别忘
了把系统表的修改选
项关掉
我实践了一下,
把应用数据库的数据文件移走,
重新建立一个同名的数据库
XXX
,
然后停掉
SQL
服务,把原来的数据文件再覆
< br>
盖回来。之后,按照怡红公子的步骤走。
但是,也很遗憾,除了第
2
步之外,其他步骤执行
非常成功。可惜,重启
SQL Server
之后,
这个应用数据库仍然是置疑
!
不过,让我欣慰的
是,这么做之后,倒是能够
Select
数据了,让我大出一口
气。
只不过,组
件使用数据库时,报
告说
:“
发生错误
:-2147467
259,
未能在数据库
'XXX'
中运行
BEGIN
TRANSACTION
,因为该数据库处于回避恢复模式。
< br>”
最终成功恢复的全部步骤
设置数据库为紧急模
式
停掉
SQL
Server
服务
;
把应用数据库的
数据文件
XXX_
移走
;
重新建立一个同名的数据库
XXX;
停掉
SQL
服务
;
把原来的数据文件再覆盖回来
;
运行以下语句,把该数据库设置为紧急模式
;
运行
1.
Use Master
2.
3.
Go
4.
5.
sp_configure
'allow updates', 1
6.
7.
reconfigure
with override
8.
9.
Go
执行结果
:
DBCC
执行完毕。如果
DBCC
输出了错误信息,请与系统管理员联系。
已将配置选项
'allow
updates'
从
0
改为
1
。请运行
RECONFIGURE
语句以安装。
接着运行
“update sysdatabases set
status =
32768 where name =
'XXX'”
执行结果
:
(
所影响的行数为
1
行
)
重启
SQL
Server
服务
;
运行以下语句,把应用数据库设置为
Single
User
模式
;
运行
“sp_dboption 'XXX',
'single user', 'true'”