Server Oracle - System Zarządzania Bazą Danych - składa się z instancji Oracle i bazy danych Oracle Instancja Oracle - pewne procesy drugoplanowe i struktury pamięciowe - aby użytkownik mógł uzyskać dostęp do bazy danych instancja musi być uruchomiona- Instancja może zarządzać w danej chwili jedną bazą danych baza danych Oracle - Składa się z szeregu plików zwanych plikami bazy danych, np. pliki danych, pliki kontrolne, pliki dziennika powtórzeń, pliki parametrów, pliki haseł...
Architektura połączenia z Serwerem Oracle Klient -Serwer Aplikacji - Serwer - architektura trójwarstwowa - użytkownik uzyskuje dostęp do bazy danych podłączając swój komputer do Serwera Aplikacji który jest połączony także przez sieć z Serwerem Bazy Danych Klient - Serwer - architektura dwuwarstwowa - użytkownik uzyskuje dostęp do bazy danych podłączając swój komputer do Serwera Bazy Danych poprzez sieć Uruchamiany na komputerze Host - użytkownik bezpośrednio połączony z Serwerem - pracujący na tej samej maszynie, na której znajduje się baza danych.
Otwarcie sesji. Sesja- połączenie procesu użytkownika z procesem serwera - jest otwierana gdy autoryzacja użytkownika przebiegła pomyślnie. Sposób ustanowienia zależy od architektury połączenia (Klient -Serwer Aplikacji - Serwer, Klient - Serwer, Uruchamiany na komputerze Host )
Proces serwera - program, który bezpośrednio współpracuje z serwerem Oracle Ustanowienie połączenia Proces serwera Proces użytkownika otwarta sesja Użytkownik bazy danych Serwer Oracle
Instancja Oracle Obszar dzielony SGA (Globalny obszar dzielony System Global Area)) Bufor biblioteczny Bufor słownika danych Bufor danych Bufor dziennika powtórzeń Struktury pamięciowe PMON SMON DBWR LGWR INNE Procesy drugoplanowe
Struktury pamięciowe Oracle SGA - System Global Area (globalny obszar systemu) zawiera informacje współdzielone wszystkich użytkowników systemu, tworzony podczas startu instancji PGA - Program Global Area (globalny obszar programu, zawiera dane danego procesu serwera, tworzony podczas startu proces serwera)
SGA Obszar dzielony- przechowuje ostatnio wydane polecenia SQL (Bufor biblioteczny) i ostatnio wykorzystywane obiekty Bazy Danych (bufor Słownika Danych) Bufory Danych - przechowują kopię bloków danych odczytanych z plików bazy danych - znacznie zwiększa wydajność odczytów. Bufor Dziennika Powtórzeń - przechowuje zmiany dokonane w blokach bazy danych. - pozwala na odtworzenie bazy w razie awarii. Java Pool - opcjonalny obszar SGA - wymagany jesli wykorzystujemy Javę. PGA - jest obszarem zarezerwowanym dla każdego procesu użytkownika podłączonego do bazy danych Oracle. W przeciwieństwie do SGA, PGA nie może być dzielony.
Ważniejsze procesy drugoplanowe DBWn- proces zapisujący dla bazy danych kopiuje bloki danych z buforów do plików LGWR proces zapisujący dla logów- - organizuje zapis między buforami a plikami dziennika powtórzeń. SMON - Monitor systemu- odpowiedzialny za odtwarzanie instancji - np. wycofuje nie zrealizowane transakcje, odtwarza dane w razie awarii systemu na podstawie plików dziennika powtórzeń. PMON - Monitor procesów obsługuje awarie procesów użytkowników, czyści system po niepoprawnie zakończonym połączeniu użytkownika. CKPT - proces punktów kontrolnych -punkty kontrolne - zapis wszystkich zmodyfikowanych bloków danych do plików. Przyspieszają proces odtwarzania bazy danych po awarii instancji - wystarczy odtworzyć do ostatniego punktu kontrolnego.
Struktura bazy danych Oracle Bloki bazy danych Ekstenty przestrzenie tabel segmenty ekstenty bloki bazy danych segmenty Przestrzeń tabel
Przestrzenie tabel Logiczne jednostki przechowywania danych to przestrzenie tabel. Podstawową przestrzenią tabel jest przestrzeń tabel o nazwie SYSTEM - obowiązkowa w każdej bazie danych i tworzona podczas tworzenia bazy danych. Pozostałe przestrzenie tabel (tworzone instrukcją CREATE TABLESPACE ) zwiększają elastyczność, umożliwiają separację danych zgodnie z przyjętą strategią archiwizacji.
Narzędzia administracyjne Oracle Oracle Universal Instaler - do instalacji, aktualizacji i usuwania oprogramowania Oracle Oracle Database Configuration Assistant - -do tworzenia, modyfikacji i usuwania bazy danych Oracle Password File Utylity - narzędzie do tworzenia pliku haseł SQL*Plus - narzędzie umożliwiające distep do danych Oracle Enterprise Manager -narzędzie do administracji diagnostyki i strojenia (zwiększania elstyczności) bazy danych
Uruchamianie instancji
Parametry Startup OPEN - umożliwia użytkownikom dostęp MOUNT - nie udostępnia użytkownikom, pozwala wykonać pewne czynności administracyjne RESTRICT - jedynie użytkownicy z przywilejem RESTRICTED SESSION
Zamykanie bazy danych NORMAL- domyślny tryb uniemożliwia nowe połączenia, oczekuje na zakończenie sesji użytkowników po zakończeniu ostatniej sesji zapisuje bufory danych i dziennika powtórzeń TRANSACTIONAL - użytkownicy odłączani po zakończeniu bieżącej transakcji IMMEDIATE transakcje są wycofywane a sesje przerywane ABORT - natychmiastowe zamknięcie instancji - ponowne uruchomienie automatycznie w trybie odtwarzania jak po awarii systemu
Tworzenie bazy danych Przez narzędzie Oracle Database Configuration Assistant lub wykonanie skryptu SQL zawierającego polecene CREATE DATABASE Podczas tworzenia bazy danych można określić inne niż domyślne parametry dotyczące np. rozmiarów przestrzeni tabel czy ekstentów..., parametrów dot. wykorzystania pamięci, trybu archiwizacji. Można także zapamiętać parametry tworzonej bazy w postaci szablonu.
Po utworzeniu bazy Baza zawiera Pliki danych, pliki kontrolne i pliki dziennika powtórzeń użytkownika SYS i SYSTEM (z hasłem podanym w czasie instalacji Oracle) (po utworzeniu bazy należy zmienić hasła dla użytkowników SYS i SYSTEM) słownik danych Dynamiczne tabele wydajności
Słownik danych Zawiera informacje o: - logicznej i fizycznej strukturze bazy danych. -obiektach bazy danych (tabele, procedury wyzwalacze, itp.) - użytkownikach - przywilejach - obserwacje (np. kto chciał się połączyć...)
Dynamiczne tabele wydajności Oracle podczas pracy zapisuje informacje o aktywności bazy w tzw. dynamicznych tabelach wydajności. Tabele te ostnieją tylko w pamięci operacyjnej (SGA+PGA) są własnością użytkownika SYS Są tam takie informacje jak: czy dany obiekt jest otwarty, jakie blokady są założone, jakie sesje są aktywne?
plik kontrolny Plik kontrolny- plik binarny opisujący aktualną strukturę fizyczną bazy danych. Jest odczytywany przed otwarciem bazy danych w celu sprawdzenia czy nie wymaga ona odtwarzania. Powinien być zwielokratniany. (max 8 razy) - wymagana jest przynajmniej jeden.
Zawartość pliku kontrolnego Nazwa bazy danych data i czas utworzenia BD nazwy przestrzeni tabel nazwy i lokalizacje plików danych i dziennika powtórzeń informacje o punkcie kontrolnym informacje o kopiach archiwalnych
Wbudowane skalarne typy danych CHAR, NCHAR - typy znakowe stałej długości - VARCHAR2, NVARCHAR2 - typy znakowe zmiennej długości. (NCHAR, NVARCHAR - składowanie w wielobajtowych systemach składowania )
NUMBER - dane liczbowe DATE TIMESTAMP - data i czas w ułamkowych częściach sekundy (do 9 miejsc po przecinku) RAW - dane binarne o niewielkim rozmiarze CLOB, LONG- dla dużych znakowych NCLOB - duże znakowe z narodowym zestawem znaków BFILE- dane składowane w plikach na zewnątrz bazy danych
Tabele Polecenie CREATE TABLE UWAGA - opcja GLOBAL TEMPORARY - tworzy tabelę tymczasową, dostępną tylko w ramach danej sesji (ON COMMIT PRESERVE ROWS) lub transakcji (ON COMMIT DELETE ROWS)
Spójność danych Metody kontroli spójności danych: Kod aplikacji - np procedury uruchamiane po stronie użytkownika systemu Wyzwalacze bazodanowe - programy SQL wykonywane automatycznie gdy nastąpi pewne zdarzenie Deklaratywne więzy integralności
Typy więzów NOT NULL - kolumna nie może zawierać wartości pustych UNIQUE - dane w kolumnie nie powtarzają się PRIMARY KEY - klucz główny FOREIGN KEY - klucz obcy CHECK - określa w-ki poprawności danych w kolumnie
Stany więzów wyłączony niewalidujący (DISABLE, NONVALIDATE) - więz nie sprawdzany, można wpisać dane go naruszające wyłączony walidujący - nie sprawdzany ale blokuje kolumnę włączony niewalidujący - odrzuca nowe dane, które go naruszają, ale w kolumnie moga być już takie dane Włączony walidujący -(ENABLE, VALIDATE) gwarantuje że w kolumnie nie ma naruszajacych go danych
Definiowanie więzów Więzy definiujemy poczas tworzenia tabeli opcja CONSTRAINT - pozwala określić nazwę więzu opcja DEFFERABLE - definiuje więz opóźnialny (sprawdzany dopiero przy próbie zatwierdzenia transakcji)
Tworzenie użytkownika Polecenie CREATE USER
Użytkownicy SYSTEM i SYS konto SYS - najważniejsze konto w bazie Oracle - w jego ramach znajdują się wszystkie tabele systemowe. Konta tego nie powinno się używać do zwykłych zadań administracyjnych konto SYSTEM - użytkownik system jest właścicielem pewnych tabel specjalnego przeznaczenia. Tego konta także nie powinno się używać do zwykłych zadań administracyjnych
Zarządzanie hasłami Blokada konta - jeśli użytkownik poda okreslona ilość razy niepoprawne hasło Starzenie i wygasanie- po upływie określonego czasu użytkownik musi zmienić hasło Historia haseł - nie pozwoli na ponowne zastosowanie tego samego hasła po jego wygaśnięciu weryfikacja złożoności - zapewnia że hasło jest wystarczająco skomplikowane
Polecenie GRANT - nadawanie przywilejów REVOKE - odbieranie przywilejów Przywileje SYSDBA, SYSOPER - pozwalają na autentyfikację przez tzw. plik haseł. Podłączenie jako SYSDBA - daje nieograniczony dostep do wszystkich operacji
Przywileje obiektowe są związane z obiektami, każdy z nich ma listę przywilejów np. dla tabeli - wstawianie kolumny, wiersza... Właściciel danego obiektu ma wszystkie przywoleje z nim zwiazane
Role Do zarządzania przywilejami służą role - czyli grupy przywilejów Do tworzenie roli słuzy polecenie CREATE ROLE Do nadawania roli - GRANT ROLE do REVOKE ROLE Do usuwania roli DROP ROLE