Oracle przechowuje dane fizycznie w tzw. plikach danych. Są to pliki o rozszerzeniu .DBF. Można je zlokalizować na dysku. Oracle tworzy takie pliki i przechowuje w nich tabele bazy danych, widoki, indeksy i inne obiekty schematu w postaci segmentów. Pliki danych są złączone i zorganizowane w logiczne jednostki przechowywania, nazywane przestrzeniami tabel Oracle tzw. tablespace.
W przeciwieństwie do plików danych, przestrzenie tabel nie mają żadnego fizycznego odwzorowania w systemie plików. Możemy je uznać za pośrednika między fizycznymi a logicznymi składnikami Oracle. Innymi słowy, przestrzeń tabel może być podobna do udostępnionego dysku twardego – umożliwia przechowywanie, przenoszenie lub usuwanie plików danych w obrębie tej przestrzeni. Jest sposobem na logiczną organizacje danych w plikach fizycznych. Konfiguracja taka jest zdecydowaną zalety bazy danych Oracle.
Ważne uwagi dotyczące przestrzeni tabel Oracle:
- Przestrzeń tabel należy tylko do jednej konkretnej bazy danych. Plik danych należy tylko do konkretnej przestrzeni tabel. Nie można udostępniać ani przenosić plików danych między przestrzeniami tabel, a także niemożliwe jest udostępnianie przestrzeni tabel między bazami danych.
- Przestrzeń tabel musi składać się przynajmniej z jednego pliku danych. Maksymalna liczba plików danych w jednej przestrzeni tabel to 1022 (rzeczywista liczba plików danych, które mogą być zawarte w przestrzeni tabel, zależy od systemu operacyjnego).
Przestrzenie tabel nie są identyczne. W zależności od typu danych i ich rozmiaru, można dokonać klasyfikacji przestrzeni tabel Oracle.
Rodzaje przestrzeni tablespace w Oracle
Jak już wcześniej zdefiniowaliśmy, dwa główne czynniki to rodzaj i rozmiar danych. Na tej podstawie możemy wyróżnić następujące rodzaje przestrzeni tabel w Oracle:
Typ danych | Ilość danych | |||
Permanent tablespace | Temporary tablespace | Undo tablespace | Big File tablespace | Small File tablespace |
Przechowuje obiekty które pozostają w bazie nawet po zakończeniu sesji. | Przechowuje obiekty które są usuwane z bazy po zakończeniu sesji. | Przechowuje dane niezbędne do wycofania transakcji. | Przechowuje duże ilości danych. | Domyślny typ tablespace. |
Przetrzymuje dane w plikach danych tzw. data files. | Przetrzymuje dane w plikach tymczasowych tzw. temp files. | Stores data permanently. | Tylko jeden plik – data file lub temp file. Maksymalna wielkość pliku to 32TB dla bloków 8K, lub 128TB dla bloków 32K. | Może składać się z wielu plików. |
Domyślne tablespace Oracle
Podczas tworzenia nowej bazy danych Oracle, automatycznie tworzone jest kilka przestrzeni tabel o określonych nazwach:
- SYSTEM
- SYSAUX
- USERS
- UNDOTBS
- TEMP
Każda z tych przestrzeni tabel zawiera określone dane:
- SYSTEM – domyślna przestrzeń tabel zawierająca słownik danych. Obejmuje definicje tabel, widoki i procedury składowane. Oracle automatycznie zarządza tymi informacjami.
- SYSAUX – pomocnicza przestrzeń tabel, która stała się obowiązkowa od wersji Oracle 10g. Zawiera pewne indeksy i tabele niesystemowe, które wcześniej należały do przestrzeni tabel SYSTEM. Przeniesienie tych elementów do przestrzeni SYSAUX zmniejsza obciążenie przestrzeni tabel SYSTEM.
- USERS – trwała przestrzeń tabel zawierająca dane aplikacji. Oracle wypełnia tę przestrzeń danymi tworzonymi i wprowadzanymi przez użytkowników.
- UNDOTBS – przestrzeń tabel zawierająca dane cofania dla automatycznego zarządzania cofaniem.
- TEMP – przestrzeń tabel zawierająca tymczasowe dane i indeksy. Tymczasowe przestrzenie tabel są niezbędne do pracy z dużymi tabelami oraz do zapytań i instrukcji takich jak DISTINCT, GROUP BY i ORDER BY.
Baza danych może być mała i wymagać tylko przestrzeni tabel SYSTEM. Jednak lepiej jest mieć przynajmniej jedną dodatkową przestrzeń tabel dla prawidłowego działania przestrzeni tabel Oracle. Można tam przechowywać dane oddzielnie, bez mieszania obiektów schematu z obiektami słownika. Dodatkowo, ułatwia to dokładne i elastyczne zarządzanie danymi.
Korzystanie z wielu przestrzeni tabel oferuje jeszcze więcej korzyści. Można kontrolować dostępną przestrzeń pamięci dla różnych użytkowników bazy danych, dostępność danych. Dodatkowo można także wykonywać częściowe zadania tworzenia kopii zapasowych i przywracania, alokować przestrzeń danych na szybszych dyskach dla lepszej wydajności itp.
Praktyczne ćwiczenia z konfiguracji przestrzeni danych dostępne w kursie: Praktyczna Administracja – Oracle Database!
Tryby online i offline dla tablespace Oracle
Przestrzeń tabel w trybie online umożliwia użytkownikom dostęp do wszystkich dostępnych danych do odczytu i zapisu. W szczególności przestrzeń tabel SYSTEM musi być ciągle online, ponieważ Oracle potrzebuje słownika danych do pracy. Tryb online jest domyślnym trybem dla przestrzeni tabel Oracle.
Z kolei w przypadku trybu offline nie ma dostępu do danych dla użytkowników. Zazwyczaj administratorzy baz danych wyłączają przestrzenie tabel w celu przeprowadzenia prac konserwacyjnych i aktualizacji. Ponadto, Oracle wyłącza przestrzenie tabel w przypadku wystąpienia błędów.
Tryb read-only
Read-only to kolejny z dostępnych trybów. Jak sama nazwa wskazuje możemy jedynie odczytywać dane, zapisy są niemożliwe. Oracle nie aktualizuje plików w takich przestrzeniach tabel, a użytkownicy mogą pominąć operacje tworzenia kopii zapasowych i przywracania dla takich statycznych części bazy danych. Możliwe jest usunięcie niektórych obiektów z przestrzeni tabel tylko do odczytu, ale nie można tam tworzyć ani zmieniać istniejących obiektów.
Podsumowanie
Koncepcja przestrzeni tabel jest jednym z charakterystycznych elementów Oracle. Kombinacja ta fizycznego magazynu(plików danych) z logicznymi przestrzeniami przechowywania (przestrzeniami tabel) pomaga programistom i administratorom baz danych organizować bazy danych i efektywnie wykonywać swoje zadania. Dodatkowo różne rodzaje przestrzeni tabel z ich specyficznymi cechami zapewniają niezbędną elastyczność dla profesjonalistów pracujących z bazami danych.