大家好,我是JiekeXu,江湖人称“强哥”,青学会MOP技术社区主席,荣获Oracle ACE Pro称号,OpenTenBase ACE,金仓社区最具价值倡导者KVA,崖山最具价值专家YVP,IvorySQL开源社区专家顾问委员会成员,KWDB社区MVP,墨天轮MVP,墨天轮连续多年度“墨力之星”,拥有Oracle OCP/OCM认证,MySQL 5.7/8.0 OCP认证以及金仓KCA、KCP、KCM、KCSM证书,TiDB PCTA/PCTP证书、PCA、OBCA、OGCA等众多国产数据库认证证书,欢迎关注我的微信公众号“JiekeXu DBA之路”,然后点击右上方三个点“设为星标”置顶,更多干货文章才能第一时间推送,谢谢!

目 录
Avamar Server 简介 备份失败现象 备份失败原因 失败解决办法 物理删除备份 DDVE 常用管理命令 数据库常见备份恢复错误及解决办法

记录一次 Avamar 备份一体机 Oracle 全备失败问题处理过程
Avamar Server 简介
Avamar Server 架构图大概如下所示,主要包含 Data Server 数据服务,管理控制台服务 Management Console Server(MCS) 和 EM Tomcat 服务(EMT) 三大部分。
数据服务
在执行备份、恢复或验证时,Avamar备份客户端直接与数据服务器通信。所有计划备份均由MCS调度程序启动。
管理控制台服务(MCS)
管理控制台服务(MCS)提供集中化的管理(调度、监控等)。MCS 还运行 Avamar 管理员图形管理控制台使用的服务器端进程。可见,MCS 中还集成了 PostgreSQL 数据库来存储 Avamar服务数据。PostgreSQL是一个开放架构数据库管理系统。MCS数据库中的信息可以通过任何符合 PostgreSQL 规范的 ODBC 接口访问。MCS 数据库文件名为 mcdb,位于 /usr/local/avamar/var/mc/server_data/postgres目录下的 utility 节点上。好奇的我想看看这个 PG 数据库到底有多老,结果登录进去一看也是大吃一惊,版本居然不算老,2024 年 2 月发布的 14.11 版本,算是较新了。
EM Tomcat 服务(EMT)
Avamar EM Tomcat服务器(EMT)提供显示和处理 Avamar 服务器信息所需的基本服务。EMT 还直接与 MCS 通信。这种通信是所有Avamar系统所必需的部分。
Avamar为各种计算平台提供客户端软件。每个客户端包括一个客户端代理和一个或多个插件,下面是 Avamar 客户端代理及插件示意图。
Agent:Avamar 代理是特定于平台的软件进程,运行在客户端上,并与管理控制台服务器(MCS)以及客户端上安装的任何插件进行通信。
Plug-ins:Avamar插件有两种类型:
-
文件系统插件,用于在特定客户端文件系统上浏览、备份和恢复文件或目录的文件系统插件。
-
支持数据库或其他特殊应用备份与恢复的应用插件。
Avamar 支持的文件系统主要有 HP-UX、Free BSD、IBM AIX、Linux、Windows、Oracle Solaris、VMware 和应用程序插件 IBM DB2、Microsoft SQL Server、Oracle、SAP with Oracle、Sybase ASE。
有关客户端兼容性要求以及支持的操作系统和应用程序版本,请参见 https://elabnavigator.emc.com/eln/modernHomeDataProtection (需要 EMC 账号才能访问) 中的 e-lab Navigator。值得注意的是 Avamar 文件系统客户端和主机上安装的插件必须具有相同的版本号。
好了,Avamar 基础就介绍到这里了,很多知识点我也不明白,感兴趣的朋友可自行探索,下面直接进入到正题,来看看具体的备份报错信息。
备份失败现象
登录可视化管理界面发现当日备份凌晨 3:30 以后的调度任务备份全部失败 Failed,直至当天解决完成后,23:59 分的备份才正常完成 Completed。

