日期:2014-05-19  浏览次数:20578 次

[真诚求助]恢复数据库
由于本人刚刚学SQL,有许多不懂,请各位前辈多多指点!
近日在书上看到一实例创建SQL数据库,是用书本的附带光盘里的bak文件进行恢复.网上都是用restore   database语句,所以本人在查询分析器中输入:
restore   database   caiwubook
from   disk= 'E:\VFPKF\示例\CHAP4\建库脚本\caiwubook.bak '

结果是:
服务器:   消息   5105,级别   16,状态   2,行   1
设备激活错误。物理文件名   'E:\图书创作\数据库开发实例\book\财务管理系统\建库脚本\caiwubook_Data.MDF '   可能有误。
服务器:   消息   3156,级别   16,状态   1,行   1
文件   'caiwubook_Data '   无法还原为   'E:\图书创作\数据库开发实例\book\财务管理系统\建库脚本\caiwubook_Data.MDF '。请使用   WITH   MOVE   选项来标识该文件的有效位置。
服务器:   消息   5105,级别   16,状态   1,行   1
设备激活错误。物理文件名   'E:\图书创作\数据库开发实例\book\财务管理系统\建库脚本\caiwubook_Log.LDF '   可能有误。
服务器:   消息   3156,级别   16,状态   1,行   1
文件   'caiwubook_Log '   无法还原为   'E:\图书创作\数据库开发实例\book\财务管理系统\建库脚本\caiwubook_Log.LDF '。请使用   WITH   MOVE   选项来标识该文件的有效位置。
服务器:   消息   3013,级别   16,状态   1,行   1
RESTORE   DATABASE   操作异常终止。


本人的SQL服务器程序和数据都是放在e盘上,从光盘上拷贝下来的数据库备份文件夹里有caiwubook.bak,caiwubook_Data.MDF,caiwubook_Log.LDF三个文件,放在E:\VFPKF\示例\CHAP4\建库脚本\里.
不知是什么原因?请赐教!!!

------解决方案--------------------
1\使用SQL直接还原数据库.

2\
RESTORE DATABASE { database_name | @database_name_var }
[ FROM < backup_device > [ ,...n ] ]
[ WITH
[ RESTRICTED_USER ]
[ [ , ] FILE = { file_number | @file_number } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] MOVE 'logical_file_name ' TO 'operating_system_file_name ' ]
[ ,...n ]
[ [ , ] KEEP_REPLICATION ]
[ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] REPLACE ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]


------解决方案--------------------
请使用 WITH MOVE 选项来标识该文件的有效位置。
指定你计算机上的存放数据文件和日志文件的位置
------解决方案--------------------
--查询需要还原的数据库的信息
RESTORE FILELISTONLY FROM DISK = N 'F:\Trans ' WITH FILE = 1 , NOUNLOAD
--还原数据库
RESTORE DATABASE [aaaa] FROM DISK = N 'F:\Trans ' WITH FILE = 1, NOUNLOAD , STATS = 10, RECOVERY , MOVE N 'ph_roadFreight_Data ' TO N 'f:\zk2.mdf ', MOVE N 'ph_roadFreight_Log ' TO N 'f:\zk2_log.ldf '