Struktury fizyczne i logiczne bazy danych

advertisement
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
Download