PAT langsam
Hier eine Anleitung zum Ändern von RedoLogs, wie schon erwähnt ist hierbei bei stark ausgelasteten System 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.
Inhaltsverzeichnis
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