Redimensionar Red Logs – 11gR2

Para se aumentar os Redo é necessário criar novos e nesta fase há que se tomar a decisão se estes deverão permanecer na FRA (Fast Recovery Area) ou não. Se permanecerem será o Oracle a gerir os ficheiros da FRA (control file, redo, archive, etc). Se não a gestão dos componentes é autónoma.

 

Cada Thread é atribuída a um nó do RAC. Lembrar que é sempre necessário ter pelo menos 2 Threads por nópara geração de Redo activas no RAC.

 

Verificar os grupos de log files existentes e os ficheiros que cada grupo contém:

select * from gv$log;

   INST_ID     GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
         1          1          1         76  104857600        512          2 YES INACTIVE               3339909 22-AUG-12      3397686 22-AUG-12
         1          2          1         77   52428800        512          2 YES INACTIVE               3397686 22-AUG-12      3433508 23-AUG-12
         1          6          1         78   52428800        512          2 NO  CURRENT                3433508 23-AUG-12   2.8147E+14
         1          7          2         71  104857600        512          2 NO  CURRENT                3443555 23-AUG-12   2.8147E+14 23-AUG-12
         1         14          2         70  104857600        512          2 YES INACTIVE               3339409 22-AUG-12      3339658 22-AUG-12
         2          1          1         76  104857600        512          2 YES INACTIVE               3339909 22-AUG-12      3397686 22-AUG-12
         2          2          1         77   52428800        512          2 YES INACTIVE               3397686 22-AUG-12      3433508 23-AUG-12
         2          6          1         78   52428800        512          2 NO  CURRENT                3433508 23-AUG-12   2.8147E+14
         2          7          2         71  104857600        512          2 NO  CURRENT                3443555 23-AUG-12   2.8147E+14 23-AUG-12
         2         14          2         70  104857600        512          2 YES INACTIVE               3339409 22-AUG-12      3339658 22-AUG-12

select * from gv$logfile;

INST_ID     GROUP# STATUS  TYPE    MEMBER                                             IS_RECOVERY_DEST_FILE

---------- ---------- ------- ------- -------------------------------------------------- ------------------------

      1          1         ONLINE  +FDATDG/sibsp10/onlinelog/group_1.566.788460973    NO
      1          1         ONLINE  +RECODG/sibsp10/onlinelog/group_1.631.788460975    YES
      1          2         ONLINE  +FDATDG/sibsp10/onlinelog/group_2.565.788461005    NO
      1          2         ONLINE  +RECODG/sibsp10/onlinelog/group_2.629.788461007    YES
      1          3         ONLINE  +FDATDG/sibsp10/onlinelog/group_3.564.788461011    NO
      1          3         ONLINE  +RECODG/sibsp10/onlinelog/group_3.415.788461013    YES
      1          4         ONLINE  +FDATDG/sibsp10/onlinelog/group_4.563.788461017    NO
      1          4         ONLINE  +RECODG/sibsp10/onlinelog/group_4.408.788461019    YES
      2          1         ONLINE  +FDATDG/sibsp10/onlinelog/group_1.566.788460973    NO
      2          1         ONLINE  +RECODG/sibsp10/onlinelog/group_1.631.788460975    YES
      2          2         ONLINE  +FDATDG/sibsp10/onlinelog/group_2.565.788461005    NO
      2          2         ONLINE  +RECODG/sibsp10/onlinelog/group_2.629.788461007    YES
      2          3         ONLINE  +FDATDG/sibsp10/onlinelog/group_3.564.788461011    NO
      2          3         ONLINE  +RECODG/sibsp10/onlinelog/group_3.415.788461013    YES
      2          4         ONLINE  +FDATDG/sibsp10/onlinelog/group_4.563.788461017    NO
      2          4         ONLINE  +RECODG/sibsp10/onlinelog/group_4.408.788461019    YES

Antes de adicionarmos, verificar se a configuração da FRA esta activa (parametros abaixo, um indica o sitio onde estará a FRA e o outro o tamanho da mesma para a base de dados):

select name, value, display_value from v$parameter where upper(name) like '%DB_RECOVERY_FILE_DEST%';

NAME                                                         VALUE                DISPLAY_VALUE
------------------------------------------------------------ -------------------- ------------------------------
db_recovery_file_dest                                        +FCHFRADG            +FCHFRADG
db_recovery_file_dest_size                                   6005194752           5727M

Se quisermos utilizar a FRA, não é necessários informarmos nomenclatura para os ficheiros. Adicionar os novos log files com o tamanho desejado:

alter database add logfile thread 1 group 5 size 200M;
alter database add logfile thread 1 group 6 size 200M;
alter database add logfile thread 2 group 7 size 200M;
alter database add logfile thread 2 group 8 size 200M;

Se quisermos ter um controlo mais acirrado, a sintaxe seria como abaixo:

