将一台机器的服务器数据库备份还原SQL到另一台

Restore SQL Server database backup of one machine to another

场景:

T-SQL 使用:

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, Level 16, State 1, Line 1
Directory lookup for the file "C:\SQLDB\masterdb\master_blank.mdf" failed with the operating system error 3(The system cannot find the path specified.).

Msg 3156, Level 16, State 3, Line 1
File 'coop_demo' cannot be restored to 'C:\SQLDB\masterdb\master_blank.mdf'. Use WITH MOVE to identify a valid location for the file.

此处给定的指定路径来自旧机器,新机器中不存在。

我该如何解决这个问题?

Jeroen 的建议是,您可能会丢失一些文件..因此要查看所有文件,请使用以下命令..

restore filelistonly from disk ='your .bak path' with file=1

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

所以如果还原文件列表显示为逻辑文件名

logicalname  
db_Data
db_Data1
db_log

现在您可以使用

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