PAT langsam

Aus PPwiki
Wechseln zu: Navigation, Suche

Hier eine Anleitung zum Ändern von RedoLogs.

Bei stark ausgelasteten System besteht die Herausforderung, die alten RedoLogs im Status INACTIVE zu erwischen, um diese zu löschen. Es ist nicht sinnvoll, RedoLogs unterschiedlicher Größe in einer Datenbank zu haben, da dieses negative Auswirkungen auf die Performance haben kann. Ein Logswitch sollte max. alle 5 bis 10 Minuten erfolgen.


1 Als erstes einen Überblick über die vorhandenen Logfiles

set pages 100 lines 170

alter session set NLS_DATE_FORMAT='DD.MM.YY HH24:MI:SS';

select * from v$log;

   GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME        NEXT_CHANGE# NEXT_TIME             CON_ID 
        1          1         43  209715200        512          1 NO  CURRENT                1797914 09.12.18 15:54:11   1,8447E+19                            0
        2          1         41  209715200        512          1 NO  INACTIVE               1646085 08.12.18 19:25:16      1692148 08.12.18 23:06:01          0
        3          1         42  209715200        512          1 NO  INACTIVE               1692148 08.12.18 23:06:01      1797914 09.12.18 15:54:11          0


col member format a60 select * from v$logfile;

   GROUP# STATUS  TYPE    MEMBER                                                IS_     CON_ID
     1      ONLINE  /oradata/RASCH/onlinelog/o1_mf_1_g0o10bs7_.log               NO           0
     2      ONLINE  /oradata/RASCH/onlinelog/o1_mf_2_g0o10gpo_.log               NO           0
     3      ONLINE  /oradata/RASCH/onlinelog/o1_mf_3_g0o10kw1_.log               NO           0

2 Anlegen der neuen Logfiles

alter database add logfile group 11 size 50M;

alter database add logfile group 12 size 50M;

alter database add logfile group 13 size 50M;

select * from v$log;

   GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME        NEXT_CHANGE# NEXT_TIME             CON_ID
        1          1         43  209715200        512          1 NO  CURRENT                1797914 09.12.18 15:54:11   1,8447E+19                            0
        2          1         41  209715200        512          1 NO  INACTIVE               1646085 08.12.18 19:25:16      1692148 08.12.18 23:06:01             0
        3          1         42  209715200        512          1 NO  INACTIVE               1692148 08.12.18 23:06:01      1797914 09.12.18 15:54:11             0
       11          1          0   52428800        512          1 YES UNUSED                       0                                 0                                     0
       12          1          0   52428800        512          1 YES UNUSED                       0                                 0                                     0
       13          1          0   52428800        512          1 YES UNUSED                       0                                 0                                     0

3 Anfangen zu löschen der Logfiles im Status "INACTIVE"

alter database drop logfile group 2;

alter database drop logfile group 3;

select * from v$log;

   GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME        NEXT_CHANGE# NEXT_TIME             CON_ID
        1          1         43  209715200        512          1 NO  CURRENT                1797914 09.12.18 15:54:11   1,8447E+19                            0
       11          1          0   52428800        512          1 YES UNUSED                       0                                 0                                     0
       12          1          0   52428800        512          1 YES UNUSED                       0                                 0                                     0
       13          1          0   52428800        512          1 YES UNUSED                       0                                 0                                     0

4 Jetzt Logfiles switchen um das letzte Logfile auf "INACTIVE" zu bekommen

alter system switch logfile;

alter system checkpoint;

select * from v$log;

   GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME        NEXT_CHANGE# NEXT_TIME             CON_ID
        1          1         43  209715200        512          1 NO  INACTIVE               1797914 09.12.18 15:54:11      1811158 09.12.18 16:32:17             0
       11          1         44   52428800        512          1 NO  CURRENT                1811158 09.12.18 16:32:17   1,8447E+19                            0
       12          1          0   52428800        512          1 YES UNUSED                       0                               0                                     0
       13          1          0   52428800        512          1 YES UNUSED                       0                               0                                     0

alter database drop logfile group 1;

   GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME        NEXT_CHANGE# NEXT_TIME             CON_ID
       11          1         44   52428800        512          1 NO  CURRENT                1811158 09.12.18 16:32:17   1,8447E+19                            0
       12          1          0   52428800        512          1 YES UNUSED                       0                               0                                     0
       13          1          0   52428800        512          1 YES UNUSED                       0                               0                                     0