alter database add logfile thread 1 group 1 ('+FDATDG/sibsp13/onlinelog/redo5a.log','+FCHFRADG/sibsp13/onlinelog/redo5b.log') size 50m;
alter database add logfile thread 1 group 3 ('+FDATDG/sibsp13/onlinelog/redo3a.log','+FCHFRADG/sibsp13/onlinelog/redo3b.log') size 50m;

Para verificarmos se os ficheiros estão sob gestão da FRA (Coluna IS_RECOVERY_DEST_FILE com valor YES):

select * from gv$logfile;
<pre>  INST_ID     GROUP# STATUS  TYPE    MEMBER                                             IS_RECOVERY_DEST_FILE
---------- ---------- ------- ------- -------------------------------------------------- -------------------------
         1          1         ONLINE  +FDATDG/sibsp10/onlinelog/group_1.566.788460973    NO
         1          1         ONLINE  +RECODG/sibsp10/onlinelog/group_1.631.788460975    YES
         1          2         ONLINE  +FDATDG/sibsp10/onlinelog/group_2.565.788461005    NO
         1          2         ONLINE  +RECODG/sibsp10/onlinelog/group_2.629.788461007    YES
         1          3         ONLINE  +FDATDG/sibsp10/onlinelog/group_3.564.788461011    NO
         1          3         ONLINE  +RECODG/sibsp10/onlinelog/group_3.415.788461013    YES
         1          4         ONLINE  +FDATDG/sibsp10/onlinelog/group_4.563.788461017    NO
         1          4         ONLINE  +RECODG/sibsp10/onlinelog/group_4.408.788461019    YES
         2          1         ONLINE  +FDATDG/sibsp10/onlinelog/group_1.566.788460973    NO
         2          1         ONLINE  +RECODG/sibsp10/onlinelog/group_1.631.788460975    YES
         2          2         ONLINE  +FDATDG/sibsp10/onlinelog/group_2.565.788461005    NO
         2          2         ONLINE  +RECODG/sibsp10/onlinelog/group_2.629.788461007    YES
         2          3         ONLINE  +FDATDG/sibsp10/onlinelog/group_3.564.788461011    NO
         2          3         ONLINE  +RECODG/sibsp10/onlinelog/group_3.415.788461013    YES
         2          4         ONLINE  +FDATDG/sibsp10/onlinelog/group_4.563.788461017    NO
         2          4         ONLINE  +RECODG/sibsp10/onlinelog/group_4.408.788461019    YES

select * from v$flash_recovery_area_usage

FILE_TY            PERCENT_SPACE_USED      PERCENT_SPACE_RECLAIMABLE                 NUMBER_OF_FILES                              
------------------ ---------------------- ------------------------------------------ ---------------------------- 
CONTROL FILE       0,24                                            0                                            1 
REDO LOG           3,56                                            0                                            4 
ARCHIVED LOG          0                                            0                                            0 
BACKUP PIECE       1,05                                         0,79                                            4 
IMAGE COPY            0                                            0                                            0 
FLASHBACK LOG         0                                            0                                            0 
FOREIGN ARCHIVED LOG  0                                            0                                            0

Podemos depois, se for o caso, separa cada ficheiro do grupo de Redo, permitindo que um fique na FRA e outro fique onde quisermos (para fins de redundância, por exemplo). Para isso, devemos adicionar outro membro (file) ao grupo manualmente e retirar o que não quisermos que lá esteja (ou que tenha sido criado a mais). O primeiro passo é saber da configuração da base de dados quantos Log Members são permitidos:

 
SQL> Select '--> MAXLOGMEMBERS ' || dimlm from x$kccdi;

'-->MAXLOGMEMBERS'||DIMLM
----------------------------------------------------------
--> MAXLOGMEMBERS 3

SQL>

e então adicionar e/ou retirar membros do grupo:

 
alter database add logfile member '+FDATDG/sibsp13/onlinelog/redfo14c.log' to group 14;
alter database drop logfile member '+FCHFRADG/sibsp13/onlinelog/group_14.275.791993657';

Agora é necessário remover os antigos e deixar somente os novos Redo adicionados com o valor pretendido.

Verificar os log files CURRENT, ACTIVE, INACTIVE e UNUSED:

select * from gv$log;

 INST_ID     GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME

---------- ---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
        1          5          1       8287  209715200        512          2 NO  CURRENT             1.6265E+10 12-JUL-12   2.8147E+14
        1          6          1       8286  209715200        512          2 YES INACTIVE            1.6265E+10 12-JUL-12   1.6265E+10 12-JUL-12
        1          7          2      13830  209715200        512          2 YES ACTIVE              1.6265E+10 12-JUL-12   1.6265E+10 12-JUL-12
        1          8          2      13831  209715200        512          2 NO  CURRENT             1.6265E+10 12-JUL-12   2.8147E+14
        2          5          1       8287  209715200        512          2 NO  CURRENT             1.6265E+10 12-JUL-12   2.8147E+14
        2          6          1       8286  209715200        512          2 YES INACTIVE            1.6265E+10 12-JUL-12   1.6265E+10 12-JUL-12
        2          7          2      13830  209715200        512          2 YES ACTIVE              1.6265E+10 12-JUL-12   1.6265E+10 12-JUL-12
        2          8          2      13831  209715200        512          2 NO  CURRENT             1.6265E+10 12-JUL-12   2.8147E+14