查看其中一个数据库备份失败的日志,直接搜索错误关键字,可以看到有如下错误。
关键错误日志如下
Error <10623> DDR“no room left……” Error <40064> Failed to create DDR staging area Error <0000> “no room left failed to open for write synthesis file container /……” FATAL<16537> “Could not create fileddr container /……”
通过客户端登录到 Avamar 可视化界面发现,存储使用率已经达到了 96%。
登录 DD 服务器发现 /data 使用率确实已经很高了达 96%。
备份失败原因
根据上面日志 Error <0000> no room left failed to open for write synthesis file container /,这通常表示 Avamar 备份一体机的存储空间已满或接近已满,导致系统无法为新的备份数据分配存储空间。AI 给出的错误原因分析如下,也很有参考意义。
错误原因分析
1.存储容量已满:Avamar系统有几种容量限制阈值,当超过特定阈值时会出现问题:
•80%:容量警告
•95%:达到运行状况检查限制
•100%:达到服务器只读限制,网格切换到管理员模式
2.存储节点数据分区使用不均衡:如果数据分区之间的空间消耗未均匀平衡,即使总体容量未满,网格也可能进入只读或管理员模式。
3.inode 耗尽:设备可能因索引节点(inode)数量耗尽而报告"没有剩余空间"错误,即使磁盘空间尚未完全用尽。
基于以上排查和报错日志说明存储阈值已经超过 95%,已经达到了运行状况检查限制,无法继续备份了。 那么为何会出现这样的情况导致空间耗尽呢?这里就不得不说一句,其中一个核心库的备份是通过 ADG 备库来进行的,备份策略是每天全备,每 4 小时备份一次归档日志(有重复,归档日志保留一天),总体保留 35 天,但是归档日志的备份从去年 11 月份以来就没有删除过(删除策略失效),导致备份空间耗尽~~~这个具体情况我想放在下一篇在聊,今天先看空间问题吧。
失败解决办法
既然知道是空间满了无法备份,那么就可以清理以前的老旧备份来释放空间。清理办法有两种,一种则是通过客户端登录到可视化界面,通过备份恢复界面找到对应的客户端,在“管理备份”页签中找到你要删除日志的备份文件,选中要删除的备份文件后直接右键“删除备份”即可,等待一会儿即可删除,时间比较慢。
但由于一天一天删除也比较麻烦,而且释放的空间有限,只能是紧急缓解措施,我们可以通过命令行的方式来物理删除备份,虽然也很慢,但命令行删除比较方便,下面介绍通过命令上删除的办法。

