[真诚求助]恢复数据库
由于本人刚刚学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 '