„Relacyjne Bazy Danych (Oracle) ”

25
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego „Relacyjne Bazy Danych (Oracle)Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnychPrezentacja dystrybuowana jest bezpłatnie Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83 www.kapitalludzki.p.lodz.pl

description

„Relacyjne Bazy Danych (Oracle) ” Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. - PowerPoint PPT Presentation

Transcript of „Relacyjne Bazy Danych (Oracle) ”

Page 1: „Relacyjne Bazy Danych (Oracle) ”

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

„Relacyjne Bazy Danych (Oracle)”

Prezentacja jest współfinansowana przez Unię Europejską w ramach

Europejskiego Funduszu Społecznego w projekcie pt.

„Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do

zatrudniania osób niepełnosprawnych” Prezentacja dystrybuowana jest bezpłatnie

Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83www.kapitalludzki.p.lodz.pl

Page 2: „Relacyjne Bazy Danych (Oracle) ”

Instancja Oracle

Baza danych – zestaw plików w pamięci masowej komputera odpowiedzialnych za działanie bazy – lokalizacja - $ORACLE_HOME

Instancja bazy danych – zestaw procesów systemowych oraz struktur w pamięci operacyjnej komputera

Oracle uruchamia od kilku do kilkunastu procesów

Oracle alokuje pamięć zadeklarowaną w konfiguracji

Page 3: „Relacyjne Bazy Danych (Oracle) ”

Pliki bazy danych

Pliki danych znajdują się w innym katalogu niż zainstalowane pliki bazy danych

Zainstalowana baza znajduje się w $ORACLE_HOME, pliki z danymi domyślnie kilka katalogów wyżej, ścieżka określana jako $ORACLE_BASE

np: /home/oracle/app/oracle/oradata

Page 4: „Relacyjne Bazy Danych (Oracle) ”

4

Parametry bazy danych

Oracle udostępnia dwie możliwości przechowywania parametrów konfiguracyjnych

PFILE – parametry przechowywane są w pliku tekstowym

SPFILE – plik binarny zarządzany z poziomu serwera, nie ma możliwości łatwej edycji z poziomu systemu operacyjnego

Oracle 11g domyślnie używa SPFILE w lokalizacji: $ORACLE_HOME/dbs/spfile.ora

Page 5: „Relacyjne Bazy Danych (Oracle) ”

PFILE i SPFILE

PFILE można skonwertować do SPFILE i na odwrót

CREATE pfile FROM spfile

CREATE pfile='nazwa_pfile' FROM spfile='nazwa_spfile'

Operacje konwertowania pozwalają na edycję parametrów SPFILE poprzez konwersję do PFILE w przypadku złej kombinacji parametrów w SPFILE nie pozwalającej na uruchomienie bazy

Page 6: „Relacyjne Bazy Danych (Oracle) ”

Parametry bazy danych

Jeżeli użytkownik ma odpowiednie uprawnienia może sprawdzić wartości parametrów bazy danych kwerendą

select * from v$parameter

Uproszczony format

select name,value from v$parameter where name='spfile'

W sqlplus można korzystać z polecenia

show parameter nazwa

Page 7: „Relacyjne Bazy Danych (Oracle) ”

Parametry bazy danych

Przy korzystaniu z SPFILE można zmieniać wartości niektórych parametrów bez konieczności restartu bazy

ALTER SYSTEM SET open_cursors=2000 SCOPE=BOTH

Możliwe wartości parametru SCOPE

MEMORY – tylko dla obecnej instancji

SPFILE – w pliku SPFILE, stan bazy pozostaje bez zmian

BOTH – zarówno w pamięci jak i w SPFILE

Page 8: „Relacyjne Bazy Danych (Oracle) ”

Podział pamięci

Oracle definiuje kilka segmentów pamięci do wykorzystania przez bazę

SGA – System Global Area – segment przeznaczony na dane dotyczące danej instancji bazy danych.

