首页 > 数据库 >Windows共享认证失效SQLServer异地备份失败处理方法

Windows共享认证失效SQLServer异地备份失败处理方法

来源:互联网 2026-07-10 08:39:01

SQLServer异地备份因WindowsSMB共享认证失效而失败,本地备份正常但文件无法复制到共享目录。通过netuse命令删除旧连接并重新认证,重建共享连接后文件传输成功,返回码为0,问题解决。

文中 IP 均为脱敏后的示例地址。

Windows共享认证失效SQLServer异地备份失败处理方法

长期稳定更新的攒劲资源: >>>点此立即查看<<<

许多运维人员都曾遇到此类问题:本地备份运行正常,但异地备份始终无法获取文件。经过反复排查,往往并非网络不通或共享目录配置错误,而是由 Windows SMB 共享认证失效所致。本文将拆解一个典型场景,详细分析问题根源,并提供完整的处理步骤。

一、示例环境

以下为脱敏后的配置信息,实际环境中请根据自身 IP 和路径进行替换。

项目示例信息
数据库服务器 IP10.10.10.113
异地备份服务器 IP10.10.20.192
数据库本地备份目录F:\database\bak
异地服务器本地目录F:\10.10.10.113
异地共享访问路径\\10.10.20.192\f\10.10.10.113
备份文件ES.EMS_backup_2026_07_05_020003.bak

异地备份服务器已将本地 F: 共享,路径为:

\\10.10.20.192\f 

因此异地服务器本地的目标目录是:

F:\10.10.10.113 

数据库服务器向该目录写入文件时,使用的网络路径为:

\\10.10.20.192\f\10.10.10.113 

其中目录名 10.10.10.113 依据数据库服务器 IP 命名,便于识别。

二、问题现象

SQL Server 本地备份正常执行,文件生成在 F:\database\bak 下,例如:

F:\database\bak\ES.EMS_backup_2026_07_05_020003.bak 

但运行传输脚本后,前往异地备份服务器检查,发现 F:\10.10.10.113 目录为空。

手动执行复制命令进行测试:

copy /Y "F:\database\bak\ES.EMS_backup_2026_07_05_020003.bak" "\\10.10.20.192\f\10.10.10.113" 

返回信息为:

用户名或密码不正确。 已复制 0 个文件。 

进一步查看返回码:

echo 返回码:%errorlevel% 

输出结果:

返回码:1 

由此可见,问题并非文件缺失,而是传输过程受阻。

三、问题定位

进行常规排查,确认以下要点:

  • 本地备份文件确实存在;
  • 数据库服务器与异地备份服务器之间网络通畅;
  • 异地共享目录已正确创建;
  • 其他机器可正常写入该共享目录;
  • 唯独当前数据库服务器执行手动复制时报用户或密码错误。

综合以上信息,问题焦点明确:当前 Windows 执行账户缺乏有效的异地 SMB 共享认证,或原有共享连接中保存的认证信息已失效

SMB 认证连接失效的常见触发因素包括:

  • 数据库服务器或异地备份服务器重启;
  • Windows 用户注销或账户切换;
  • 异地备份服务器账户密码被修改;
  • Windows 凭据管理器中留存了旧密码;
  • 网络临时中断导致 SMB 会话断开;
  • 计划任务切换了执行账户;
  • 手动认证使用的账户与计划任务运行的账户不一致。

尽管可能原因较多,处理思路统一:删除旧认证,重新建立连接

四、处理步骤

1. 查看当前共享连接

在数据库服务器上查看现有网络连接:

net use 

检查列表中是否包含异地共享:

\\10.10.20.192\f 

2. 删除原有共享连接

net use "\\10.10.20.192\f" /delete 

若系统提示未找到该连接,可忽略并继续。

接着检查 Windows 凭据管理器中是否存有旧凭据:

cmdkey /list 

若发现异地服务器的旧凭据,执行删除:

cmdkey /delete:10.10.20.192 

3. 重新认证异地共享

重新建立连接:

net use "\\10.10.20.192\f" /user:10.10.20.192\Administrator * 

