情景:
<?xml version="1.0" encoding="UTF-8"?>
<envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://example.com/api/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" soap-env:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/">
<body>
<login>
<parameters xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">username</key>
<value xsi:type="xsd:string"></value>
</item>
<item>
<key xsi:type="xsd:string">password</key>
<value xsi:type="xsd:string"></value>
</item>
</parameters>
</login>
</body>
</envelope>
)abc.bak
使用的T-SQL:
G:\SQLDB\backup\master_copy.bak
生成错误:
Msg 5133,Level 16,State 1,Line 1
文件“C:\ SQLDB \ masterdb \ master_blank.mdf”的目录查找失败,出现操作系统错误3(系统找不到指定的路径。)。Msg 3156,Level 16,State 3,Line 1
文件'coop_demo'无法还原到'C:\ SQLDB \ masterdb \ master_blank.mdf'。使用WITH MOVE标识文件的有效位置。
这里指定的路径来自新机器中不存在的旧机器。
我该如何解决这个问题?
答案 0 :(得分:2)
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_data.ndf',
MOVE 'db_lof TO 'G:\SQLDB\livedb\new_db_log.log',
REPLACE