NOTA: só os log files INACTIVE é que podem ser eliminados, os outros retornam erro.

NOTA: os log files UNUSED são os novos que nunca foram usados

 

Eliminar os log files INACTIVE

alter database drop logfile group 1;

NOTA: é necessário existirem sempre pelo menos 2 log files por instância (thread)

 

Para mudar o log file CURRENT executar:

alter system switch logfile;

Para mudar o log file de ACTIVE para INACTIVE executar (este comando força a DB a escrever em disco ou eliminar o conteúdo do REDO e passar ao próximo):

alter system checkpoint;

Eliminar todos os log files antigos (grupos 1 a 4) e o resultado deverá ser:

  INST_ID     GROUP# STATUS  TYPE    MEMBER                                             IS_RECOVERY_DEST_FILE
---------- ---------- ------- ------- -------------------------------------------------- -------------------------
         1          1         ONLINE  +FDATDG/sibsp10/onlinelog/group_1.566.788460973    NO
         1          1         ONLINE  +RECODG/sibsp10/onlinelog/group_1.631.788460975    YES
         1          2         ONLINE  +FDATDG/sibsp10/onlinelog/group_2.565.788461005    NO
         1          2         ONLINE  +RECODG/sibsp10/onlinelog/group_2.629.788461007    YES
         1          3         ONLINE  +FDATDG/sibsp10/onlinelog/group_3.564.788461011    NO
         1          3         ONLINE  +RECODG/sibsp10/onlinelog/group_3.415.788461013    YES
         1          4         ONLINE  +FDATDG/sibsp10/onlinelog/group_4.563.788461017    NO
         1          4         ONLINE  +RECODG/sibsp10/onlinelog/group_4.408.788461019    YES
         2          1         ONLINE  +FDATDG/sibsp10/onlinelog/group_1.566.788460973    NO
         2          1         ONLINE  +RECODG/sibsp10/onlinelog/group_1.631.788460975    YES
         2          2         ONLINE  +FDATDG/sibsp10/onlinelog/group_2.565.788461005    NO
         2          2         ONLINE  +RECODG/sibsp10/onlinelog/group_2.629.788461007    YES
         2          3         ONLINE  +FDATDG/sibsp10/onlinelog/group_3.564.788461011    NO
         2          3         ONLINE  +RECODG/sibsp10/onlinelog/group_3.415.788461013    YES
         2          4         ONLINE  +FDATDG/sibsp10/onlinelog/group_4.563.788461017    NO
         2          4         ONLINE  +RECODG/sibsp10/onlinelog/group_4.408.788461019    YES

 

 INST_ID     GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME

---------- ---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
        1          5          1       8287  209715200        512          2 NO  CURRENT             1.6265E+10 12-JUL-12   2.8147E+14
        1          6          1       8286  209715200        512          2 YES INACTIVE            1.6265E+10 12-JUL-12   1.6265E+10 12-JUL-12
        1          7          2      13830  209715200        512          2 YES ACTIVE              1.6265E+10 12-JUL-12   1.6265E+10 12-JUL-12
        1          8          2      13831  209715200        512          2 NO  CURRENT             1.6265E+10 12-JUL-12   2.8147E+14
        2          5          1       8287  209715200        512          2 NO  CURRENT             1.6265E+10 12-JUL-12   2.8147E+14
        2          6          1       8286  209715200        512          2 YES INACTIVE            1.6265E+10 12-JUL-12   1.6265E+10 12-JUL-12
        2          7          2      13830  209715200        512          2 YES ACTIVE              1.6265E+10 12-JUL-12   1.6265E+10 12-JUL-12
        2          8          2      13831  209715200        512          2 NO  CURRENT             1.6265E+10 12-JUL-12   2.8147E+14

 


 

Abaixo um script útil para eliminar um Redo em uso, bastando para isso substituir o valor da variável lgrupo para o numero do grupo a ser eliminado.

declare
lgrupo varchar2(2)  := '14';
lapagou varchar2(1) := 'N';
lcontador number(1) := 0;
lquery varchar2(500);
begin
    while lapagou = 'N' loop
        lquery := 'select count(1) from gv$log where status = ''INACTIVE'' and group# = ' || lgrupo;
        execute immediate lquery into lcontador;
        if lcontador > 0 then
            Begin
                lquery := 'alter database drop logfile group ' || lgrupo;
                execute immediate lquery;
                lapagou:= 'S';
            end;
        else
            lquery := 'alter system switch logfile';
            execute immediate lquery;
            lquery := 'alter system checkpoint';
            execute immediate lquery;
        end if;
    end loop;
end;

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Optimization WordPress Plugins & Solutions by W3 EDGE