Windows共享认证失效导致SQL Server异地备份失败的处理方法

2026-07-07 143545 代码

SQL Server异地备份失败,别让SMB认证问题中断你的数据保护,本文手把手教你排查共享连接、删除旧凭据、重新认证,并修复传输脚本,学习如何确保备份文件完整传输到异地服务器,避免数据丢失风险,需要的朋友可以参考下

目录
  • 一、示例环境
  • 二、问题现象
  • 三、问题定位
  • 四、处理步骤
    • 1. 查看当前共享连接
    • 2. 删除原有共享连接
    • 3. 重新认证异地共享
    • 4. 验证异地目录是否可以访问
    • 5. 验证异地目录写权限
    • 6. 手工复制备份文件
    • 7. 验证异地文件
  • 五、传输脚本整改
    • 六、计划任务注意事项
      • 七、结论

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

        一、示例环境

        项目 示例信息
        数据库服务器 IP 10.10.10.113
        异地备份服务器 IP 10.10.20.192
        数据库本地备份目录 F:\databasebak
        异地服务器本地目录 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:\databasebak\ES.EMS_backup_2026_07_05_020003.bak 

        但传输脚本执行后,异地备份服务器目录中没有对应文件:

        F:\10.10.10.113 

        在数据库服务器上手工执行复制命令:

        copy /Y "F:\databasebak\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. 查看当前共享连接

        在数据库服务器 CMD 中执行:

        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:\databasebak\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:\databasebak\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:\databasebak" "\\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:\databasebak\ES.EMS_backup_2026_07_05_020003.bak" "\\10.10.20.192\f\10.10.10.113\"

        文件成功传输至异地服务器:

        F:\10.10.10.113 

        返回码为 0,问题解决。

        到此这篇关于Windows共享认证失效导致SQL Server异地备份失败的处理方法的文章就介绍到这了,更多相关Windows SQL Server异地备份失败内容请搜索就爱读以前的文章或继续浏览下面的相关文章希望大家以后多多支持就爱读!

        您可能感兴趣的文章:

        • MySQL5.7.44-winx64版本Windows Server下载安装过程
        • SQL Server的Windows身份验证和sa登录都被禁用的完美解决方法
        • SQL Server使用Windows身份验证与JDBC连接数据库的操作流程
        • Windows开启SQL Server服务及1433端口详细教程
        • 配置Windows防火墙允许SQL Server远程连接的实现

        mysql数据库双机热备份实现

        这篇文章主要介绍了mysql数据库双机热备份实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教 目录mysql数据库双机热备份1.环境准备2.主从复制两台机器同时操作主服务器master配置从服务器slave配置测试同步3.主主复制服务器A配置(192.168.111.136)服务器B配置(192.168.111.137)配置双向复制验证复制状态总结mysql...

        V社防黄牛失效?Steam Machine预订资格遭疯狂倒卖

          尽管Valve为SteamMachine的首发引入了随机排队系统以抑制黄牛炒作,但二手交易平台eBay上依然涌现出大量倒卖预订资格的链接。这些卖家出售的并非实体设备,而是Valve发送的确认进入购买队列的电子邮件截图。由于Valve允许用户登记多个型号以提高中签几率,目前eBay上被倒卖的多为512GB基础版。   目前,已有买家愿意为这种“购买承诺”支付溢价。一个包含手柄的512GB套装(官...

        Ubuntu SSH密码登录失效的修复指南

        这篇文章主要介绍了Ubuntu SSH强制密钥登录配置不生效的排查与修复,涵盖Password Authentication设置、ssh d运行时配置及Authentication Methods限制的详细解析与解决步骤,需要的朋友可以参考下 目录UbuntuSSH强制密钥登录:配置不生效的排查与修复排查步骤常见错误与处理恢复密钥认证(运维后必做)UbuntuSSH强制密钥登录:配置不生效的排查与...

        MySQL查询使用函数导致索引失效问题的优化技巧

        这段文章详细讲解了SQL查询中使用字符串和日期函数导致索引失效的问题,并提供了优化方案和实战案例,通过避免函数包裹表字段、使用LIKE前缀匹配、新增冗余字段等方法,有效提升查询性能 目录一、前言二、核心问题:字段加函数为什么不走索引?1.索引存储规则2.函数运算破坏有序性3.专业术语:隐式转换+函数操作=无法范围扫描反面:常量加函数不影响索引三、三大类函数场景优化方案场景1:字符串处理函数(SUB...

        MySQL数据库备份与还原的方案及具体命令行操作

        众所周知备份与还原是数据库管理中不可或缺的部分,这篇文章主要介绍了MySQL数据库备份与还原的方案及具体命令行操作的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下 目录MySQL数据库备份与还原详细解读一、备份类型与核心工具核心备份工具二、推荐备份方案方案1:小型数据库(<100GB)——逻辑备份(mysqldump)方案2:中型数据库(100GB~1TB)——多线程逻辑备份(m...

        一文系统梳理MySQL数据库索引失效的七个场景

        本文系统梳理了 MySQL 索引失效的七种常见场景,从函数运算、隐式类型转换到优化器主动放弃索引,给出失败示例和原因,帮助读者理解和避免出现索引失效情况 目录明明建了索引,为什么还是慢索引失效的本质场景一:对索引列做函数运算场景二:隐式类型转换场景三:隐式字符编码转换场景四:LIKE左模糊匹配场景五:OR连接不同索引列场景六:违反最左前缀原则场景七:数据量太小,优化器主动放弃一个公式:索引为什么会...

        Oracle 索引失效的常见原因分析避免查询性能陷阱

        本文深入剖析Oracle中导致索引失效的16类高频场景,包括隐式类型转换、函数索引调用不当、LIKE模糊查询等前缀匹配等,帮助开发者精准诊断与优化SQL性能,感兴趣的朋友跟随小编一起看看吧 目录一、最隐蔽的杀手:隐式类型转换(ImplicitTypeConversion)💥🔍场景还原📊执行路径对比(Mermaid)二、函数索引未被“正确调用”:大小写与空格陷阱🧩🔍场景还原📊函数索引调用逻辑图三、L...

        Nginx 的Rsync备份服务实战步骤

        本文介绍了如何在Nginx服务器中使用Rsync进行数据备份,包括安装Rsync、配置rsyncd服务、执行实时和定时同步,以及结合Inotify实现文件变化触发备份的实战步骤,感兴趣的朋友一起看看吧 目录1.安装Rsync2.配置Rsync服务3.执行Rsync备份4.结合Inotify实现实时同步5.定时备份在Nginx实战中,Rsync常常用于数据备份和服务间数据同步,尤其是在搭建高可用集群...