„Relacyjne Bazy Danych (Oracle) ”
description
Transcript of „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
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
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
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
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
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
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
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ć
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
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”
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
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
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
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
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
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;
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
Przykładowy schemat
Dostępne tabele
SQL> select table_name from user_tables;
TABLE_NAME
------------------------------
DEPT
EMP
BONUS
SALGRADE
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)
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ść)
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)
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
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
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
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