按提示输入异地备份服务器的管理员密码(CMD 中密码不回显)。

成功标志:

命令成功完成。 

注意:认证到共享根目录即可,无需指定子目录。

4. 验证异地目录访问

dir "\\10.10.20.192\f\10.10.10.113" 

若能正常列出目录内容,说明共享路径及认证均正常。

5. 验证异地目录写权限

echo test>"\\10.10.20.192\f\10.10.10.113\write_test.txt" 

随后在异地备份服务器上确认文件是否创建:

F:\10.10.10.113\write_test.txt 

测试完成后删除文件:

del "\\10.10.20.192\f\10.10.10.113\write_test.txt" 

6. 手工复制备份文件

确认环境正常后,执行正式复制:

copy /Y "F:\database\bak\ES.EMS_backup_2026_07_05_020003.bak" "\\10.10.20.192\f\10.10.10.113" 

对于几十 GB 的大文件,copy 命令不显示进度条,命令窗口未返回提示符表示传输进行中,请耐心等待。

传输完成标志:

已复制 1 个文件。 

检查返回码:

echo 返回码:%errorlevel% 

正常结果:

返回码:0 

7. 验证异地文件

从数据库服务器查看异地文件:

dir "\\10.10.20.192\f\10.10.10.113\ES.EMS_backup_2026_07_05_020003.bak" 

在异地备份服务器本地确认:

dir "F:\10.10.10.113\ES.EMS_backup_2026_07_05_020003.bak" 

同时查看本地原文件大小:

dir "F:\database\bak\ES.EMS_backup_2026_07_05_020003.bak" 

两边字节数一致,方可确认传输完整。

五、传输脚本整改

原脚本在复制完成后直接输出“传输成功”,存在隐患。正确做法是检查返回码:

xcopy "%source_path%\%today_file%" "%dest_path%" /Y /Z
if errorlevel 1 (
    echo [失败] 文件传输失败,返回码:%errorlevel%
    exit /b 1
)
echo [成功] 文件传输完成。

对于大文件传输,推荐使用 robocopy

robocopy "F:\database\bak" "\\10.10.20.192\f\10.10.10.113" "ES.EMS_backup_2026_07_05_*.bak" /Z /R:3 /W:10 

返回码判断:

if errorlevel 8 (
    echo [失败] Robocopy传输失败,返回码:%errorlevel%
    exit /b 2
)

注意:robocopy 返回码小于 8 通常不表示复制失败,但保留判断更严谨。

传输完成后,建议增加校验步骤,确认异地文件是否存在:

if not exist "\\10.10.20.192\f\10.10.10.113\备份文件名.bak" (
    echo [失败] 异地目录未找到备份文件。
    exit /b 3
)

六、计划任务注意事项

许多用户遇到手动复制成功但计划任务失败的情况。关键在于 SMB 认证与 Windows 运行账户绑定。

需注意以下几点:

  • 计划任务必须指定一个固定的 Windows 账户运行;
  • 该账户应与手动执行 net use 时所用的账户一致;
  • 尽量避免使用 SYSTEM 账户,因其不具备共享认证;
  • 记得勾选“使用最高权限运行”;
  • 脚本中务必记录复制返回码;
  • 传输完成后,需校验异地文件是否存在及大小一致性。

七、结论

回顾本次问题,既非备份文件异常,也非网络中断,更非异地共享目录配置错误。根本原因在于:数据库服务器当前 Windows 执行账户缺少有效的 SMB 共享认证

解决方法简单明确——重新执行认证:

net use "\\10.10.20.192\f" /user:10.10.20.192\Administrator * 

然后再次执行复制:

copy /Y "F:\database\bak\ES.EMS_backup_2026_07_05_020003.bak" "\\10.10.20.192\f\10.10.10.113"

文件成功传输至异地服务器 F:\10.10.10.113 目录,返回码为 0,问题解决。

该问题排查过程虽看似简单,实则容易走弯路。希望本文的梳理能够帮助运维人员在类似场景中快速定位并解决问题。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备2026025700号-3 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。