-
寒山
sql
数据库修复中心
/
2
、只有
m
df
文件的恢复技术
p>
由于种种原因,我们如果当时仅仅备份了
mdf
文件,那么恢复起来就是一件很麻烦的
事情了。
如果您的
mdf
文件是当前数据库产生的,那么很侥幸,也许你使用
sp_attach_db
p>
或者
sp_attach_single_file_db
可以恢复数据库,但是会出现类似下面的提示信息
设
备
激
p>
活
错
误
。
物
理
文
件
名
'C:Program
FilesMicrosoft
SQL
ServerMSSQLdatatest_'
可能有误。
已创建名为
'C:Program
FilesMicrosoft
SQL
ServerMSSQLDatatest_'
的新日志
文件。
但是,
如果您的数据库文件是从其他
计算机上复制过来的,
那么很不幸,
也许上述办法
就行不通了。你也许会得到类似下面的错误信息
服务器
:
消息
1813
,级别
16
,状态
2
,行
1
未能打开新数据库
'test'
。
CREATE
DATABASE
将终止。
设备激活错误。物理文件名
'd:test_'
可能有误。
怎么办呢?别着急,下面我们举例说明恢复办法。
A
.我们使用默认方式建立一个供恢
复使用的数据库
(
如
test)
。可以在
SQL
Server
Enterprise
Manager
里面建立。
B
.停掉数据库服务器。
C
.将刚才生成的数据库的日志文件
test_
删除,用要恢复的数据库
m
df
文件覆盖
刚才生成的数据库数据文件
test_
。
p>
D
.启动数据库服务器。此时会看到数据库
test
的状态为“置疑”
。这时候不能对此数
据库进行任何操作。
E
p>
.设置数据库允许直接操作系统表。此操作可以在
SQL
Server Enterprise Manager
里面
选
择数据库服务器,按右键,选择“属性”
,在“服务器设置”页面中将“允许对系统目录
直接修改”一项选中。也可以使用如下语句来实现。
use master
go
sp_configure
'allow updates',1
go
reconfigure with override
go
F
p>
.设置
test
为紧急修复模式
update
sysdatabases set status=-32768 where
dbid=DB_ID('test')
此时可以在
SQL Server Enterprise M
anager
里面看到该数据库处于“只读
置疑
脱机
紧
急模式”可以看到数据库里面的表,但是仅仅有系统表
G
.下面执行真正的恢复操作,重建
数据库日志文件
dbcc rebuild_log('test','C:Program
FilesMicrosoft SQL ServerMSSQLDatatest_')
执行过程中,如果遇到下列提示信息:
服务器
:
消息
5030
,级别
16
,状态
1
,行
1
未能排它地锁定数据库以执行该操作。
DBCC
执行完毕。如果
DBCC
输出了错误信息,请与系统管理员联系。
说明您的其他程序正在使用该数据库,
如果刚才您在
F
步骤中使用
SQL
Server Enterprise
Manager
打开了
test
库的系统表,那么退出
SQL
Server Enterprise
Manager
就可以了。
-
-
-
-
-
-
-
-
-
上一篇:smit详细用法
下一篇:使用debootstrap快速定制安装自己的应用系统