日期:2014-05-17  浏览次数:20621 次

请教,关于还原数据库的问题
都是SQL 2000
本机数据库名:hjs_sql
(文件位置:
hjs_sql_data ---- g:\zhgl2\data\hjs_sql_data.mdf
hjs_sql_log ----- g:\zhgl2\data\hjs_sql_log.ldf
)

一、
备份文件:其他机器的SQL数据库 zx(数据库文件位置:d:\kcgl\data\zx_data.mdf)
备份时使用
BACKUP DATABASE zx TO disk='d:\kcgl\back\backup.dmp'
go

二、
现在想将backup.dmp文件恢复到hjs_sql中
使用以下语法

RESTORE DATABASE hjs_sql
FROM DISK='d:\kcgl\back\backup.dmp'
WITH MOVE 'hjs_sql_data' to 'g:\zhgl2\data\hjs_sql_data.mdf',
     MOVE 'hjs_sql_log' to 'g:\zhgl2\data\hjs_sql_log.ldf'
     
显示错误提示:
逻辑文件'hjs_sql_data'不是数据库'hjs_sql'的一部分。请使用RESTORE FILEISTONLY来列出逻辑文件名


请问一下,如果要将其他数据库的备份文件,恢复到本机数据库中(二个数据库的名字不同,位置不同),应如何操作?
(hjs_sql数据库是已创建的)

------解决方案--------------------
你zx的数据库逻辑名需要查看,或者你用企业管理器恢复,修改文件路径就可以
------解决方案--------------------
引用:
引用:你zx的数据库逻辑名需要查看,或者你用企业管理器恢复,修改文件路径就可以

能不能详细说明一下?

数据库逻辑名称不对,使用 restore filelistonly可以查看实际的文件名称,或者你用ssms还原,不用sql
------解决方案--------------------
要么你的脚本有问题,要么你的备份文件不是完整备份。按照6楼的方式用图形化界面操作看看
------解决方案--------------------
方法1:重命名。
方法2:还原的时候要选择覆盖现有数据库,否则报错。
方法3:直接删除原有数据库后再还原
------解决方案--------------------
RESTORE FILEISTONLY 查看d:\SQLdb\back\zx.dmp 这个备份里的logical file name,然后在with move里指定好就可以了。