SQL数据库无法还原,帮帮帮帮帮忙啊。。。

时间:2021-07-09 18:46:46
利用远程数据库,从客户的SQL服务器上,导出了公司软件的数据库,
想拿回来调试数据,在客户的SQL服务器上,原本数据库的mdf文件,
大约是200M多,导出来,是162M,结果,在本数据库中,却无法导入,
导入时,一开始是提示说所需空间为6.7G多,然后,把空间让够到
10G,又提示说无法导入,还说用"with ..."什么什么的语句进行尝试。

本地的操作系统和SQL的版本,与客户那边的服务器,是一样的,
以前成功过,这次不知道是怎么回事了,
请教高手。。。

10 个解决方案

#1


强制还原已存在的数据库
http://blog.csdn.net/vivianfdlpw/archive/2005/09/28/491043.aspx

#2


如果要还原的数据库不存在,查询分析器执行:

RESTORE DATABASE 数据库名
   FROM DISK='备份文件路径'
   WITH RECOVERY, 
      MOVE '数据文件逻辑名' TO '数据文件新路径', 
      MOVE '逻辑日志名' TO '日志文件新路径'

文件的逻辑名称可以执行下面的语句查看:

RESTORE FILELISTONLY
  FROM DISK='备份文件路径'

#3


. 还原完整数据库


说明  MyNwind 数据库仅供举例说明。


下例显示还原完整数据库备份。

RESTORE DATABASE MyNwind 
   FROM MyNwind_1

B. 还原完整数据库备份和差异备份
下例还原完整数据库备份后还原差异备份。另外,下例还说明如何还原媒体上的另一个备份集。差异备份追加到包含完整数据库备份的备份设备上。

RESTORE DATABASE MyNwind
   FROM MyNwind_1
   WITH NORECOVERY
RESTORE DATABASE MyNwind
   FROM MyNwind_1
   WITH FILE = 2

C. 使用 RESTART 语法还原数据库
下例使用 RESTART 选项重新启动因服务器电源故障而中断的 RESTORE 操作。

-- This database RESTORE halted prematurely due to power failure.
RESTORE DATABASE MyNwind
   FROM MyNwind_1
-- Here is the RESTORE RESTART operation.
RESTORE DATABASE MyNwind 
   FROM MyNwind_1 WITH RESTART

D. 还原数据库并移动文件
下例还原完整数据库和事务日志,并将已还原的数据库移动到 C:\Program Files\Microsoft SQL Server\MSSQL\Data 目录下。

RESTORE DATABASE MyNwind
   FROM MyNwind_1
   WITH NORECOVERY, 
      MOVE 'MyNwind' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.mdf', 
      MOVE 'MyNwindLog1' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.ldf'
RESTORE LOG MyNwind
   FROM MyNwindLog1

#4


回复人: vivianfdlpw() 

按照二楼的做法,把那个存储过程弄了进去,试了,还是不行。

按照三楼的做法,
一开始时,是这样提示的:
服务器: 消息 3257,级别 16,状态 1,行 1
磁盘卷 'C:\' 上的剩余空间不足,无法创建数据库。数据库尚需 6478299136 字节的可用空间,但只有 5440391168 字节可用。
服务器: 消息 3013,级别 16,状态 1,行 1
RESTORE DATABASE 操作异常终止。

弄了8G的空间后,则提示:
服务器: 消息 5149,级别 16,状态 1,行 1
试图扩大物理文件时,MODIFY FILE 遇到操作系统错误 112(磁盘空间不足。)。
服务器: 消息 3158,级别 16,状态 1,行 1
未能创建一个或多个文件。请考虑使用 WITH MOVE 选项来标识有效位置。
服务器: 消息 3013,级别 16,状态 1,行 1
RESTORE DATABASE 操作异常终止。


那个备份文件,是放在另外的硬盘里面,不是放在C盘。
而从客户那边备份出来的那个SQL,它原本的数据库文件存放位置,是在D盘。



iwl() 
你的方法,我没做尝试,因为,看不太懂。
不过,我会努力去试试的。


此问题,有待解决。

#5


磁盘卷 'C:\' 上的剩余空间不足,无法创建数据库,so明显的错误

#6




是不是你的备份有问题,你可以用

RESTORE FILELISTONLY

RESTORE HEADERONLY

RESTORE LABELONLY

验证一下。看看备份是不是有问题。


#7


把你的C盘整理一下,清出1G以上的空间试试.
即使数据文件不在C盘,但是SQL Server会默认占用C盘的部分空间的.

#8


新建一个同名数据库,在原有数据库上强制还原。

出现问题的可能原因:
查看
数据库-属性-选项-故障还原是不是《大容量日志记录》
如果是,改成简单。

数据库-所以任务-收缩数据库

#9


