„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.
Download
Report
Transcript „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.
„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
Projekt współfinansowany przez Unię Europejską
w ramach Europejskiego Funduszu Społecznego
Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83
www.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
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
4
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 czas
Domyś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
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
„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
Projekt współfinansowany przez Unię Europejską
w ramach Europejskiego Funduszu Społecznego
Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83
www.kapitalludzki.p.lodz.pl