Avamar:创建或编辑备份组时 Avamar 用户界面 (AUI) 和 Avamar Administrator 控制台错误响应
摘要: 本文解决了 Avamar 管理控制台数据库 (MCDB) 与retention_policies表中的列值有关的问题。
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
尝试创建或编辑备份组不会产生响应。
管理控制台服务 (MCS) 日志中未引用任何内容,但在 rest api 日志中未引用任何内容。
下面显示了 Avamar REST API 日志。
注意错误:
管理控制台服务 (MCS) 日志中未引用任何内容,但在 rest api 日志中未引用任何内容。
下面显示了 Avamar REST API 日志。
/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 在retention_policies表的单位列中记录了值 0。
此列中的值为 0 表示保留期以小时为单位。但是,保留期单位由四个值定义:天 [1]、周 [2]、月数 [3] 和年 [4]。
Java 没有为小时单位设置常量值,因此在运行 enum.valueOf() 方法时它不是有效的常量值。
您可以看到 DurationUnits.HOURS,它在其中抛出一个错误,指出不存在小时的枚举常量。
示例:
具有错误条目的 MCDB
此列中的值为 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。
步骤2:
停止 MCS。
步骤3:
手动启动 MCDB。
步骤4:
将保留策略单元的值从 0 更新为 1。
步骤5:
启动 MCS。
步骤6:
确保现在可以在 AUI 或 Avamar Administrator 中添加或编辑备份策略,并启动备份计划程序。
备份 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 中添加或编辑备份策略,并启动备份计划程序。
其他信息
受影响的产品
Avamar文章属性
文章编号: 000200096
文章类型: Solution
上次修改时间: 09 7月 2026
版本: 7
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。