上述办法,都试过了,还是不行,
在C盘上面,空出了7.5G

数据库文件,让它保存在别的盘,空闲的磁盘空间有11G

而那个备份文件所放的分区,空闲的磁盘空间有5G


难道,这还不够空间???


这东东,真是怪事了。

#10


看来,这问题,属不正常问题了,
明天,就把这帖给结了。。。

#1


强制还原已存在的数据库
http://blog.csdn.net/vivianfdlpw/archive/2005/09/28/491043.aspx

#2


如果要还原的数据库不存在,查询分析器执行:

RESTORE DATABASE 数据库名
   FROM DISK='备份文件路径'
   WITH RECOVERY, 
      MOVE '数据文件逻辑名' TO '数据文件新路径', 
      MOVE '逻辑日志名' TO '日志文件新路径'

文件的逻辑名称可以执行下面的语句查看:

RESTORE FILELISTONLY
  FROM DISK='备份文件路径'

#3


. 还原完整数据库


说明  MyNwind 数据库仅供举例说明。


下例显示还原完整数据库备份。

RESTORE DATABASE MyNwind 
   FROM MyNwind_1

B. 还原完整数据库备份和差异备份
下例还原完整数据库备份后还原差异备份。另外,下例还说明如何还原媒体上的另一个备份集。差异备份追加到包含完整数据库备份的备份设备上。

RESTORE DATABASE MyNwind
   FROM MyNwind_1
   WITH NORECOVERY
RESTORE DATABASE MyNwind
   FROM MyNwind_1
   WITH FILE = 2

C. 使用 RESTART 语法还原数据库
下例使用 RESTART 选项重新启动因服务器电源故障而中断的 RESTORE 操作。

-- This database RESTORE halted prematurely due to power failure.
RESTORE DATABASE MyNwind
   FROM MyNwind_1
-- Here is the RESTORE RESTART operation.
RESTORE DATABASE MyNwind 
   FROM MyNwind_1 WITH RESTART

D. 还原数据库并移动文件
下例还原完整数据库和事务日志,并将已还原的数据库移动到 C:\Program Files\Microsoft SQL Server\MSSQL\Data 目录下。

RESTORE DATABASE MyNwind
   FROM MyNwind_1
   WITH NORECOVERY, 
      MOVE 'MyNwind' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.mdf', 
      MOVE 'MyNwindLog1' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.ldf'
RESTORE LOG MyNwind
   FROM MyNwindLog1

#4


回复人: vivianfdlpw() 

按照二楼的做法,把那个存储过程弄了进去,试了,还是不行。

按照三楼的做法,
一开始时,是这样提示的:
服务器: 消息 3257,级别 16,状态 1,行 1
磁盘卷 'C:\' 上的剩余空间不足,无法创建数据库。数据库尚需 6478299136 字节的可用空间,但只有 5440391168 字节可用。
服务器: 消息 3013,级别 16,状态 1,行 1
RESTORE DATABASE 操作异常终止。

弄了8G的空间后,则提示:
服务器: 消息 5149,级别 16,状态 1,行 1
试图扩大物理文件时,MODIFY FILE 遇到操作系统错误 112(磁盘空间不足。)。
服务器: 消息 3158,级别 16,状态 1,行 1
未能创建一个或多个文件。请考虑使用 WITH MOVE 选项来标识有效位置。
服务器: 消息 3013,级别 16,状态 1,行 1
RESTORE DATABASE 操作异常终止。


那个备份文件,是放在另外的硬盘里面,不是放在C盘。
而从客户那边备份出来的那个SQL,它原本的数据库文件存放位置,是在D盘。



iwl() 
你的方法,我没做尝试,因为,看不太懂。
不过,我会努力去试试的。


此问题,有待解决。

#5


磁盘卷 'C:\' 上的剩余空间不足,无法创建数据库,so明显的错误

#6




是不是你的备份有问题,你可以用

RESTORE FILELISTONLY

RESTORE HEADERONLY

RESTORE LABELONLY

验证一下。看看备份是不是有问题。


#7


把你的C盘整理一下,清出1G以上的空间试试.
即使数据文件不在C盘,但是SQL Server会默认占用C盘的部分空间的.

#8


新建一个同名数据库,在原有数据库上强制还原。

出现问题的可能原因:
查看
数据库-属性-选项-故障还原是不是《大容量日志记录》
如果是,改成简单。

数据库-所以任务-收缩数据库

#9


上述办法,都试过了,还是不行,
在C盘上面,空出了7.5G

数据库文件,让它保存在别的盘,空闲的磁盘空间有11G

而那个备份文件所放的分区,空闲的磁盘空间有5G


难道,这还不够空间???


这东东,真是怪事了。

#10


看来,这问题,属不正常问题了,
明天,就把这帖给结了。。。