首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将一台机器的Server数据库备份还原到另一台计算机

将一台机器的Server数据库备份还原到另一台计算机
EN

Stack Overflow用户
提问于 2017-07-25 14:57:24
回答 1查看 597关注 0票数 0

设想情况:

  • 我在一台机器上有一个数据库备份(abc.bak)
  • 我把它复制到另一台机器到某个路径,比如说G:\SQLDB\backup\master_copy.bak
  • 我使用了下面的to来尝试和恢复,但是我得到了错误。

使用的:

代码语言:javascript
复制
RESTORE DATABASE New_DB
FROM DISK = 'G:\SQLDB\backup\master_copy.bak' 
WITH 
    MOVE 'coop_test_dat' TO 'G:\SQLDB\livedb\new_db_data.mdf',
    MOVE 'coop_test_log' TO 'G:\SQLDB\livedb\new_db_log.ldf',
    REPLACE

产生的错误:

Msg 5133,第16级,状态1,第1行 由于操作系统错误3(系统找不到指定的路径),文件"C:\SQLDB\masterdb\master_blank.mdf“的目录查找失败。 Msg 3156,16级,状态3,第1行 文件'coop_demo‘不能还原到’C:\SQLDB\master to \master_blank.mdf‘。使用“移动”标识文件的有效位置。

在这里,给定的指定路径来自旧机器,而旧机器在新机器中不存在。

我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-25 15:08:44

Jeroen的建议是,您可能缺少一些files..so来查看以下命令中使用的所有文件。

代码语言:javascript
复制
restore filelistonly from disk ='your .bak path' with file=1

上述命令的输出将显示备份的所有文件,然后可以使用restore with替换

因此,如果还原文件列表如下所示为逻辑文件名

代码语言:javascript
复制
logicalname  
db_Data
db_Data1
db_log

现在你可以用

代码语言:javascript
复制
RESTORE DATABASE New_DB
FROM DISK = 'G:\SQLDB\backup\master_copy.bak' WITH 
MOVE 'db_Data' TO 'G:\SQLDB\livedb\new_db_data.mdf',
MOVE 'db_Data1' TO 'G:\SQLDB\livedb\new_db_data1.ndf',
MOVE 'db_lof TO 'G:\SQLDB\livedb\new_db_log.log',
REPLACE
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45306941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档