background image

Struktura RDBMS Oracle 

Struktura RDBMS Oracle 

Instancja

Pliki

bazy 

danych

background image

Architektura Oracle

Architektura Oracle

Baza danych odnosi się do fizycznego 

składowania informacji, jest bytem fizycznym – 

składa się ze plików zapisanych na dyskach

Instancja odnosi się do oprogramowania 

działającego na serwerze, zapewniającego dostęp 

do informacji w bazie danych, jest bytem 

logicznym – składa się ze struktur 

w pamięci i procesów na serwerze 

background image

W pliku kontrolnym zawarte są informacje 

W pliku kontrolnym zawarte są informacje 

dotyczące położenia innych plików fizycznych 

dotyczące położenia innych plików fizycznych 

tworzących bazę danych – plików danych i plików 

tworzących bazę danych – plików danych i plików 

dziennika powtórzeń oraz kluczowe informacje 

dziennika powtórzeń oraz kluczowe informacje 

dotyczące treści i statusu bazy danych:

dotyczące treści i statusu bazy danych:

nazwa bazy danych i czas jej utworzenia

nazwa bazy danych i czas jej utworzenia

nazwy i położenie plików danych i plików dziennika 

nazwy i położenie plików danych i plików dziennika 

powtórzeń

powtórzeń

informacje o przestrzeniach tabel

informacje o przestrzeniach tabel

historia dziennika, archiwalne informacje dziennika

historia dziennika, archiwalne informacje dziennika

informacje o zestawie kopii zapasowych

informacje o zestawie kopii zapasowych

informacje o kopiach plików danych

informacje o kopiach plików danych

informacje o punktach kontrolnych

informacje o punktach kontrolnych

Struktura fizyczna

Struktura fizyczna

background image

Inicjowanie bazy danych – odczytanie parametrów 

Inicjowanie bazy danych – odczytanie parametrów 

inicjacyjnych (sposób wykorzystania infrastruktury 

inicjacyjnych (sposób wykorzystania infrastruktury 

fizycznej)

fizycznej)

 

 

Inicjowanie bazy danych

Inicjowanie bazy danych

Parametry uruchomieniowe przechowuje się w 

pliku parametrów inicjowania instancji 

INIT.ORA

 a od wersji Oracle9i w repozytorium 

noszącym nazwę pliku parametrów serwera 

SPFILE

W pakiecie Oracle znajduje się przykładowy 

plik inicjacji, a także asystent konfiguracji

background image

CONTROL_FILES – położenie pliku kontrolnego

CONTROL_FILES – położenie pliku kontrolnego

DB_NAME – nazwa bazy danych

DB_NAME – nazwa bazy danych

 

 

Zbiór parametrów 

Zbiór parametrów 

uruchomieniowych

uruchomieniowych

• Każda baza powinna posiadać minimum 

dwa pliki kontrolne na innych dyskach 
fizycznych

• Utrata plików kontrolnych nie musi 

oznaczać zniszczenia bazy danych – 
istnieją metody ich odtwarzania

• W CONTROL_FILES można umieścić kilka 

różnych lokalizacji, co spowoduje 
automatyczne kopiowanie plików 
kontrolnych

background image

Pliki danych

Pliki danych

• każdy plik składa się z bloków bazy danych 

Oracle, złożonych z bloków SO na dysku

• rozmiar bloku Oracle waha się od 2KB do 32 KB 

(parametr DB_BLOK_SIZE)

• rozmiar bloku to najmniejsza ilość danych, którą 

można zapisać lub odczytać

• pierwszy blok każdego pliku danych to nagłówek 

pliku danych – zawiera on najważniejsze 
informacje, konieczne do utrzymania spójności 
bazy danych

background image

Pliki danych

Pliki danych

• najważniejszy element nagłówka to struktura punktu 

kontrolnego – logiczny znacznik czasu, wskazujący 
moment zapisania ostatniej zmiany w pliku danych

• Ma on kluczowe znaczenie w procesie odtwarzania bazy 

danych, ponieważ określa, z których dzienników 
powtórzeń należy skorzystać przy doprowadzeniu pliku 
danych do stanu sprzed awarii

• Z punktu widzenia warstwy fizycznej, plik danych jest 

składowany jako zbiór bloków systemu operacyjnego

• Z punktu widzenia warstwy logicznej pliki danych 

posiadają trzy pośrednie poziomy organizacji:

• bloki danych
• ekstenty
• segmenty

background image

segmenty, ekstenty i bloki danych

blok 
danych

ekstent

segment to obiekt taki jak tabela, czy 
indeks złożony z jednego lub wielu 
ekstentów

plik 
danyc
h

background image

segmenty, ekstenty i bloki danych

blok systemu operacyjnego

bloki Oracle

background image

Pliki dziennika powtórzeń 

