Avamar. Пользовательский интерфейс Avamar (AUI) и консоль администрирования Avamar — некорректный ответ при создании или изменении группы резервного копирования

Summary: В этой статье рассматривается проблема с базой данных Avamar Management Console (MCDB), связанная со значением столбца в таблице retention_policies.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Попытка создать или изменить группу резервного копирования не приводит к ответу.
В журналах службы консоли управления (MCS), кроме журналов REST API, ничего не указывается.

Ниже приведен журнал API-интерфейса REST Avamar.
/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

Cause

MCDB записала значение 0 в столбце единиц измерения таблицы retention_policies. 

Значение 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)

Resolution

Шаг 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 и запустить планировщик резервного копирования.

Additional Information

Смотрите это видео:

Вы также можете посмотреть это видео на YouTube.

Affected Products

Avamar
Article Properties
Article Number: 000200096
Article Type: Solution
Last Modified: 03 Feb 2025
Version:  6
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.