20230325-SQLServer备份失败

在这里插入图片描述

问题现象:

定时备份失败。

备份日志:

Microsoft(R) 服务器维护实用工具(Unicode)版本 11.0.5058
报告是在“192.168.0.100”上生成的。
维护计划: new_db_backup
持续时间: 00:00:00
状态: 警告: 一项或多项任务失败。
详细信息:
备份数据库(完整) (192.168.0.100)
在 本地服务器连接 上备份数据库
数据库:cjc
类型: 完整
追加现有
任务开始: 2018-08-28T08:19:34。
任务结束: 2018-08-28T08:19:34。
失败:(-1073548784) 执行查询“BACKUP DATABASE [cjc] TO  DISK = N'E:...”失败,错误如下:“无法打开备份设备 'E:\\new_backup\\db\\cjc_backup_2018_08_28_081934_3295912.bak'。出现操作系统错误 5(拒绝访问。)。
BACKUP DATABASE 正在异常终止。”。失败的原因可能有: 查询本身有问题、未正确设置 "ResultSet" 属性、未正确设置参数或未正确建立连接。
命令:BACKUP DATABASE [cjc] TO  DISK = N''E:\new_backup\db\cjc_backup_2018_08_28_081934_3295912.bak'' WITH  RETAINDAYS = 7, NOFORMAT, NOINIT,  NAME = N''cjc_backup_2018_08_28_081934_3295912'', SKIP, REWIND, NOUNLOAD, COMPRESSION,  STATS = 10
GO

错误原因:

E:\new_backup\db权限不足

解决方案:

授予Authenticated Users读,写权限

###chenjuchao 2018-08-28###
欢迎关注我的公众号《IT小Chen

<think>好的,用户遇到了SQL Server备份失败的问题,错误原因是“没有找到备份设备”。我需要根据提供的引用内容来寻找解决方案。首先,引用[1]提到备份失败可能是因为文件夹权限或用户策略问题。用户权限不足可能导致无法访问备份路径,所以需要检查SQL Server服务账户是否有写入权限。另外,确保备份路径存在,比如手动创建目录,避免路径错误。引用[3]提到完整备份的操作步骤,其中验证备份路径是否正确很重要。用户可能输入了错误的路径或者文件名,需要检查备份命令中的路径是否存在拼写错误,或者是否使用了不支持的网络路径。 另外,引用[4]虽然讲的是恢复模式,但备份设备的问题可能和配置有关。例如,如果使用的是逻辑备份设备而非物理路径,需要确认设备是否已正确创建。可能还需要检查SQL Server的配置,比如是否允许备份到磁盘,或者是否有第三方软件阻止了访问。此外,备份文件扩展名是否正确,比如使用.bak,避免使用非法字符。 综合这些信息,解决方案应包括检查路径权限、验证路径存在、检查备份命令语法、确认服务账户权限等步骤。需要分步骤指导用户逐一排查,确保每个环节都正确设置。</think>### SQL Server备份失败“没有找到备份设备”解决方案 #### 一、错误原因分析 1. **路径权限问题** SQL Server服务账户对备份目标路径**无写入权限**,导致无法创建或访问备份设备[^1]。 2. **路径不存在或输入错误** 备份命令中指定的物理路径**未手动创建**,或路径包含非法字符(如网络路径未映射驱动器)[^3]。 3. **逻辑设备未定义** 若使用`BACKUP DATABASE TO [device_name]`语法,但未预先通过`sp_addumpdevice`创建逻辑备份设备。 4. **防病毒软件拦截** 第三方安全软件可能**阻止SQL Server进程访问磁盘**。 --- #### 二、分步解决方案 ##### 1. 验证物理路径权限 - **操作步骤** 1. 手动创建备份路径(如`D:\SQL_Backup`) 2. 右键文件夹 → **属性 → 安全 → 编辑** 3. 添加SQL Server服务账户(默认是`NT SERVICE\MSSQLSERVER`)并赋予**完全控制权限**[^1] - **验证方法** ```sql EXEC xp_cmdshell 'echo test > D:\SQL_Backup\test.txt'; ``` ##### 2. 检查路径有效性 - **关键点** - 路径需使用**本地物理路径**(如`D:\`),避免直接使用`\\192.168.1.100\backup`等网络路径 - 若必须使用网络路径,需通过**映射网络驱动器**实现(如`Z:`→`\\NAS\backup`) - **示例修正命令** ```sql BACKUP DATABASE [YourDB] TO DISK='D:\SQL_Backup\full.bak' WITH INIT; ``` ##### 3. 逻辑设备配置(若适用) - **创建逻辑设备** ```sql EXEC sp_addumpdevice 'disk', 'MyBackupDevice', 'D:\SQL_Backup\full.bak'; ``` - **调用逻辑设备备份** ```sql BACKUP DATABASE [YourDB] TO MyBackupDevice; ``` ##### 4. 排除安全软件干扰 - 临时禁用防病毒软件 - 将SQL Server进程(sqlservr.exe)加入白名单 --- #### 三、扩展验证方法 1. **通过SSMS图形界面测试** - 右键数据库 → **任务 → 备份** → 选择路径测试写入能力 2. **查看SQL Server错误日志** ```sql EXEC xp_readerrorlog 0, 1, 'backup'; ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值