问题描述:
通过SSMS以有远程UNC路径写入权限的账号执行以下命令:
1
|
BACKUP
DATABASE
master
TO
DISK =
'\\192.168.11.108\szsql01_backup\SystemDB\master.bak'
;
|
遇到如下不报错:
消息 3201,级别 16,状态 1,第 1 行
无法打开备份设备 '\\192.168.11.108\szsql01_backup\SystemDB\master.bak'。出现操作系统错误 1326(登录失败: 未知的用户名或错误密码。)。
消息 3013,级别 16,状态 1,第 1 行
BACKUP DATABASE 正在异常终止。
SQL Server错误日志描述如下:
BackupDiskFile::CreateMedia: Backup device '\\192.168.11.108\szsql01_backup\SystemDB\master.bak' failed to create. Operating system error 1326
验证错误:
我通过xp_cmdshell查询远程共享目录:
1
|
xp_cmdshell
'dir \\192.168.11.108\szsql01_backup\SystemDB '
|
将会返回以下错误:
Logon failure: unknown user name or bad password.
解决方法:
这是个账号验证问题。我们需要确保映射一个磁盘到SQL Server。正如联机帮助所述:
“For a network share to be visible to SQL Server, the share must be mapped as a network drive in the session in which SQL Server is running”
使用如下命令映射共享目录到Z:
1
|
EXEC
xp_cmdshell
'net use Z: \\192.168.11.108\szsql01_backup\SystemDB xxxxxxxx /User:domain\user'
|
执行成功后,我们查询Z:来验证:
1
|
EXEC
xp_cmdshell
'dir Z:\ '
|
之后,Z:在SQL Server中可以作为映射的磁盘来备份数据。
1
|
BACKUP
DATABASE
master
TO
DISK =
'Z:\master.bak'
;
|
深入阅读:
创建备份设备或者创建启动存储过程来映射磁盘
其他用途:
当镜像服务器磁盘空间不足时,我们可以通过将远程共享路径映射到本地磁盘。将镜像数据库放到该映射磁盘上来做异步镜像。