先用
RESTORE FILELISTONLY
FROM DISK = 'd:\comcrm.dat'
可以看到备份集里的LogicalName和PhysicalName
PhysicalName先不管,你记下LogicalName就好了
RESTORE DATABASE comcrm20041217 --新库名
FROM DISK = 'd:\comcrm.dat' --存放你备份文件的位置及文件名
WITH MOVE 'comcrm_Data' TO 'c:\tcomcrm20041217.mdf', --数据文件还原后存放的新位置
MOVE 'comcrm_Log' TO 'c:\comcrm20041217.ldf' ----日志文件还原后存放的新位置
comcrm_Data,comcrm_Log就是开始记下的数据文件和日志文件的LogicalName
'c:\tcomcrm20041217.mdf','c:\comcrm20041217.ldf' 是还原成的新库的物理文件名
=================================================================
1.你可以试试直接恢复:
restore database comcrm20041217
from disk='x:\comcrm.dat'
2.如果恢复出错,则要知道备份文件的具体内容才好恢复
首先要知道你的备份文件中包含了多少个备份及每个备份的详细信息,用SQL语句:
RESTORE HEADERONLY from disk='x:\comcrm.dat'
这样,可以从上面的结果集(结果集列的含义参考SQL联机帮助,下同)中,知道你应该恢复的数据库的备份号Position列)
然后,就可以从备份文件中获取你要恢复的这次备份的详细信息:
restore filelistonly from disk='x:\comcrm.dat' with file=xx --xx是备份号
最后,你就可以用下面的语句来恢复了
restore database comcrm20041217
from disk='x:\comcrm.dat'
with file=xx
,move '数据文件名' to '实际恢复后数据文件存放的目录及文件名' --这些信息根据上面的语句查询出来的结果进行修改
,move '日志文件名' to '实际恢复后日志文件存放的目录及文件名'
============================================================
解决复制数据库后 孤立用户的问题
sql server数据库进行还原的时候需要先执行解决孤立用户的sql语句,
sp_change_users_login 'report' //查看孤立用户
sp_change_users_login 'update_one','bt31user','bt31user' //bt31user是需要解决的孤立用户,该语句是将孤立用户关联到系统库。
这里可以使用存储过程sp_change_users_login。它有三种动作,分别是report,update_one和auto_fix。
运行sp_change_users_login 'report',系统会列出当前数据库的孤立用户数。
我们只需要选择当前数据库为testdb,然后运行
sp_change_users_login 'update_one','test','test'
sp_change_users_login 'update_one','hbbt31User','hbbt31User'
系统就会提示修复了一个孤立用户。
如果没有建立test的登录用户,还可以用
sp_change_users_login 'Auto_Fix', 'test', NULL, 'testpassword'
来创建一个登录用户名为test,密码为testpassword的用户与之对应。