現象
バックアップ グループを作成または編集しようとすると、応答がありません。
管理コンソール サービス(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表のunit列に値0を記録しました。
この列の値が0の場合は、保存期間が時間単位で測定されることを示します。ただし、保存期間の単位は、日[1]、週[2]、月[3]、年[4]の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