Pliki dziennika powtórzeń 

 zawierają nagranie zmian dokonanych w bazie, będących 

efektem transakcji i wewnętrznych operacji Oracle

 Zapisanie zmian w dzienniku transakcji pozwala 

odtworzyć zmiany utracone na skutek awarii, 
zabezpieczając dzięki temu spójność transakcji

 Każda z instancji Oracle używa wątku powtórzeń w celu 

zapisania zmian dokonywanych w bazie

 Oracle utrzymuje wiele kopii plików dziennika powtórzeń, 

dokonuje i dokonuje zapisu do wszystkich elementów 
dziennika powtórzeń synchronicznie

 Po zapełnieniu jednego pliku dziennika powtórzeń, 

automatycznie rozpoczyna korzystanie z następnego 

background image

• Instancja jest metodą wykorzystywaną do dostępu 

do danych składającą się z procesów i pamięci 

współdzielonej

• Instancja (suma buforów pod wspólną nazwą 

Globalna przestrzeń systemowa SGA) – obszar 

pamięci współużytkowanej wykorzystywany przez 

Oracle’a do przechowywania informacji kontrolnych 

instancji Oracle’a

• SGA jest przydzielana podczas uruchamiania 

instancji i zwalniana podczas jej zatrzymywania

Globalna przestrzeń systemowa SGA

Globalna przestrzeń systemowa SGA

background image

• bufory pamięci podręcznej bazy danych

 – przechowują 

ostatnio używane bloki danych. Gdy użytkownik chce 

uzyskać dostęp do bloku danych, który nie znajduje 

się w pamięci podręcznej, blok ten musi zostać 

wczytany z dysku i w niej zapisany

• bufory dziennika powtórzeń

 – czyli zmian 

wprowadzonych do bazy – wykorzystywane do 

odtwarzania po awarii systemu

• pula współużytkowania

 – buforowane są różnego 

rodzaju obiekty, którymi mogą się dzielić użytkownicy 

np. zapytania i fragmenty zapytań SQL oraz ich 

wyniki, informacje ze słownika danych

• Oracle automatycznie zarządza pamięcią alokowaną w 

globalnym obszarze programu (Program Global Area) 

instancji

W skład informacji zawartych w SGA 

wchodzą:

background image

DBWR

DBWR

 – 

 – 

Data Base WRiter

Data Base WRiter

 – zapisuje bloki bazy danych z 

 – zapisuje bloki bazy danych z 

pamięci podręcznej bufora SGA do plików dyskowych

pamięci podręcznej bufora SGA do plików dyskowych

LGWR

LGWR

 – LoG WRiter – przechowuje informacje o 

 – LoG WRiter – przechowuje informacje o 

powtórzeniach z bufora dziennika w SGA do wszystkich 

powtórzeniach z bufora dziennika w SGA do wszystkich 

kopii bieżącego pliku dziennika powtórzeń na dysku

kopii bieżącego pliku dziennika powtórzeń na dysku

 

 

PMON

PMON

 – 

 – 

Process MONitor –

Process MONitor –

 monitoruje procesy oraz 

 monitoruje procesy oraz 

zarządza zasobami bazy

zarządza zasobami bazy

SMON

SMON

 – 

 – 

System MONitor

System MONitor

 – monitoruje system 

 – monitoruje system 

zarządzający pamięcią SGA

zarządzający pamięcią SGA

ARCn

ARCn

 – Archiver – odczytuje pliki dziennika powtórzeń po 

 – Archiver – odczytuje pliki dziennika powtórzeń po 

ich zapełnieniu przez Oracle i zapisuje ich kopie

ich zapełnieniu przez Oracle i zapisuje ich kopie

Podstawowymi procesami drugoplanowymi 

Podstawowymi procesami drugoplanowymi 

wymaganymi przez bazę danych są:

wymaganymi przez bazę danych są:

background image

• Przestrzeń tabel SYSTEM zawsze zawiera tabele słownika 

danych

• Tabele słownika danych poprzedzone przedrostkiem V$ i 

GV$ to tabele dynamiczne, nieprzerwanie aktualizowane, 
by odzwierciedlać bieżący stan bazy danych Oracle

• Statyczne tabele słownika danych mogą mieć przedrostki:

–  DBA_
– ALL_ 
– USER_

Słownik danych

background image

Przestrzenie tabel 

Przestrzenie tabel 

Wszystkie dane składowane w bazie danych 

Wszystkie dane składowane w bazie danych 

Oracle muszą znajdować sie w przestrzeni tabel

Oracle muszą znajdować sie w przestrzeni tabel

Przestrzeń tabel jest strukturą logiczną – składa 

Przestrzeń tabel jest strukturą logiczną – składa 

się z plików danych

się z plików danych

Każda przestrzeń tabel musi zawierać co 

