数据库恢复出错!请高手解答
恢复备份数据库,提示出错。
RESTORE DATABASE testdb
FROM DISK = 'd:\testdb200307310000.BAK'
WITH MOVE 'testdb_Data' TO 'd:\dbdata\testdb_data.mdf',
MOVE 'testdb_Log' TO 'd:\dblog\testdb_log.mdf'
(服务器: 消息 5149,级别 16,状态 1,行 3
试图扩大物理文件时,MODIFY FILE 遇到操作系统错误 112(磁盘空间不足。)。
服务器: 消息 3158,级别 16,状态 1,行 3
未能创建一个或多个文件。请考虑使用 WITH MOVE 选项来标识有效位置。
服务器: 消息 3013,级别 16,状态 1,行 3
RESTORE DATABASE 操作异常终止。)
磁盘空间10G以上,绝对不会是空间不足。
请问各位GGMM,有没有解决方案呀。
万分感谢!
问题点数:0、回复次数:16Top
1 楼zjcxc(邹建)回复于 2003-08-02 20:08:59 得分 0
你的磁盘空间不够啊.
恢复到另一个盘试试,日志文件名最好取默认的.ldf
RESTORE DATABASE testdb
FROM DISK = 'd:\testdb200307310000.BAK'
WITH MOVE 'testdb_Data' TO 'c:\dbdata\testdb_data.mdf',
MOVE 'testdb_Log' TO 'c:\dblog\testdb_log.ldf'Top
2 楼xiaofhua(小雨点)回复于 2003-08-02 20:15:39 得分 0
我试过每个磁盘了,都是一样的提示,并且尝试在其他机器上恢复,提示同样的错误。
RESTORE DATABASE testdb
FROM DISK = 'd:\testdb200307310000.BAK'
WITH MOVE 'testdb_Data' TO 'd:\dbdata\testdb_data.mdf',
MOVE 'testdb_Log' TO 'd:\dblog\testdb_log.ldf'(输错了而已)Top
3 楼zjcxc(邹建)回复于 2003-08-02 20:32:56 得分 0
不会是你的备份文件遭到了破坏吧?
try:
RESTORE filelistonly
FROM DISK = 'd:\testdb200307310000.BAK'
检查一下,size的值是多少,是否过大.Top
4 楼xiaofhua(小雨点)回复于 2003-08-02 22:02:33 得分 0
数据文件: 4505862144 35184372080640
日志文件: 1511325696 35184372080640
我备份时选择了检查数据库备份的完整性,没有问题的,何况我的数据库也在正常使用的呀。
Top
5 楼pengdali()回复于 2003-08-02 22:12:59 得分 0
drop database testdb
go
RESTORE DATABASE testdb
FROM DISK = 'd:\testdb200307310000.BAK'
WITH MOVE 'testdb_Data' TO 'd:\dbdata\testdb_data.mdf',
MOVE 'testdb_Log' TO 'd:\dblog\testdb_log.mdf'
goTop
6 楼zjcxc(邹建)回复于 2003-08-02 22:16:27 得分 0
何况我的数据库也在正常使用的呀。
那就是说你在当前使用的数据库中还原啦.
那要用:
RESTORE DATABASE testdb
FROM DISK = 'd:\testdb200307310000.BAK'
WITH MOVE 'testdb_Data' TO 'c:\dbdata\testdb_data.mdf',
MOVE 'testdb_Log' TO 'c:\dblog\testdb_log.ldf'
,REPLACE --覆盖当前的数据库.Top
7 楼xiaofhua(小雨点)回复于 2003-08-02 22:22:59 得分 0
我是在已经删除了数据库后,执行的语句。
并且使用企业管理器的恢复数据库功能也是一样的结果。
数据库一直都在使用状态,我尝试备份了多个文件都不能恢复。
Top
8 楼pengdali()回复于 2003-08-02 22:37:44 得分 0
1、删除了数据库
2、右键数据库-->所有任务-->还原数据库-->写入你想要的新的数据库名字-->从设备-->选择设备-->添加-->选择你的文件-->确定-->确定-->选项-->改为现在的data目录的路径-->OK
其中:
"写入名字"-->不要与现在的冲突了,或选强制恢复
"改为现在的data目录的路径"-->如默认是"c:\....data\....mdf"而你现在的sql的data目录是d:\....data你就改为d:\...data\...mdfTop
9 楼xiaofhua(小雨点)回复于 2003-08-02 22:37:53 得分 0
可能我表达错了吧。
数据库是公司服务器上的,我备份了一份,在我本机及其他人的机器上进行恢复。
我的机器上是没有这个数据库的。
我也尝试过新建该数据库,然后再覆盖。都是有问题的。
开始我也以为是备份文件有问题,又重新备份了,但还是一样。
我又找到7月30号晚上的备份文件,恢复成功了。但是从8月1号开始的备份就不能恢复了。
如果说数据库物理文件损坏,为什么还能正常运行呢?太奇怪了。
Top
10 楼zjcxc(邹建)回复于 2003-08-02 22:40:02 得分 0
这真是一个奇怪的问题.Top
11 楼xiaofhua(小雨点)回复于 2003-08-02 22:59:03 得分 0
我检查过7月30日17点到7月31日0点的SQLSERVER日志,并没有做什么操作。但是为什么过了7个小时后的数据就不一样了呢?
经理逼着这两天解决,实在没办法了。万一数据库坏了,就没的救了。
大家帮我想想办法呀。
Top
12 楼zjcxc(邹建)回复于 2003-08-02 23:09:30 得分 0
试试这个办法,直接复制数据库的两个文件,在你的电脑上附加数据库,看能否加得上去.如果没有问题.再在你的电脑上做备份/还原试试.Top
13 楼pengdali()回复于 2003-08-02 23:16:24 得分 0
拷贝你的data目录下的数据库文件,步骤:
停止sql服务或脱机-->拷贝你的data目录下的数据库文件
粘贴你的数据库文件到目标机上,步骤:
右键数据库-->所有任务-->附加数据库Top
14 楼pengdali()回复于 2003-08-02 23:16:35 得分 0
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
Top
15 楼xiaofhua(小雨点)回复于 2003-08-03 20:27:45 得分 0
我的问题终于找到原因了。
我把数据库MDF文件COPY到我机器上,也是提示磁盘空间已满。后来我把这个文件压缩后COPY到本机,然后在解压缩。得到提示:只有NTFS文件系统才支持大于4G的文件。
原来FAT32格式不支持超过4G的文件,而我们公司的数据库已经有差不多5G了。
我使用NTFS格式的磁盘成功恢复了数据库。
谢谢各位!希望以后多多交流。
troublemaker015---太可恶了!版主一定要制止他呀!Top




