备份错误消息 3201,级别 16,状态 1,第 1 行和操作系统错误 3

Md *_*han 1 sql-server backup sql-server-2012

当我在网络共享驱动器中进行备份时,下面提到了 TSQL。

Use DatabaseName
Go
Backup Database DatabaseName
To Disk=N'H:\DatabaseBackup\DatabaseName.bak';
Go
Run Code Online (Sandbox Code Playgroud)

我在 SSMS 中收到以下错误。

 Msg 3201, Level 16, State 1, Line 1
Run Code Online (Sandbox Code Playgroud)

无法打开备份设备'H:\DatabaseBackup\DatabaseName.bak'操作系统错误 3(系统找不到指定的路径。)。

Msg 3013, Level 16, State 1, Line 1
Run Code Online (Sandbox Code Playgroud)

BACKUP DATABASE 异常终止。

因为我已经通过这个 TSQL 检查了 'xp_cmdshell' 。run_value & config_value 如下:

name       minimum  maximum config_value    run_value
xp_cmdshell 0           1     1               1
Run Code Online (Sandbox Code Playgroud)

注意:这里H是我的网络共享。

任何建议将不胜感激。

Tho*_*len 6

SQL Server 只能看到在 SQL Server 服务帐户的 Windows 配置文件中映射的网络驱动器。因此,您必须以该帐户(不是您自己的)身份登录并映射驱动器,以便 SQL Server 能够将其用于备份。备份使用 SQL Server 服务帐户的凭据运行,而不是您的凭据。正如上面评论中所建议的,请尝试使用完整的 UNC 补丁(例如“\fileserver\fileshare\backups\backupfile.bak”,它不需要映射驱动器。

请注意,SQL Server 服务帐户将需要对目标的读/写权限。能够访问外部文件系统是为您的 SQL Server 服务帐户使用域帐户而不是 LOCAL SYSTEM 等的一个很好的理由。