我正在尝试将一些数据库备份文件恢复到同一个数据库中。该.bak
文件总是在制造问题。当我.bak
从网络驱动器中选择文件时,"\\TestPC\ShareFolder\test.bak"
它可以正常工作。
但是,.bak
如果我通过将本地驱动器复制到我的电脑来选择相同的文件,C:\TestPath\test.bak
那么每次抛出异常时都会说
无法打开备份设备“C:\TestPath\test.bak”。操作系统错误3(系统找不到指定的路径。)。
RESTORE DATABASE 异常终止。
我不知道它为什么会抛出,我也将 SQL Server 登录从网络驱动器更改为本地连接。仍然无法正常工作。有人可以提示我如何解决这个问题吗?
例如,如果您想将
*.bak
文件恢复到机器上TESTSERVER
,那么该*.bak
文件需要TESTSERVER
,或:TESTSERVER
可以到达的网络共享上(“公共”共享)因此,如果您
*.bak
在本地 PC 上有该文件MyPC
,您可以尝试从中进行还原\\MyPC\C$\ShareFolder\Backupfile.bak
,这可能会或可能不会起作用。但是您不能使用
C:\ShareFolder\Backupfile.bak
,因为它会转到服务器的C:\ 驱动器并查找该文件 - 因此您会收到错误消息并且无法找到它。毕竟:您的 SQL Server 实例正在运行
TESTSERVER
- 因此,如果该进程从 C:\ 驱动器执行恢复,那将是该服务器计算机上的 C:\ 驱动器-而不是您的本地 PC!如果该服务器进程TESTSERVER
可以访问您的计算机,那么您可以使用本地磁盘的 UNC 路径表示法 - 这样可能会起作用。因此,您将备份文件放在本地,然后 Sql Server 必须通过或读取它(因为 sql server 对您
\\YourPC\c$\TestPath\test.bak
的磁盘 C一无所知- 这仅在域网络中才有可能,并且您授予帐户本地管理员权限,sql server在下运行,或者您必须共享您的 TestPath 文件夹并授予 sql server 的帐户访问权限但
如果有 Windows 域环境,则在 LocalSystem 下运行 sql server 并设置共享权限以访问用户 DOMAINNAME\SQLSERVERPC$ 其中 SQLSERVERPC 是运行在其上的 machinesql server 的名称
如果没有任何可用的域身份验证,那么您需要打开来宾身份验证以在备份文件机器上共享