Este erro ocorre quando tentamos alterar a configuração de retenção dos relatórios AWR no banco de dados Oracle.
No exemplo abaixo, estamos alterando o tempo de retenção do relatório para 30 dias ou 43200 minutos.
SQL> execute dbms_workload_repository.modify_snapshot_settings (interval => 60, retention => 43200);
BEGIN dbms_workload_repository.modify_snapshot_settings (interval => 60, retention => 43200); END;
*
ERROR at line 1:
ORA-13541: system moving window baseline size (7862400) greater than retention
(2592000)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 174
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 222
ORA-06512: at line 1
O erro acima acontece, devido a janela de retenção atual dos relatórios AWR estar configurarada para um período maior do que aquele que estamos tentando configurar.
Podemos obter essa informação com o SQL abaixo, que nos mostrará o tempo configurado para a janela de retenção:
SQL> SELECT moving_window_size FROM dba_hist_baseline WHERE baseline_type = 'MOVING_WINDOW';
MOVING_WINDOW_SIZE
------------------
91
Para podermos fazer a alteração que desejamos, precisamos alterar o tempo da janela de retenção antes de executarmos o comando bbms_workload_repository.modify_snapshot_settings, deixando essa janela com o mesmo tempo que iremos configurar, conforme descrito abaixo:
Para mudarmos a janela de retenção, devemos executar:
SQL> exec DBMS_WORKLOAD_REPOSITORY.modify_baseline_window_size( window_size =>30);
Neste caso, o window_size é igual a 30 dias que corresponde aos 43200 minutos que iremos configurar em nossa retenção.
1 hora = 60 minutos
1 dia = 24 horas
1 dia = 1440 minutos (60minX24h)
30 dias = 43200 minutos (1440min * 30dias)
Após a execução do comando de alteração da janela de retenção, podemos verificar se o valor foi realmente alterado:
SQL> SELECT moving_window_size FROM dba_hist_baseline WHERE baseline_type = 'MOVING_WINDOW';
MOVING_WINDOW_SIZE
------------------
30
Agora, que já temos a janela de retenção configurada de forma adequada para a nossa necessidade, podemos fazer a alteração na geração / retenção dos relatórios AWR.
SQL> execute dbms_workload_repository.modify_snapshot_settings (interval => 60, retention => 43200);
PL/SQL procedure successfully completed.