Zarejestruj się na BitBay.net
Home > Oracle > Redo logs – czyli transakcyjne logi bazy danych

Redo logs – czyli transakcyjne logi bazy danych

Przetwarzanie transakcyjne w bazach danych Oracle polega na zapisywaniu efektów działania poleceń wchodzących w skład transakcji do buforów dziennika powtórzeń (redo log buffer), a w następnej kolejności do plików dziennika powtórzeń (redo logs), buforów danych (data file buffer) i plików bazodanowych (data files).

redologs

“Redologi” (*.log) rejestrują wszystkie zatwierdzone (commit) transakcje bazy danych czyli te operacje które coś zmieniają w bazie. Standardowo po instalacji bazy są trzy grupy plików redo logs o określonej wielkości. Jeśli pierwszy z plików się zapełni transakcje zapisywane są do następnego pliku i tak w koło.

Gdy baza działa w bezpiecznym trybie archiwizacji logów, zapełniony plik jest archiwizowany czyli zmienia się w plik archive logs (*.arc). Z punktu działania bazy, redo logs są bardzo ważnymi plikami wykorzystywanymi np. podczas awarii bazy, dlatego też czasami warto zwiększyć ich ilość, dodać kolejne pliki do każdej grupy i umieścić je dla bezpieczeństwa na innym dysku lub np. w przypadku pompowania duże ilości danych do bazy zwiększyć ich wielkość (inaczej będą za szybko przyrastać).

Przydatne polecenia:

Sprawdzanie statusu i położenie plików redo logs:

select l.group#,l.sequence#,l.members,l.archived,l.status,f.member
from v$log l, v$logfile f where f.group#=l.group# order by group#;

Sprawdzanie samego statusu:

select group#, status from v$log;

Istnieje kilka statusów. Najważniejsze to:

  1. INACTIVE – plik nieaktywny.
  2. UNUSED – nowy plik, nieaktywny i jeszcze nieużywany.
  3. CURRENT – poprawny plik i aktualnie używany.
  4. ACTIVE – poprawny plik, ale aktualnie nieużywany
  5. CLEARING – plik który aktualnie jest czyszczony (tworzony od nowa)
  6. INVALID – plik niedostępny lub uszkodzony

Jakiekolwiek operacje powinniśmy wykonywać tylko na plikach ze statusem INACTIVE lub UNUSED.

Jeśli potrzebujemy zmienić plik który aktualnie jest używany (CURRENT) wywołujemy polecenie switch logfile:

alter system switch logfile;

Jeśli potrzebujemy zmienić coś w pliku ze statusem ACTIVE musimy wywołać chechpoint. Polecenie checkpoint powoduje zapisanie wszystkich zatwierdzonych zmian z pamięci operacyjnej serwera do plików bazodanowych.

alter system checkpoint global;

Kasowanie grupy:

alter database drop logfile group 2;

Zakładanie nowej grupy:

alter database add logfile group 2 ( '/u01/app/oracle/oradata/hart/redo02.log')
size 50m reuse;

Dodawanie kolejnego członka do nowej grupy:

alter database add logfile member '/u01/app/oracle/oradata/hart/redo02_2.log'
reuse to group 2;

W sieci:

Kategorie:Oracle Tagi:, ,
  1. Sierpień 23rd, 2010 at 03:54 | #1

    Czy mozna calkowicei wylaczyc logowanie w plikach redo.
    Nie chce posiadac zadnej historii transakcji. Baze danych backup’uje za pomoca dumpa (expdp, impdp).
    Jak pozbyc sie redo logow ??

  2. Sierpień 23rd, 2010 at 19:16 | #2

    Nie można. Pliki redo to niezbędny mechanizm bazy danych. Bez nich tranzakcje nie miały by sensu.

  3. prymas
    Lipiec 26th, 2011 at 01:10 | #3

    @admin

    mozna, odsylam do opcji nologging

  4. Lipiec 26th, 2011 at 06:59 | #4

    nologging powoduje tylko tyle, że operacje DDL (alter, create) nie są logowane, czyli przebudowy indeksów, tworzenie tabel itp. Operacje DML (update,delete itp.) zawsze są logowane.

  1. Brak jeszcze trackbacków

*