Każda przestrzeń tabel musi zawierać co 

najmniej jeden plik danych

najmniej jeden plik danych

Każdy plik może przynależeć tylko do jednej 

Każdy plik może przynależeć tylko do jednej 

przestrzeni tabel

przestrzeni tabel

Baza danych może składać się z najwyżej 64 

Baza danych może składać się z najwyżej 64 

tysięcy plików danych

tysięcy plików danych

background image

przestrzenie tabel 

przestrzenie tabel i

 pliki danych

 pliki danych

przestrzeń 
tabel 
narzędzi

przestrzeń 
tabel 
użytkownik
a

pliki 
danych

pliki 
danych

pliki 
danych

pliki 
danych

pliki 
danych

pliki 
danych

background image

Indeks

Indeks

Plik danych nr 1

Plik danych nr 2

Przestrzeń tabel nr 1

Plik danych nr 3

Indeks

Przestrzeń tabel nr 

2

zależności pomiędzy przestrzenią 

zależności pomiędzy przestrzenią 

tabel                    a plikami danych

tabel                    a plikami danych

Tablica

Tablica

Tablica

background image

CREATE [UNDO] TABLESPACE nazwa przestrzeni 

CREATE [UNDO] TABLESPACE nazwa przestrzeni 

tabel

tabel

DATAFILE nazwa pliku danych rozmiar

DATAFILE nazwa pliku danych rozmiar

[instrukcja przechowywania]

[instrukcja przechowywania]

[BLOCKSIZE rozmiar [K]]

[BLOCKSIZE rozmiar [K]]

[TEMPORARY]

[TEMPORARY]

[EXTENT MANAGEMENT DICTIONARY]

[EXTENT MANAGEMENT DICTIONARY]

[EXTENT MANAGEMENT LOCAL[AUTOALLOCATE]]

[EXTENT MANAGEMENT LOCAL[AUTOALLOCATE]]

[EXTENT MANAGEMENT LOCAL[UNIFORM SIZE 

[EXTENT MANAGEMENT LOCAL[UNIFORM SIZE 

rozmiar [K/M]]]

rozmiar [K/M]]]

[SEGMENT SPACE MANAGEMENT AUTO]

[SEGMENT SPACE MANAGEMENT AUTO]

[SEGMENT SPACE MANAGEMENT MANUAL]

[SEGMENT SPACE MANAGEMENT MANUAL]

Tworzenie przestrzeni tabel 

Tworzenie przestrzeni tabel 

background image

Tworzenie przestrzeni tabel

Tworzenie przestrzeni tabel 

UNDO

 – parametr określa, że tworzona przestrzeń tabel 

będzie zawierać informacje służące do cofania 
operacji

instrukcja przechowywania

 - określa nazwę pliku, 

rozmiar itp.

BLOCKSIZE

 – tworzenie przestrzeni tabel o nie 

standardowych rozmiarach bloków

TEMPORARY

 – przestrzeń tabel będzie wykorzystywana 

jako tymczasowa

EXTEND MANAGEMENT

 – określa, czy przestrzeń tabel 

będzie zarządzana słownikiem danych, czy lokalnie

SEGMENT SPACE MANAGEMENT

 – instrukcja 

wykorzystywana do ustawienia automatycznego (za 
pomocą bitmapy) bądź ręcznego (za pomocą listy 
wolnych bloków) zarządzania wolną przestrzenią w 
segmentach

background image

segment danych

 – podstawowy typ segmentu, 

który może być wykorzystywany do 
przechowywania tabel oraz klastrów

segment indeksu

 – do przechowywania 

indeksów

segment przywracania (cofania operacji)

 – 

przechowywane są informacje służące do 
wycofywania operacji - segmenty te zostały 
zastąpione przestrzeniami tabel cofania 

segment tymczasowy

 – do przechowywania 

danych generowanych podczas działania 
Oracle’a - mogą być one używane do 
sortowania i złączeń

przestrzeń tabel może 

przestrzeń tabel może 

zawierać:

zawierać:

background image

• Transakcja – jednostka interakcji użytkownika z 

bazą danych (szereg podstawowych poleceń 

języka SQL realizowanych w bazie danych)

Własności transakcji

 atomowość

 – określa regułę 

wszystko albo nic  

zbiór 

operacji składowych transakcji musi być wykonany w 

całości albo nie wykonany wcale

 spójność

 – transakcja powinna przekształcić system z 

jednego stanu spójnego w inny spójny stan

 izolacja

 – transakcja powinna być wykonywana 

niezależnie od innych działających współbieżnie transakcji, 

przetwarzanych w tym samym środowisku. Skutki 

współbieżnego wykonania transakcji powinny być takie 

same, jak wówczas gdyby wykonywano je w sposób 

szeregowy

 trwałość – 

