Struktura bazy danych
W bazach danych Oracle wyróżnić można strukturę fizyczną i logiczną. Struktury te są od siebie niezależne, można np. zarządzać zagadnieniami związanymi z fizycznym składowaniem danych, bez ingerowania w logiczną strukturę bazy.
--Fizyczna struktura bazy danych zdeterminowana jest przez system operacyjny na którym działa system. Rozróżniamy typy plików:
- pliki danych - .ora .dbf (pliki, gdzie fizycznie przechowywane są dane zapisane w bazie)
- pliki dziennika powtórzeń (redolog) - .log .rlog (zawierają dane o bazie służące do awaryjnego odtwarzania danych bazy. Każda baza Oracle posiada co najmniej dwa pliki dziennika powtórzeń.)
- pliki kontrolne - (są to małe pliki binarne zawierające informacje o fizycznej strukturze bazy. Zapisane są to m.in. nazwy wszystkich plików tworzących bazę wraz z pełną ścieżką dostępu, nazwa bazy danych i daty ostatnich zapisów dokonywanych w plikach bazy, katalog RMAN, rekordy logów, data utworzenia bazy; co najmniej 2)
- pliki konfiguracyjne - pfile spfile
- pliki śladu - .trc (szczegółowe info o krytycznych wystąpieniach)
- pliki alertu - alertSID.log (info związane z wystąpieniem sytuacji administratorskich instancji)
- pliki systemu - .dll .exe
- pliki archiwalne - .arc
- plik startowy - (zawiera zbiór parametrów startowych bazy. Informacje te czytane są tylko podczas startu bazy i zawierają m.in. wielkość obszaru SGA, nazwę bazy danych, itp. Plik ten nosi zwykle nazwę INIT.ORA)
--Logiczna struktura bazy danych zdeterminowana jest przez:
- ilość przestrzeni tabel,
- definicje schematów i należących do nich obiektów bazodanowych
Otwieranie bazy danych
W wyniku wydania polecenia startup open lub startup baza danych przechodzi kolejno przez trzy tryby pracy:
- NOMOUNT
- MOUNT
- OPEN
Tryb NOMOUNT - używany do tworzenia bazy danych, plików kontrolnych, itp., powoduje:
- uruchomienie instancji,
- otwarcie pliku z parametrami i plików śladowych,
Tryb MOUNT - używany do reorganizacji bazy danych (np. zmiany nazwy pliku) oraz odtwarzania po awarii, powoduje:
- otwarcie plików kontrolnych i przyłączenie plików z danymi oraz plików dziennika powtórzeń,
Tryb OPEN - udostępnia bazę danych użytkownikom do normalnej pracy, powoduje:
- otwarcie plików z danymi oraz plików dziennika powtórzeń,
- odtwarzanie po ewentualnej awarii
STARTUP FORCE; -w przypadku napotkanych błędów spróbuje je ominąć
Przestrzenie tabel
Wszystkie dane są przechowywane w przestrzeniach tabel, przestrzeń ma wiele fizycznych plików. Przestrzenie tabel mogą być włączane i wyłączane podczas pracy bazy danych. Rodzaje przestrzeni tabel:
- permanentna - dane przechowywane w tabelach
- temporary - będą zakładane obiekty tymczasowe dla usera
- undo - ma strukturę kołową, jedna na całą bazę
QUOTA - ilość miejsca jaką dajemy userowi w przestrzeni tablic
RESOURCE -rola … ma prawo zapisywać w dowolnej przestrzeni tablic
DBA_TS_QUOTAS -kto jakie ma quoty
Tabele
Tabela to miejsce, w którym znajdują się zbliżone tematycznie informacje o różnych rozmiarach. Rodzaje tabel:
- regularne
- partycjonowane (wykorzystywane do dzielenia jednej dużej tabeli na zbiór kilku mniejszych, co ułatwia zarządzanie i przyspiesza działanie)
- indeksowe (przechowują indeksy kolumn w postaci tabel, co zwiększa szybkość przeszukiwania
- zaawansowanego kolejkowania (pozwalają na zintegrowanie z bazą danych systemu kolejkowania wiadomości)
- zagnieżdżone (umożliwiają przechowywanie wewnątrz jednej kolumny tabeli wielu kolumn z danymi)
- tymczasowe (służą do tymczasowego przechowywania informacji na potrzeby konkretnego zadania)
Wyróżniamy następujące typy danych w tabelach:
- skalarne (varchar, date, itp.)
- referencyjne
- kolekcje (kolumna w tabeli może być tabelą)
Indeksy
-partycjonowane / niepartycjonowane
-btree
-bitmapowe
Indexy bitmapowe - zakładamy na kolumny, które mogą przyjąć małą liczbę wartości (tak/nie, płeć słowo zapisane binarnie, first wartość adres wiersza od którego obowiązuje, do którego obowiązuje)
-BTREE
--duża różnorodność wartości --wykonanie polecenia update jest niewielkich kosztów (nie wymaga przebudowy itp.) dla jednego rekordu --nie jest dobry dla zapytań z `OR' --dużo transakcji
-INDEX
--nieduża różnorodność wartości --update niewielki w kosztach index do całej tablicy budowany --nie ma znaczenia czy używany w poleceniach z `OR' --używane często jeżeli chcemy do wydajność tablic
UNIC - kolumna musi mieć unikalną wartość
INITTRANS -liczba transakcji, która może jednocześnie sięgać po blok
RMAN Recovery Manager
RMAN jest narzędziem dostarczonym przez Oracle do backupów i odtwarzania baz danych. Jest dostarczany razem z serwer Oracle. RMAN może automatycznie wykonywać backup i odtwarzanie następujących obiektów bazy danych:
- bazy danych - przestrzeni tabel - plików danych - plików kontrolnych - zarchiwizowanych plików dzienników powtórzeń
Dodatkowo RMAN może:
- generować logi z wszystkich backupów i operacji odtwarzania
- uruchamiać równolegle operacje odtwarzania i backupu w celu zwiększania wydajności
- znaleźć obiekty w bazie danych, które wymagają backupu.
Jak włączyć listenera?
LSNRCTL
SNMP Simple Network Managment Protocol
TNSNAMES.ORA - plik zawiera listę nazw usług sieciowych, adresów listenera, i opisy usług
LISTENER.ORA - zawiera adresy wszystkich listenerów na serwerze i różne parametry kontrolne używane przez listenera
ODBCA - Oracle Database Create Assistant -szybko -wykona wszystkie skrypty sysman -wszystko ustawia. Instalator- przykładowi użytkownicy tworzeni są od razu. Po wykonaniu Template baza jest otwarta.
Gdy robimy bazę ręcznie trzeba uzupełnić skrypty ALTER DATABASE, ALTER SYSTEM
Control file -przechowuje status fizycznej struktury bazy
Zawiera: --informacje o bazie, --archiwum logów, --rekordy Tablespace i datafile (nazwy plików, punkty kontrolne, status odczyt/zapis), --wątki redo (bierzące redo logi online), --date utworzenia bazy, --nazwa bazy, --current archive log mode, --rekordy logów, --katalog RMAN, --id bazy, które jest unikalne dla każdej bazy
Min 2 control file
Mechanizmy które dbają o integralność danych
-kod aplikacji -gwarantują spójność
-więzy integralności -sprawdzają spójność
-triggery - zapewniają spójność, wzmacniają mechanizmy, które mają weryfikować dane.
Constrainty -gwarantują spójność, łatwe w zarządzaniu, bardzo szybkie, mogą być włączone i wyłączone.
Rodzaje constraintów
PRIMARY KEY -sekwencja kolumn oznaczona jako klucz główny identyfikacji
FOREIGN KEY -kolumna, która odnosi się do referencji z inną tabelą. Dba o spójność
NOT NULL
UNIC -wartość w kolumnach jest unikatowa
CHECK -constrainty warunkowe
Kazda tabela w bazie może mieć tylko jeden primary key. PK gwarantuje, że żadne 2 wiersze nie będą mieć tej samej wartości, gwarantuje że kolumny są not null. Check Conditio musi być true lub mieć status nieznany.
VALIDATE -sprawdzenie czy wszystkie wartości wpisane spełniają warunki constrainta
ENABLE
DEFERRED/NODEFERRED -opożniony/nieopózniony
Nieopóźnione -stosuje się do każdego polecenia DML -constrainty natychmiastowe
Opóźnione -nie można zrobic cofnięcia operacji bo jest commit
USER
-limity -bezpośrednie przywileje -role -mechanizmy autoidentyfikacji -blokowanie kont -protokoły sieciowe -blokowanie dostępu do OS -dostęp do katalogów
SCHEMAT -kolekcja obiektów. User który posiada przynajmniej jeden obiekt(tabele, triggera, constraint, index, widok, itd.).
User istnieje gdy:
-ma tablespace'a -ma zdefiniowane quoty -musi być domyślna przestrzeń tab i przestrzeń tymczasowa
3