Laboratorium baz danych - Tworzenie bazy danych 3
Laboratorium Baz Danych
Tworzenie bazy danych
Opracowała:
Mgr inż. Aleksandra Werner
· Organizacja danych w przestrzenie tabel
· Zaprojektowanie struktury bazy tak, aby zapobiec fragmentacji i brakowi zasobów
· Przygotowanie systemu operacyjnego (ustawienie zmiennej ORACLE_SID)
· Przygotowanie pliku startowego
· Start instancji
· Wykonanie komendy CREATE DATABASE
· Zapewnienie bezpieczeństwa bazy poprzez stworzenie wielokrotnych plików dziennika i powielenie pliku kontrolnego
· Stworzenie tablic i perspektyw słownika danych
STARTUP
wystartowała instancja
został otwarty plik kontrolny, pliki danych
i pliki dziennika
OPEN
MOUNT
STARTUP MOUNT
został otwarty plik kontrolny
STARTUP NOMOUNT
NOMOUNT
SHUTDOWN
Rys.1 Start bazy danych
· Ustawienie zmiennej środowiskowej ORACLE_SID,
· Podłączenie do bazy jako użytkownik INTERNAL (na poziomie Systemu Operacyjnego następuje weryfikacja),
· Wydanie polecenia startu bazy (STARTUP) z ewentualnymi parametrami.
Instancja jest to grupa buforów (tzw. Obszar Globalny Systemu – SGA) wykorzystywana do obsługi bazy oraz szereg procesów drugoplanowych (programów rezydujących w pamięci operacyjnej komputera pracującego jako serwer Oracle’a), wykonujących wszystkie czynności związane z obsługą bazy i jej użytkowników. Zwykle dla jednej bazy podniesiona jest jedna instancja. Możliwe jest jednak otwarcie wielu instancji pracujących na danych jednej bazy przy użyciu opcji Serwera Równoległego.
Liczba procesów drugoplanowych pracujących w instancji Oracle’a jest zależna od ustawienia parametrów bazy. Istnieje jednak grupa procesów niezbędnych do pracy bazy:
DBWR (ang. Database Writer) – proces zapisujący dane wprowadzane przez użytkowników do bazy z buforów SGA do plików dyskowych.
LGWR (ang. Log Writer) – proces zapisujący dane z buforów dziennika powtórzeń do plików dziennika powtórzeń.
PMON (ang. Process Monitor) – monitor procesów trzymający pieczę nad zasobami bazy wykorzystywanymi przez użytkowników bazy. Proces ten odzyskuje zasoby zwolnione przez użytkownika, wycofuje niepotwierdzone transakcje, czyści nienormalnie zakończone połączenia, wykrywa zakleszczenia.
SMON (ang. System Monitor) – monitor systemu, utrzymujący porządek w SGA. Proces ten obsługuje plik kontrolny, odzyskuje przestrzeń po segmentach tymczasowych, wykonuje automatyczne odtwarzanie instancji.
Na rys.2 przedstawiono instancję Oracle’a wraz z wyspecyfikowaniem wybranych parametrów pliku inicjalizacyjnego (punkt 2.1.1), mających bezpośredni wpływ na wielkość instancji.
Na fizyczną strukturę bazy danych Oracle’a składają się następujące pliki:
· Plik inicjalizacyjny (i konfiguracyjny),
· Pliki dziennika powtórzeń (co najmniej 2),
· Pliki kontrolne,
· Pliki z danymi.
Plik inicjalizacyjny umożliwia:
- optymalizację wydajności przez dostosowanie struktury pamięci (np. il. buforów danych w pamięci),
- ustawienie wartości domyślnych dla całej bazy w momencie tworzenia,
- ustawienie limitów bazy (np. max ilośc użytkowników bazy),
- wyspecyfikowanie plików bazy.
Parametry, które powinny być określone:
DB_NAME - identyfikator bazy danych
CONTROL_FILES - nazwy plików kontrolnych (min. 2)
INIT_SQL_FILES - nazwy skryptów SQL-a do wykonania w czasie tworzeniabazy danych (zawsze sql.bsq; przydałoby się też: catalog.sql -tworzy perspektywy słownika oraz catproc.sql - tworzy obiekty niezbędne do opcji proceduralnej)
LOG_ARCHIVE_DEST - lokalizacja archiwizowanych plików dziennika powtórzeń
LOG_ARCHIVE_FORMAT - format nazwy archiwizowanych plików dziennika powtórzeń
USER_DUMP_DEST - lokalizacja plików śladowych procesów użytkownika
BACKGROUND_DUMP_DEST - lokalizacja plików śladowych procesów drugoplanowych
Parametry najczęściej modyfikowane:
AUDIT_TRAIL - włączenie/wyłączenie obserwacji bazy danych
DB_BLOCK_BUFFERS - liczba bloków buforów bazy danych w SGA
DB_BLOCK_SIZE - rozmiar w [B] bloku Oracle’a; rozmiar bloku nie może być zmieniony po utworzeniu bazy
DML_LOCKS - max. liczba blokad DML
IFILE - nazwa dodatkowego pliku z parametrami
LOG_BUFFER - rozmiar w [B] buforów dziennika w SGA
LOG_ARCHIVE_START - włączenie/wyłączenie automatyczne archiwizacji dziennika w trybie ARCHIVELOG
LOG_CHECKPOINT_INTERVAL - max. liczba bloków zapisanych do pliku dziennika mdzy pkt. kontrolnymi
LOG_CHECKPOINT_TIMEOUT - max odstęp w [sek] mdzy pkt. kontrolnymi
MAX_DUMP_FILE_SIZE - max. rozmiar w [blokach systemu oper.] pliku śladowego
OPEN_CURSORS - max liczba kursorów otwartych przez użytkownika
PROCESSES - max liczba procesów w SO jednocześnie podłączonych do bazy danych (z drugoplanowymi_
ROLLBACK_SEGMENTS - nazwy segmentów wycofania, aktywnych w danej instancji
SHARED_POOL_SIZE - rozmiar obszaru dzielonego SQL (w blokach Oracle’a) (nie powinna być zmniejszana poniżej 3500000 [B] bo zawiesi się wykonanie skryptu catproc.sql)
SQL_TRACE - włączenie/wyłączenie tworzenia plików śladowych dla procesów użytkownika
TIMED_STATISTICS - włączenie/wyłączenie pomiaru czasu operacji dla plików śladowych i monitora
CHECKPOINT_PROCESSES - włączenie/wyłączenie procesu CKPT
DB_FILES - max liczba otwartych plików danych
LOG_FILES - max liczba otwartych plików dziennika powtórzeń
Plik kontrolny zawiera informacje o fizycznej strukturze bazy danych oraz pewne informacje kontrolne potrzebne przy odtwarzaniu. W związku z tym, że dane zawarte w pliku kontrolnym są niezbędne do otwarcia i pracy bazy danych oraz do odtwarzania, bardzo często powiela się plik kontrolny na innym dysku.
Zawierają informacje o wszystkich zmianach w bazie danych (co zostało zmienione w wierszu, co zostało zapisane w segmencie wycofania, czy transakcja została potwierdzona, czy był realizowany punkt kontrolny, czy jest transakcja rozproszona,...) i są wykorzystywane tylko podczas odtwarzania.
SAVEPOINTS
max. liczba pkt. wycofania w transakcji
SNAPSHOT_REFRESH_PROCESSES liczba procesów SNPn, obsługujących aut. odświeżanie replikacji zdalnych tablic (opcja rozproszona)
PMON
SMON
DBnn
SNPn
RECO
ARCH
CKP
procesy drugoplanowe
obszar globalny systemu SGA
DB_BLOCK_BUFFERS liczba bloków w buforach
DB_BLOCK_SIZE - rozmiar bloku
SHARED_POOL_SIZE - określenie rozmiaru
LOG_BUFFER- rozmiar buforów dziennika powtórzeń
bufory dziennika powtórzeń
bufory bazy danych
obszar dzielony
maksymalny czas między punktami kontrolnymi
LOG_CHECKPOINT_TIMEOUT
LOG_CHECKPOINT_INTERVAL
proces DBWR
max liczba bloków zapisanych na plik dziennika między punktami
...
madzienx