物理删除备份
使用 admin 账号登录 ave 服务器,可通过 modify-snapups 命令生成批量删除命令,然后后台执行生成的文件即可慢慢删除,需要注意命令参数和相关事件点和格式,以及要删除的客户端名称,这里客户端名称为 jieke-19crac-scan。
首先通过自带的脚本 capacity.sh --days=60 --top=10 查看最近 60 天生成的备份比较大的 Top 10 备份信息,然后酌情选择对应的客户端进行删除操作(capacity.sh:是 Avamar 服务器内置的一个容量分析工具脚本)。
生成批量删除脚本
admin@ave:~/>: modify-snapups --mode=delete --domain=/clients ‘jieke-19crac-scan’ --before=‘2025-04-28’ > output-script20260311.txt
查看删除的脚本
admin@ave:~/>: more output-script20260311.txt
授予可执行权限
admin@ave:~/>: chmod +x output-script20260311.txt
放后台执行
admin@ave:~/>: nohup ./output-script20260311.txt > delete_backup20260311.log &
查看进程
admin@ave:~/>: ps -ef | grep 3846
查看删除日志
大约花费 9 个小时才删除完,也是比较慢的,但总的来说比较省事儿。另外需要注意的是删除备份不会立即释放存储空间,删除操作只是标记数据为可删除状态,实际空间释放需要等待垃圾收集(Garbage Collection)进程运行才会释放。
admin@ave:~/>: more delete_backup20260311.log
DDVE 常用管理命令
DDVE 为主要的备份设备,用于 ddboost 协议去重备份。其中 DDVE 常用的命令如下:
(显示全部可用的命令,类似 Linux 命令可以用 Tab 键自动补全)
查看当关有否告警,例如有硬件告警或坏掉就会显示出来:
alerts show current
查看当前文件系统的使用情况:
本示例 DDVE 可用空间 119495.3 GB,去重后使用 3380.2GB, 使用 3%. Avamar 备份过来的去重前的数据量为:75114.0GB
filesys show space
查看每天备份数据量的统计:
例如 17 号这天备份了 8717.7GB 数据,去重后在 DD 上占用的空间为 569.7GB. 总的去重比为 93.5 倍。
filesys show compression daily=detailed
查看 DDBOOST 备份时的性能:
此项可以看到虚拟机备份时速度可以达到 1GB/s 以上,网络去重后实际占用的带宽 200MB/s 左右。
ddboost show stats interval 2 count 1000
数据库常见备份恢复错误及解决办法
1) Oracle 数据库因配置问题备份失败
ORA-27211: Failed to load Media Management Library
RMAN-00571: ==================================================
RMAN-00569: ========== ERROR MESSAGE STACK FOLLOWS ===========
RMAN-00571: ==================================================
RMAN-03009: failure of allocate command on c1 channel at
2025-9-4 20:27:34
ORA-19554: error allocating device, device type: SBT_TAPE,
device name: ORA-27211: Failed to load Media Management Library
可能问题在 Avamar 配置方面,检查 Avamar 软件安装配置,脚本及 flag file。
2) Oracle 数据库因临时表空间缺失备份失败
ORA-25153: Temporary Tablespace is Empty
如果遇到,ORA-25153 Temporary Tablespace is Empty message, 需要手动重新创建临时表空间.
3) Oracle 数据库备份失败
RMAN backup script fails with ORA-19511
RMAN-00571: ===================================================
RMAN-00569: =========== ERROR MESSAGE STACK FOLLOWS ===========
RMAN-00571: ===================================================
RMAN-03009: failure of backup command on ORA_SBT_TAPE_1 channel
at 2025-9-4 16:02:37
ORA-19506: failed to create sequential file,
name="06jtv7ks_1_1", parms=""
ORA-27028: skgfqcre: sbtbackup returned error
ORA-19511: Error received from media manager layer, error text:
sbtbackup: avtar exited, trying to create 06jtv7ks_1_1
这个错误的可能原因有:
- 1、/var/avamar 目录的权限设置不正确,无法启动备份。请使用 /var/avamar/clientlogs 目录代替 /var/avamar 目录。
- 2、 RMAN 或 libobk 无法定位 avtar。RMAN 备份或还原脚本中的 allocate channel 命令必须将 Avamar-home/bin 添加到PATH 变量中,或添加 bindir="/usr/local/avamar/bin"。
- 3、 Oracle 实例正在以非标准用户或组身份运行。要确定 Oracle 是否安装在非标准用户或组下,请检查 Oracle 主目录的文件权限。
4) Oracle 数据库恢复失败
Failed RMAN restore of control file is reported as completed in Avamar
Administrator
RMAN-00571: =======================================
RMAN-00569: ===== ERROR MESSAGE STACK FOLLOWS =====
RMAN-00571: =======================================
RMAN-03002: failure of restore command at 01/22/2026 02:48:16
ORA-19870: error while restoring backup piece
CONTROLFILE.testdb.c-2652908924-20260122-00
ORA-19608: CONTROLFILE.testdb.c-2652908924-20260122-00 is not a
backup piece
错误原因:命令行参数 Flagfile 配置不正确,或用户名口令等授权信息原因。
5) Oracle 数据库恢复失败
ORA-19870: error while restoring backup piece
channel c0: ORA-19870: error while restoring backup piece
ORCL_0vnahoeh_1_1ORA-19504: failed to create file
"/home/oracle/app/oracle/oradata/orcl/home/oracle/app/oracle/
product/11.2.0/dbhome_1/home/oracle/app/oracle/product/11.2.0/
dbhome_1/home/oracle/app/oracle/product/11.2.0/dbhome_1.dbf"
ORA-27040: file create error, unable to create file
Solaris-AMD64 Error: 2: No such file or directory failover to
previous backup released channel: c0
RMAN-00571: =======================================
RMAN-00569: ===== ERROR MESSAGE STACK FOLLOWS =====
RMAN-00571: =======================================
RMAN-03002: failure of restore command at 05/09/2024 10:01:35
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 3 found to restore
RMAN-06023: no backup or copy of datafile 2 found to restore
RMAN-06023: no backup or copy of datafile 1 found to restore
这个错误的原因可能是在恢复包含使用 UTF-8 字符集的数据文件的数据库时,会因以下错误消息而失败:
当满足以下配置条件时,Oracle 要求您将 NLS_LANG 环境变量设置为正确的语言、地区和字符集:
- 操作系统的区域设置不是英语。
- 数据库包含使用 UTF-8 字符集的数据文件。
这个字符集问题也是经典的问题,也比较头疼,报错可能和字符集没有关系,排查起来也比较痛苦,尤其是操作系统支持中文字符这个坑让我排查了大半个月的时间,最后将操作系统支持语言改为英文就好了。


全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~
欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!
——————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107
——————————————————————————





