Avamar:创建或编辑备份组时,UI 和 Avamar Admin Console 收到错误响应
摘要: 本文介绍了 Avamar 用户界面 (AUI) 和 Avamar Management Console 数据库 (MCDB) 与retention_policies表中的列值有关的问题。
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
尝试创建或编辑备份组会导致无响应:
Nothing is referenced in the Management Console Service (MCS) logs, but in the rest api logs.
下面显示了 Avamar REST API log:
/usr/local/avamar/var/mc/server_log/mc-rest-api.log java.lang.IllegalArgumentException: No enum constant com.avamar.mc.api.replication.dto.DurationUnits.HOURS at java.lang.Enum.valueOf(Unknown Source) at com.avamar.mc.api.replication.dto.DurationUnits.valueOf(DurationUnits.java:3) at com.avamar.mc.api.retention.service.RetentionServiceImpl.convertRetentionPolicyDescriptor(RetentionServiceImpl.java:194) at com.avamar.mc.api.retention.service.RetentionServiceImpl.getRetentions(RetentionServiceImpl.java:65) at com.avamar.mc.api.retention.web.RetentionController.getRetentions(RetentionController.java:48) at com.avamar.mc.api.retention.web.RetentionController$$FastClassBySpringCGLIB$$5ac7ec93.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) at com.avamar.mc.api.retention.web.RetentionController$$EnhancerBySpringCGLIB$$ebae7189.getRetentions(<generated>) at sun.reflect.GeneratedMethodAccessor4160.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source)
注意错误:
java.lang.IllegalArgumentException: No enum constant com.avamar.mc.api.replication.dto.DurationUnits.HOURS
原因
MCDB 在 Unit 列中记录的值为 0 retention_policies table.
此列中的值为 0 表示保留期以小时为单位。但是,保留期单位由四个值定义:天 [1]、周 [2]、月 [3] 和年数 [4]。
Java 没有为小时单位设置常量值,因此在运行时它不是有效的常量值 enum.valueOf() 方法。
您可以看到 DurationUnits.HOURS,其中引发错误,指出不存在小时数的枚举常量。
示例:具有错误条目的 MCDB:
admin@avamar:~/>: psql -p 5555 mcdb psql (10.6) Type "help" for help. mcdb=# select id,name,duration,unit from retention_policies; id | name | duration | unit ------------------+------------------------------+----------+------ MONTHLY:PolicyID | Monthly Retention | 1 | 3 WEEKLY:PolicyID | Weekly Retention | 1 | 2 Default:POLICYID | Default Retention | 60 | 1 EndUser:PolicyID | End User On Demand Retention | 60 | 1 Minimal:PolicyID | Minimal Retention | 60 | 1 RP1652848159766 | Platinum | 60 | 0 <-- These 0s RP1652848162931 | Gold | 60 | 0 <-- These 0s RP1652848166086 | Silver | 60 | 0 <-- These 0s RP1652848169312 | Bronze | 60 | 0 <-- These 0s (9 rows)
解决方案
过程:
- 步骤1: 备份 MCS。
mcserver.sh --flush
- 步骤2: 停止 MCS:
mcserver.sh --stop --force
- 步骤3: 手动启动 MCDB:
dbmaint.sh --db=on --dbname=mcdb
- 步骤4: 将保留策略单位的值从 0 更新为 1:
psql -d mcdb -p 5555 -c "update retention_policies set unit=1 where unit=0"
- 步骤 5:开始 MCS 恢复
mcserver.sh --start
- 步骤6: 确保您现在可以在 AUI 或 Avamar Administrator 中添加或编辑备份策略并启动备份计划程序。
其他信息
请观看此视频:
您还可以在 YouTube (外部链接)上观看此视频
受影响的产品
Avamar文章属性
文章编号: 000200096
文章类型: Solution
上次修改时间: 20 8月 2026
版本: 8
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。