将一台机器的服务器数据库备份还原SQL到另一台
Restore SQL Server database backup of one machine to another
场景:
- 我在一台机器上有一个数据库备份 (
abc.bak
)
- 我将它复制到另一台机器到某个路径比方说
G:\SQLDB\backup\master_copy.bak
- 我使用了以下 T-SQL 来尝试恢复 - 但我遇到了错误。
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
场景:
- 我在一台机器上有一个数据库备份 (
abc.bak
) - 我将它复制到另一台机器到某个路径比方说
G:\SQLDB\backup\master_copy.bak
- 我使用了以下 T-SQL 来尝试恢复 - 但我遇到了错误。
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