wyniki działania zatwierdzonych transakcji 

powinny być zachowane w pamięci trwałej

Zarządzanie transakcjami rozproszonymi

Zarządzanie transakcjami rozproszonymi

background image

Kończenie transakcji

Wszystkie transakcje kończą się na jeden z dwóch 

sposobów:

sukcesem

 oznaczającym trwałe wprowadzenie wszystkich 

modyfikacji do bazy danych

porażką

oznaczającą odwołanie transakcji i odtworzenie 

stanu bazy sprzed jej rozpoczęcia transakcji

Z definicji, transakcja zakończona sukcesem nie 

może zostać odwołana

System zarządzania zapisuje wszystkie 

podejmowane przez transakcję czynności w 

rejestrze transakcji - aby móc ją odwołać

background image

Zakończenie transakcji

Status zakończenia:

Status zakończenia:

– zatwierdzenie,
– wycofanie.

Zakończenie jawne:

Zakończenie jawne:

– wykonanie poleceń kończących transakcję: 

COMMIT

(zatwierdzenie) lub ROLLBACK (wycofanie).

Zakończenie niejawne:

Zakończenie niejawne:

– zakończenie sesji – zatwierdzenie,
– wykonanie operacji DDL lub DCL – zatwierdzenie,
– awaria – wycofanie.

background image

Polecenie:

• zwolnienie założonych blokad,
• usunięcie punktów bezpieczeństwa,
• sprawdzenie odroczonych ograniczeń 

integralnościowych,

• trwały zapis zmian, wprowadzonych 

przez operacje w ramach transakcji,

• zmiany, wprowadzone przez transakcję, 

są widoczne dla innych transakcji.

Zarządzanie transakcjami

Zarządzanie transakcjami

COMMIT

background image

Polecenie:

– odtwarza stan bazy danych i 

przywraca jej status do stanu po 
ostatniej operacji COMMIT

– zmiany wprowadzone do bazy 

danych po ostatniej operacji COMMIT 
są odwracane 

Zarządzanie transakcjami

Zarządzanie transakcjami

ROLLBACK

background image

Zarządzanie transakcjami 

rozproszonymi

• Transakcję  kończy  się  poprzez  jej  zatwierdzenie 

lub  wycofanie  -  domyślnie,  każda  transakcja  jest 

jawnie kończona przez użytkownika

• Zakończenie  jednej  transakcji  (zatwierdzenie  lub 

wycofanie) jest początkiem transakcji następnej

• Transakcję  zatwierdza  się  poleceniem  commit,  a 

wycofuje poleceniem rollback

• Wszystkie polecenia grupy DDL (np. create table, 

create  view,  alter  table,  drop  synonym)  i 

polecenia  grupy  DCL  (np.  grant,  revoke)  kończą 

się niejawnym poleceniem commit

background image

Zarządzanie transakcjami 

rozproszonymi

• Długą transakcję można podzielić na 

mniejsze, logicznie spójne fragmenty, 

wprowadzając w transakcji tzw. punkty 

zachowania (savepoints)

• Transakcję taką można wycofywać do 

wskazanego punktu zachowania

background image

Punkty bezpieczeństwa 

transakcji

Wprowadzenie punktu zachowania 

realizuje się poleceniem

savepoint 

savepoint 

nazwa_punktu_zachowania;

nazwa_punktu_zachowania;

background image

• transakcja pozostaje aktywna,
• zmiany, wprowadzone przez operacje, 

zrealizowane między punktem bezpieczeństwa 
a poleceniem ROLLBACK są anulowane,

• punkty bezpieczeństwa, ustawione pomiędzy 

punktem wskazanym a poleceniem ROLLBACK, 
zostają usunięte.

Punkty bezpieczeństwa transakcji

Punkty bezpieczeństwa transakcji

background image

Punkty bezpieczeństwa 

transakcji

INSERT INTO...
SAVEPOINT S1;
DELETE...
SAVEPOINT S2;
UPDATE...
ROLLBACK;

INSERT INTO...
SAVEPOINT S1;
DELETE...
SAVEPOINT S2;
UPDATE...
ROLLBACK TO S1;

INSERT INTO...
SAVEPOINT S1;
DELETE...
SAVEPOINT S2;
UPDATE...
ROLLBACK TO S2;

I

     II

III

background image

Punkty bezpieczeństwa 

transakcji

Usunięcie punktu bezpieczeństwa 

Wycofanie do wskazanego punktu 

zachowania

RELEASE SAVEPOINT 

RELEASE SAVEPOINT 

nazwa_punktu_zachowania

nazwa_punktu_zachowania

;

;

ROLLBACK

ROLLBACK

 to savepoint 

 to savepoint 

nazwa_punktu_zachowania

nazwa_punktu_zachowania

;

;


Document Outline