250 likes | 404 Views
„Relacyjne Bazy Danych (Oracle) ” Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt.
E N D
„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 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
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 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
„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 83 www.kapitalludzki.p.lodz.pl