73 Plan prezentacji 74 • Pliki bazy danych – pliki kontrolne, pliki dziennika powtórzeń, pliki konfiguracyjne, pliki tymczasowe, pliki danych • Bloki dyskowe Struktury fizyczne i logiczne bazy danych – format, struktura, zawartość, zarządzanie • Rozszerzenia – alokacja, określanie rozmiaru • Segmenty – typy segmentów, alokacja i wykorzystanie • Przestrzenie tabel – typy przestrzeni tabel, przestrzenie SYSTEM i SYSAUX, zarządzanie przestrzenią, przestrzeń tabel wycofania, przestrzenie wielkoplikowe Struktury fizyczne i logiczne bazy danych przestrzeń tabel SYSTEM przestrzeń tabel SYSAUX przestrzeń tabel USERS przestrzeń tabel UNDO 75 Plik kontrolny przestrzeń tabel TEMP • Niewielki binarny plik niezbędny dla działania bazy danych • Zawiera informacje istotne dla struktury logiczne pliki dziennika powtórzeń struktury fizyczne – bazy danych: nazwa, data utworzenia, plikach danych i plikach dziennika powtórzeń, przestrzeniach tabel – bezpieczeństwa: pliki kopii, archiwizowane pliki dziennika powtórzeń, historia dziennika powtórzeń, bieżący LSN, punkt kontrolny • Zmiana struktury fizycznej → kopia pliku kontrolnego • Pliki kontrolne mogą i muszą być multipleksowane plik parametrów plik danych plik danych plik haseł plik plik plik danych kontrolny danych archiwizowane pliki dziennika powtórzeń plik tymczasowy – każda instancja pliku kontrolnego na osobnym dysku – wykorzystanie mechanizmów systemu operacyjnego (mirroring) – monitorowanie kopii plików kontrolnych 76 Pliki kontrolne w OEM 77 Pliki dziennika powtórzeń 78 • Pliki binarne przechowujące wszystkie zmiany w bazie danych – rekord dziennika powtórzeń – wektory zmian (bufor danych, segment wycofania, tablica transakcji) • Dziennik powtórzeń obsługuje proces Log Writer (LGWR) – System Change Number (SCN) – Log Sequence Number (LSN) • Organizacja dziennika powtórzeń – cykliczny algorytm zapisu plików – multipleksowanie – grupy dziennika powtórzeń Pliki dziennika powtórzeń w OEM 79 V$LOG V$LOG V$LOGFILE V$LOGFILE V$LOG_HISTORY V$LOG_HISTORY Archiwizowane pliki dziennika powtórzeń • Automatycznie zapisywane przez procesy ARCn w trybie ARCHIVELOG • Wykorzystywane do – odtwarzania spójności bazy danych – aktualizowania bazy danych StandBy – retrospekcji za pomocą narzędzia LogMiner • Archiwizacja plików dziennika powtórzeń – ręczna – automatyczna SQL> SQL> ARCHIVE ARCHIVE LOG LOG LIST LIST Database Database log log mode mode Automatic Automatic archival archival Archive Archive destination destination Oldest Oldest online online log log sequence sequence Current Current log log sequence sequence No No Archive Archive Mode Mode Disabled Disabled USE_DB_RECOVERY_FILE_DEST USE_DB_RECOVERY_FILE_DEST 10043 10043 10045 10045 V$DATABASE V$DATABASE V$ARCHIVE_LOG V$ARCHIVE_LOG V$ARCHIVE_DEST V$ARCHIVE_DEST V$ARCHIVE_PROCESSES V$ARCHIVE_PROCESSES V$BACKUP_REDOLOG V$BACKUP_REDOLOG 80 Archiwizowane pliki dziennika powtórzeń w OEM 81 82 Plik haseł • Wykorzystywany do uwierzytelniania użytkowników poza systemem operacyjnym – przynależność do grup OSDBA, OSOPER – posiadanie przywileju SYSDBA, SYSOPER • Plik tworzony za pomocą narzędzia orapwd.exe • Statyczny parametr REMOTE_LOGIN_PASSWORDFILE – wartości: NONE, SHARED, EXCLUSIVE • Uwaga: od wersji Oracle 11g hasła są czułe na wielkość liter C:\> C:\> orapwd.exe orapwd.exe FILE=passwords.dat FILE=passwords.dat ENTRIES=10 ENTRIES=10 FORCE=Y FORCE=Y IGNORECASE=N IGNORECASE=N Pliki tymczasowe • Wykorzystywane przez tymczasowe przestrzenie tabel • Charakterystyka – lokalne zarządzanie rozszerzeniami (domyślnie UNIFORM 1M) – brak generowania informacji typu REDO – czasem wykorzystują opóźnioną alokację rozszerzeń – nie odnotowywane w plikach kontrolnych • Do czego się przydają? V$TEMPFILE V$TEMPFILE DBA_TEMP_FILES DBA_TEMP_FILES DBA_TEMP_FREE_SPACE DBA_TEMP_FREE_SPACE – globalne tabele tymczasowe – sortowanie: CREATE INDEX, ANALYZE, SELECT DISTINCT, ORDER BY, GROUP BY, UNION, INTERSECT, MINUS, Sort-Merge, Hash Join 83 V$PWFILE_USERS V$PWFILE_USERS 84 Pliki danych • Przechowują dane przestrzeni tabel i przestrzeni wycofania • Liczba plików ograniczona przez parametr DB_FILES • Zmiana rozmiaru – ręczna: ALTER DATABASE DATAFILE – automatyczna: ALTER DATABASE DATAFILE – ustalenie maksymalnego rozmiaru 'file.dbf' RESIZE 100M 'file.dbf' AUTOEXTEND ON • Zmiana dostępności – pliki online – pliki offline • Możliwa weryfikacja bloków dyskowych pliku "w locie" V$DATAFILE V$DATAFILE V$DATAFILE_HEADER V$DATAFILE_HEADER DBA_DATA_FILES DBA_DATA_FILES DBA_FREE_SPACE DBA_FREE_SPACE 85 Pliki danych w OEM 87 Bloki, rozszerzenia, segmenty segment segment 416KB 416KB rozszerzenie 104KB 8KB 8KB 8KB 8KB rozszerzenie 312KB8KB 8KB ang. • segment • extent • block 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB 8KB bloki danych bloki danych Pliki danych w OEM Zawartość i budowa bloku 86 88 • nagłówek: adres bloku, rodzaj segmentu nagłówek • katalog tabel: informacje o tabelach, katalog tabel której wiersze są przechowywane w katalog wierszy danym bloku • katalog wierszy: adresy wszystkich wolne miejsce wierszy w bloku dyskowym Łącznie nadmiar zajmuje 85-110 bajtów dane • dane: zawartość tabeli lub indeksu, wiersze mogą zajmować wiele bloków 89 Łańcuchowanie, migracja, ROWID Zarządzanie wolną przestrzenią w bloku 90 • Łańcuchowanie: występuje, gdy wstawiany wiersz nie mieści się w pojedynczym bloku danych, kolejne części wiersza powiązane przez ROWID – łańcuchowanie wewnątrz bloku: dotyczy wierszy z liczbą kolumn większą niż 255 PCTFREE 20% • Migracja: przeniesienie wiersza, który został zmodyfikowany, do nowego bloku dyskowego, w oryginalnym bloku pozostaje wskaźnik na nowy blok • Identyfikatory ROWID: fizyczny adres wiersza przechowywany w formacie OOOOOOFFFBBBBBBRRR PCTUSED 40% W każdym bloku dyskowym musi pozostać co najmniej PCTFREE miejsca zarezerwowanego na modyfikacje wierszy w bloku – – – – Blok nie będzie wykorzystywany do wstawiania nowych wierszy tak długo, aż zajętość przestrzeni nie spadnie poniżej PCTUSED Rozszerzenia • Rozszerzenie jest ciągłym obszarem bloków dyskowych • Liczba i rozmiar rozszerzeń uzależnione od definicji segmentu i przestrzeni tabel • Zarządzanie wielkością rozszerzeń – w oparciu o słownik bazy danych • początkowe rozszerzenie o rozmiarze INITIAL, • kolejne rozszerzenia wyliczane w oparciu o NEXT, PCTINCREASE – rozszerzenia o jednakowym rozmiarze (UNIFORM), domyślnie 1M – rozszerzenia automatyczne (AUTOALLOCATE), domyślnie 1M • Dealokacja – TRUNCATE ... DROP STORAGE – ALTER TABLE ... DEALLOCATE UNUSED – ALTER TABLE ... SHRINK SPACE [COMPACT] OOOOOO: numer obiektu (identyfikuje segment) FFF: numer pliku wewnątrz przestrzeni tabel BBBBBB: numer bloku wewnątrz pliku RRR: numer wiersza wewnątrz bloku 91 Segmenty • Segment to zbiór rozszerzeń przypisanych do obiektu • Rodzaje segmentów – segment danych: może zawierać tabelę, klaster tabel, partycję tabeli – segment indeksu: może zawierać cały indeks lub partycję indeksu – segment tymczasowy: tworzony automatycznie na potrzeby sortowania danych i przechowywania wyników tymczasowych • CREATE INDEX, SELECT … ORDER BY, SELECT DISTINCT, SELECT … GROUP BY, SELECT … UNION, SELECT … MINUS, SELECT … INTERSECT – segment wycofania: obszar w przestrzeni UNDO przechowujący obraz danych na potrzeby • wycofania bieżącej transakcji • odtworzenia zatwierdzonej transakcji • zapewnienia spójności odczytu 92 Przestrzenie tabel, pliki i segmenty 93 Przeznaczenie przestrzeni tabel 94 • Przestrzenie tabel pozwalają na przestrzeń tabel USERS – – – – pliki danych segmenty efektywne zarządzanie przestrzenią dyskową określanie limitów zasobów dla użytkowników zarządzanie dostępnością danych określanie szczegółowych polityk odtwarzania i tworzenia kopii • Rozmiar bloku zależy od przeznaczenia przestrzeni tabel – parametr DB_BLOCK_SIZE: domyślny rozmiar bloku, używany dla przestrzeni SYSTEM i TEMPORARY, wartości 2K÷32K – parametr DB_CACHE_SIZE: określa rozmiar pamięci podręcznej – parametry DB_2K_CACHE_SIZE, DB_4K_CACHE_SIZE, …, DB_32K_CACHE_SIZE: określają rozmiar partycji pamięci podręcznej /oracle/oradata/users01.dbf CREATE CREATE TABLESPACE TABLESPACE dane_2008 dane_2008 DATAFILE DATAFILE '/oracle/oradata/dane2008.dbf' '/oracle/oradata/dane2008.dbf' SIZE SIZE 100M 100M BLOCKSIZE BLOCKSIZE 4096; 4096; /oracle/oradata/users02.dbf Przestrzenie tabel w OEM 95 Przestrzenie tabel w OEM 96 97 Rodzaje przestrzeni tabel • Przestrzenie systemowe Stany przestrzeni tabel 98 • Dostępność – przestrzeń tabel SYSTEM: zawiera słownik bazy danych oraz wszystkie składowane jednostki PL/SQL – przestrzeń tabel SYSAUX: repozytorium komponentów opcjonalnych – online: przestrzeń tabel jest dostępna dla użytkowników – offline: przestrzeń tabel jest wyłączona, nie akceptuje nowych transakcji, nie akceptuje żadnych operacji DDL i DML, wyłączanie najczęściej na potrzeby odtwarzania i robienia kopii zapasowej • Przestrzeń wycofania – – – – • Aktualizacja do wersji 8i włącznie ręczne zarządzanie segmentami wycofania od wersji 10g domyślnie przestrzeń wycofania parametr UNDO_RETENTION cecha przestrzeni wycofania RETENTION GUARANTEE – read/write: przestrzeń tabel jest dostępna dla operacji DML i DDL – read/only: mogą być przechowywane na dyskach CD i WORM, nie generują danych undo, nie mogą służyć jako kopie bezpieczeństwa • Flashback • Tymczasowa przestrzeń tabel – FLASHBACK ON: przestrzeń tabel w trybie Flashback – FLASHBACK OFF: przestrzeń tabel nie może uczestniczyć w operacji FLASHBACK DATABASE – zawiera segmenty tymczasowe – obowiązkowa, gdy przestrzeń tabel SYSTEM jest zarządzana lokalnie Zarządzanie rozszerzeniami segmentów UET$ 99 FET$ Określanie rozmiaru rozszerzenia 100 • Parametry – INITIAL: rozmiar pierwszego rozszerzenia w segmencie, domyślnie jest to pięciokrotność wartości parametru DB_BLOCK_SIZE – NEXT: rozmiar drugiego rozszerzenia w segmencie – PCTINCREASE: procentowy wzrost rozmiaru względem poprzedniego rozszerzenia, domyślnie 50% – MINEXTENTS: liczba rozszerzeń przyznawanych do nowego segmentu – MAXEXTENTS: maksymalna liczba rozszerzeń • zarządzanie lokalne – – – – • zarządzanie ręczne sterowane bitmapami zalecane dla wszystkich przestrzeni automatyczne scalanie, brak rekurencji wydajny dostęp współbieżny – sterowane słownikiem danych – wykorzystuje tabele UET$ i FET$ – żmudne i trudne do dostrojenia CREATE CREATE TABLESPACE TABLESPACE ... ... STORAGE STORAGE (INITIAL (INITIAL 100K 100K NEXT NEXT 500K 500K PCTINCREASE PCTINCREASE 10) 10) INITIAL 100K NEXT 500K NEXT+1 550K 101 Zarządzanie blokami wewnątrz segmentów • Zarządzanie automatyczne – bitmapy dla każdego rozszerzenia – ignoruje PCTFREE i FREELIST – zdecydowanie zalecane – wydajny dostęp współbieżny – dwa wskaźniki wysokiej wody 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 • Zarządzanie ręczne Przestrzenie wielkoplikowe • Tradycyjna przestrzeń tabel (smallfile) zawiera do 1024 plików danych • Przestrzeń wielkoplikowa (bigfile) zawiera jeden plik danych – plik może zawierać do 232=4294967296 bloków – przestrzeń tabel musi być zarządzana lokalnie z automatycznym zarządzaniem segmentów (wyjątek: przestrzeń TEMP i UNDO) • Zalety – może pomieścić 8 EB danych dla rozmiaru bloku 32K (10g, 11g) – może pomieścić 8 PB danych dla rozmiaru bloku 32K (9i) – ułatwia zarządzanie plikami (ręczne i ASM) blok niesformatowany 0% – wyszczególniony blok nagłówkowy – zawiera wskaźniki do pierwszych bloków listy bloków wolnych bloki sterujące zawierające bitmapy są przechowywane w postaci B-drzewa 103 102 Określanie zajętości bloku 25% 50% 75% 100% przestrzeń zajęta przestrzeń wolna Zaszyfrowane przestrzenie tabel • W wersji 10g możliwość szyfrowania kolumn • W wersji 11g możliwość szyfrowania przestrzeni tabel – transparentne z punktu widzenia użytkownika bazy danych – chroni dane przez nieautoryzowanym dostępem z poziomu OS – algorytmy AES (128-256) i 3DES168 • Ograniczenia V$ENCRYPTED_TABLESPACES V$ENCRYPTED_TABLESPACES – nie można zaszyfrować istniejącej przestrzeni tabel – szyfrowane dane podlegają ograniczeniom przy transportowaniu CREATE CREATE TABLESPACE TABLESPACE ... ... ENCRYPTION ENCRYPTION USING USING 'AES256' 'AES256' DEFAULT DEFAULT STORAGE(ENCRYPT) STORAGE(ENCRYPT) 104 Automatic Storage Management (ASM) • Automatyczne zarządzanie zasobami dyskowymi – fizyczne dyski widziane w postaci grup dyskowych – fizyczne pliki tworzone automatycznie przez ASM w ramach potrzeb – grupy dysków podlegają równoważeniu obciążeń i mogą być zarządzane niezależnie (dodanie dysku do grupy, usunięcie dysku) • Co może być zarządzane? – pliki danych, pliki kontrolne, pliki dziennika powtórzeń (bieżące i archiwizowane), pliki RMAN, pliki dziennika Flashback • Co nie może być zarządzane? – pliki instalacyjne, pliki śladu, plik ostrzeżeń, wyniki UTL_FILE • Mylone pojęcia – Automatic Storage Management – Oracle Managed Files 105