PGA – Program Global Area – segment pamięci niewspółdzielonej, dla każdego połączenia alokowany jest nowy segment PGA. Segment posiada górną granicę – suma pamięci wykorzystanej przez wszystkie PGA nie może jej przekroczyć

Page 9: „Relacyjne Bazy Danych (Oracle) ”

SGA

SGA jest segmentem pamięci współdzielonej przydzielonym dla jednej instancji Oracle

Z tego segmentu korzysta większość procesów Oracle

Segment SGA jest dodatkowo podzielony na mniejsze segmenty

Page 10: „Relacyjne Bazy Danych (Oracle) ”

SGA

Część zawartości SGA

Bufory pamięci podręcznej – BUFFER CACHE (parametr db_cache_size)

Przestrzeń wspóldzielona – SHARED POOL (parametr shared_pool_size)

Bufor logów wycofań REDO LOG BUFFER (parametr log_buffer)

Obecne parametry można wyświetlić komendą „show sga” w sqlplus, dokładniejsze informacje: „show parameter target”

Page 11: „Relacyjne Bazy Danych (Oracle) ”

SGA

Od wersji 10g Oracle stara się automatycznie zarządzać pamięcią SGA – możliwość ręcznej konfiguracji dalej istnieje

Za zarządzanie wielkością komponentów SGA odpowiedzialna jest funkcja AMM (Automatic Memory Management)

W Oracle 11 dzięki AMM można zarządzać całą pamięcią (SGA+PGA) przy wykorzystaniu jednego parametru: MEMORY_TARGET, parametr ten może być zmieniany dynamicznie, pomocnym parametrem jest także MEMORY_MAX_TARGET

Page 12: „Relacyjne Bazy Danych (Oracle) ”

Buffer Cache

Bufor pamięci podręcznej – zwykle największa część SGA przechowuje dane z bazy danych w pamięci ulotnej systemu, aby poprawić czas dostępu

W przypadku żądania dostępu do danych baza sprawdzi najpierw czy dane nie są obecne w buforze podręcznym

Page 13: „Relacyjne Bazy Danych (Oracle) ”

Shared Pool

Segment pamięci wykorzystywany do przechowywania struktur obiektów w bazie

Dane każdego obiektu (metadane) w bazie danych przechowywane są w tabelach systemowych

Przechowywanie tych danych w pamięci pozwala na uzyskanie szybszego dostępu do danych z tabel – nie ma konieczności odczytywania metadanych z dysku

Page 14: „Relacyjne Bazy Danych (Oracle) ”

Redo Log Buffer

Bufor wycofań służy do przechowywania informacji na temat wykonanych operacji w bazie.

W przypadku potwierdzenia wykonania transakcji (sekwencji zapytań). Potwierdzenie nie pojawi się do momentu zapisu danych w dzienniku

W przypadku awarii bazy dane zapisane w logach redo mogą być wykorzystane do odtworzenia ostatnich operacji

Page 15: „Relacyjne Bazy Danych (Oracle) ”

Dostosowanie MEMORY_MAX_TARGET

Aby dostosować maksymalną pamięć wykorzystywaną przez serwer bazy danych Oracle można skorzystać z kwerendy

ALTER SYSTEM SET MEMORY_MAX_TARGET = ilośćM SCOPE = SPFILE;

Parametr MEMORY_MAX_TARGET nie jest dynamiczny

Page 16: „Relacyjne Bazy Danych (Oracle) ”

Dostosowanie MEMORY_TARGET

Sekwencja poleceń

ALTER SYSTEM SET MEMORY_TARGET = ilośćM;

ALTER SYSTEM SET SGA_TARGET = 0;

ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 0;

Page 17: „Relacyjne Bazy Danych (Oracle) ”

Przykładowy schemat

Po instalacji Oracle automatycznie zostaje utworzony schemat użytkownika „scott” zawierający kilka przykładowych tabel wypełnionych danymi

Hasło użytkownika scott: tiger

Domyślnie użytkownik jest zablokowany

