还原数据库 SQL 脚本不起作用
Posted
技术标签:
【中文标题】还原数据库 SQL 脚本不起作用【英文标题】:Restore Database SQL script not working 【发布时间】:2016-09-07 09:38:04 【问题描述】:我用下面的方法来恢复远程服务器中的 .bak 文件,但它不工作。
restore database Status_backup
from disk = N'E:\Status bak files\Status_backup_201404302300.bak'
with
move 'Status_backup_201404302300' to N'E:\Files\Status_backup_201404302300.mdf',
move 'Status_backup_201404302300' to N'E:\Files\Status_backup_201404302300.ldf'
我遇到了错误
消息 3201,级别 16,状态 2,行 25 无法打开备份设备 'E:\Status bak 文件\Status_backup_201404302300.bak'。操作系统 错误3(系统找不到指定的路径。)。消息 3013,级别 16, State 1, Line 25 RESTORE DATABASE 异常终止。
请提出脚本中的错误是什么?
【问题讨论】:
错误信息中明确表示:“系统找不到指定的路径。”。确保备份文件存在于您指定的位置并且可供运行 SQL Server 的帐户访问。 在文件夹 10 中存在带有日期时间戳的 .bak 文件。我需要检查哪个帐户? 【参考方案1】:您的路径包含空格。添加双引号或将路径名更改为不带空格的名称。
正如在 cmets 中所证明的那样,您的实际问题是文件在另一台机器上的位置。您尝试使用本地路径访问远程文件。您应该将备份文件复制到本地计算机(显然是您的 sql 服务器所在的位置),然后使用相应的路径重试。
【讨论】:
你是把单引号换成双引号还是把路径用双引号括起来,把整个字符串用单引号括起来? 刚刚用双引号替换了单引号。有错吗? sql server 和文件在同一台电脑上吗?您是否有足够的权限进行恢复? sql server 访问文件的路径/文件权限是否足够? 现在做,错误信息告诉你什么。找出逻辑文件的确切命名方式。 再次,请查看您的错误消息。它甚至会告诉你命令,然后用谷歌搜索它的语法。如果这最终再次导致 3201 错误并且您的路径确实是正确的,那么我们仍然必须谈论不同的事情。【参考方案2】:试试这个;
RESTORE DATABASE Status_backup
FROM DISK = 'E:\Status bak files\Status_backup_201404302300.bak'
WITH
MOVE 'Status_backup_201404302300' TO 'E:\Files\Status_backup_201404302300.mdf',
MOVE 'Status_backup_201404302300_log' TO 'E:\Files\Status_backup_201404302300.ldf',
REPLACE
【讨论】:
以上是关于还原数据库 SQL 脚本不起作用的主要内容,如果未能解决你的问题,请参考以下文章