Avamar:创建或编辑备份组时 Avamar 用户界面 (AUI) 和 Avamar Administrator 控制台错误响应

摘要: 本文解决了 Avamar 管理控制台数据库 (MCDB) 与retention_policies表中的列值有关的问题。

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

尝试创建或编辑备份组不会产生响应。
管理控制台服务 (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
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
上次修改时间: 09 7月 2026
版本:  7
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。