ALTER USER scott ACCOUNT UNLOCK

Użytkownik scott musi zmienić hasło przy pierwszym zalogowaniu

Page 18: „Relacyjne Bazy Danych (Oracle) ”

Przykładowy schemat

Dostępne tabele

SQL> select table_name from user_tables;

TABLE_NAME

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

DEPT

EMP

BONUS

SALGRADE

Page 19: „Relacyjne Bazy Danych (Oracle) ”

Typy danych

Typy znakowe

CHAR (1:2000)

VARCHAR/VARCHAR2 (1:4000)

NCHAR/NVARCHAR2 (np: UTF8, 1:2000/1:4000 bajtów)

CLOB/NCLOB (do 8 TB danych)

LONG (nie używany, do 2GB danych)

Page 20: „Relacyjne Bazy Danych (Oracle) ”

Typy danych

Typy numeryczne

NUMBER: typ stało, lub zmiennoprzeinkowy, teoretycznie dowolnie duża liczba, długość jest zmienna, można ograniczyć precyzję oraz skalę:

kolumna NUMBER (prezycja,skala)

BINARY_FLOAT – liczba 32 bitowa, pojedyncza precyzja, 5 bajtów (1 na długość)

BINARY_DOUBLE – liczba 64 bitowa, podwójna precyzja, 9 bajtów (1 na długość)

Page 21: „Relacyjne Bazy Danych (Oracle) ”

Typy danych

Data/Czas

DATE – przechowuje zarówno datę jak i czasDomyślny format: DD-MON-YY

Format można zmienić korzystając z parametru NLS_DATE_FORMAT

Wbudowana funkcja TO_DATE pozwala przypisać datę w innym formacie niż standardowy

TO_DATE('MAR 7 2009','MON DD YYYY')

Kolumna typu DATE bierze pod uwagę anomalie występujące w kalendarzu (np: przerwa 10 dni po 4 października 1582)

Page 22: „Relacyjne Bazy Danych (Oracle) ”

Typy danych

Data/Czas

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE

Typy TIMESTAMP pozwalają przetrzymywać ułamkowe części sekund – wartość konfigurowalna od 0 do 9, domyślnie 6

TIMESTAMP (9) WITH TIME ZONE

Page 23: „Relacyjne Bazy Danych (Oracle) ”

Typy danych

Duże obiekty – LOB (Large Object)

BLOB (2^32 -1 bloków (CHUNKS)) – rozmiar bloku konfigurowalny (teoretycznie max: 128 TB)

Oracle 11g wprowadziło nowy format - SECUREFILE

CLOB (2^32 -1 bloków)

NCLOB (2^32 -1 bloków)

BFILE – dane w pliku binarnym znajdującym się w przestrzeni użytkownika: 2^32-1 bajtów, w Oracle 11g: 2^64 -1 bajtów

Typ tylko do odczytu

Duże obiekty umożliwiają dostęp losowy do danych

Page 24: „Relacyjne Bazy Danych (Oracle) ”

Typy danych

Typy specyficzne dla bazy danych Oracle

ROWID – (restricted) Format: BBBBBBB.RRRR.FFFFF (B – numer bloku, R –

wiersz w bloku, F – plik bazy danych)

ROWID – (Extended)Format: OOOOOOFFFBBBBBBRRR (O- numer

segmentu)

UROWID (Universal ROWID) – jednoczesne przechowanie logicznego i fizycznego ROWID

ROWID to najszybszy sposób na uzyskanie dostępu do danych – wymagany jest jeden odczyt

Page 25: „Relacyjne Bazy Danych (Oracle) ”

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

„Relacyjne Bazy Danych (Oracle)”

Prezentacja jest współfinansowana przez Unię Europejską w ramach

Europejskiego Funduszu Społecznego w projekcie pt.

„Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do

zatrudniania osób niepełnosprawnych” Prezentacja dystrybuowana jest bezpłatnie

Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83www.kapitalludzki.p.lodz.pl