bd2_10.pdf

(145 KB) Pobierz
bd2_10.dvi
BD2–BazyDanych2
drinż. TomaszTraczyk
10. Wybranezagadnieniaadministrowaniabazamidanych
Copyright c TomaszTraczyk
Instytut Automatyki iInformatykiStosowanej PolitechnikiWarszawskiej
Materiałydydaktyczne przeznaczone sąwyłączniedoindywidualnegoużytkustudiujących.
Rozpowszechnianie kopiibezpisemnejzgodyautorajestzabronione.
Literatura
[1] GarciaMolina, Ullman, Widom: Implementacja systemówbazdanych , WNT 2003
[2] Theriault, Carmichael, Viscusi: OracleDBA , RM 2001
1
268107060.015.png 268107060.016.png 268107060.017.png
Administrowaniebazamidanych
Głównezadaniaadministratora
(DBA– DatabaseAdministrator )
• Zapewnienie bezpieczeństwa danych
– wykonywaniekopiizapasowych ( backup )
– zarządzanie prawami dostępu
• Strojenie bazy danych
– strojenie parametrów DBMS
– zarządzanie zasobami (przestrzeń
dyskowa, czas procesorów itd.)
– wykrywanie sprawiających problemy
zapytań i aplikacji
– udział w strojeniu aplikacji
• Zarządzanie DBMS
– instalowanie/upgrade’yDBMS
– konfigurowaniebaz danych
– instalowanie, upgrade’y i konfiguracja
oprogramowania pomocniczego
(np. sieciowego)
Narzędziaadministratora
• SQL – zwłaszcza DDL
( Data Definition Language )
• Dedykowane narzędzia administracyjne
Przykład Oracle Enterprise Manager (OEM)
Autoryzacjadostępudob.d.
Elementy autoryzacji
• Autoryzacja podstawowa:
nazwa użytkownika i hasło
• Dodatkowe zabezpieczenia
– kodowanie hasła / pakietów
– współdziałanie z
systemem operacyjnym
systemami katalogowymi(LDAP)
systemami uwierzytelniania
(Kerberos, Radius itp.)
– użycie urządzeń zabezpieczających
(np. czytników kart)
Uprawnieniaspecjalne
• Właściciel słownika systemowego
• DBA
Zarządzanieużytkownikami
• Tworzenie użytkowników: CREATE USER ...
• Usuwanie użytkowników: DROP USER ...
• Zarządzanie prawami i rolami użytkowników
Zalecenieprojektowe10.1 Należy dążyć do tego, by każdy rzeczywisty użytkownik b.d.
dysponował swoim „kontem” w bazie i właśnie z niego korzystał.
W systemach internetowych, z uwagi na zastosowanie tzw. puli połączeń, zwykle nie można
kontrolowaćdostępu w ten sposób. Prawa dostępu muszą wówczas być kontrolowane przez
odpowiednio zaprojektowanie perspektywy oraz przez aplikacje.
2
268107060.018.png 268107060.001.png 268107060.002.png
Prawadostępu
Rodzajepraw
• Prawa systemowe – do wykonywania
pewnych typów operacji
– operacje: przyłączenie, DQL, DML,
DDL, eksport, import
– operacje danego typu na wszystkich
obiektach w bazie – dla DBA,
np. SELECT ANY TABLE
• Prawa do obiektów
• Kwoty
• Profile dostępu do b.d. i zasobów DBMS
• Profile dostępu do aplikacji
Prawadoobiektów
• Do swoich obiektów właściciel ma pełne
prawa
• Do cudzych obiektów prawa muszą być
jawnie nadane
• Granulacja praw do obiektów
– całe obiekty (tabele, perspektywy)
– wybrane kolumny – tylko dla operacji
INSERT , UPDATE i REFERENCE
• Przykłady praw do tabel i perspektyw:
SELECT , REFERENCE INSERT , DELETE ,
UPDATE( kolumny ) , ALTER , INDEX
Zalecenieprojektowe10.2 Należy dążyć do tego, by użytkownicy mieli jedynie te prawa, które
są im niezbędne do wykonywania właściwych im zadań.
Role
Rola = nazwany zbiór praw
Zastosowanieról
• Mogą być przyznawane użytkownikom
i innym rolom (hierarchia)
• Mogą służyć do
– zarządzania prawami dostępu w b.d.
– zabezpieczeń uzależnionych od użytej
aplikacji (role niedomyślne,
aktywizowane z podaniem hasła)
– sterowania aplikacjami
Typowerole
• CONNECT – prawo przyłączenia się do bazy
i utworzenia sesji
• RESOURCE – prawo tworzenia własnych
obiektów
Nadawanieiodbieraniepraworazról
• GRANT...ON...TO...
• REVOKE...ON...FROM...
• CREATE|DROP ROLE...
Zalecenieprojektowe10.3 Prawa dostępu powinny być – w miarę możliwości – organizowane i
zarządzane za pomocą ról.
W niektórych sytuacjach efektywne mogą być tylko prawa nadane wprost użytkownikowi,bez
pośrednictwa ról.
Zalecenieprojektowe10.4 Ustalenie systemu praw i ról powinno być istotnym elementem
projektu systemu informacyjnego.
3
268107060.003.png 268107060.004.png 268107060.005.png 268107060.006.png
Awarieikopiezapasowe
Awariebazydanych
• Niegroźne
– awaria zasilania
– awaria sprzętu bez uszkodzenia nośnika
– „pad” oprogramowania
• Poważne
– uszkodzenie nośnika (fizyczne, przez
wirus itp.)
– zniszczenie lub utrata serwera
– celowe lub omyłkowe niszczące działanie
użytkownika (np. DROP TABLE )
Odtwarzanie
• Automatyczne odtwarzanie po „miękkiej”
awarii
– użycie dzienników transakcji
– doprowadzenie transakcji do stanu
spójnego
• Odtwarzanie z kopii zapasowych
– odtworzenie danych z kopii zapasowej
– wykorzystanie dzienników transakcji
(odtwarzanie pełne lub do wybranego
punktu)
Kopiezapasowe
• Zakres: pełne / przyrostowe
• Okoliczności wykonania: zimne ( offline
backup / gorące ( online backup )
Innezabezpieczenia
• Klastry serwerów
• Serwery rezerwowe ( standby )
Zalecenieprojektowe10.5 Podstawowym obowiązkiem DBA jest regularne wykonywanie kopii
zapasowych, zabezpieczenie ich i posiadanie umiejętności odtwarzania danych z tych kopii.
Zalecenieprojektowe10.6 Każdy system informacyjny powinien mieć opracowaną i rzeczywiście
stosowaną procedurę wykonywania i zabezpieczania kopii zapasowych, dostosowanądo potrzeb
systemu (np. do dynamiki zmian danych).
Dziennikitransakcji
Buforowaniezapisu
• Zmiany danych są buforowane w RAM
– natychmiastowy zapis do struktur na
dysku byłby nieefektywny
• Bufory w RAM są zapisywane na dysku
– gdy zabraknie miejsca w przestrzeni
buforów w RAM
– oraz co określony czas
• Chwila, gdy wszystkie bufory zapisano
na dysk, nazywa się punktem kontrolnym
( checkpoint )
• Zatwierdzenie oraz odrzucenie transakcji nie
muszą powodowaćzapisów na dysk
Dziennikitransakcji
• Zastosowanie: odtwarzanie po awarii
– transakcje zatwierdzone powinny zostać
zapisane na dysk ( rollforward )
– transakcje odrzucone i niezakończone
powinny zostać wycofane ( rollback )
• Zawartość
– zmiany danych
np. stare i nowe wartości – dziennik z
unieważnianiem/powtarzaniem
( undo/redo log )
– operacje COMMIT i ROLLBACK
– początki i końce okresów zapisywania
buforów (punkty kontrolne)
• Zapis dziennika
– sekwencyjny – szybki
– natychmiast po każdej operacji
4
268107060.007.png 268107060.008.png 268107060.009.png 268107060.010.png
Organizacjapamięcidyskowej
Alokacjapamięcidyskowej(Oracle)
• Bloki (strony)
– podstawowe jednostki wymiany danych
pamięćdysk
• Ekstenty
– porcje alokacji przestrzeni dla obiektów
– złożone z ciągu kolejnych bloków
• Segmenty
– zbiory ekstentów, niekoniecznie ciągłe
– zawierające określone obiekty bazy
danych (tabelę, indeks itp.)
– znajdujące się w jednej partycji
(przestrzeni tabel – tablespace )
• Partycje (przestrzenie tabel)
– zajmują miejsce na określonym dysku
lub dyskach (w systemie plików lub
na surowych partycjach)
– wewnętrznie zarządzane przez DBMS
Parametryalokacji
• Wielkość bloku (stała)
• Wielkość ekstentu (zmienna)
• Histereza alokacji/dealokacjiekstentu
– zapobieżenie naprzemiennemu
alokowaniu i dealokowaniu
– rezerwy miejsca na zmiany rekordów
Problemyzalokacją
• Zmienna długość rekordów
• Fragmentacja pamięci
• Alokacja pamięci dla BLOBów
– wskaźniki (lokatory) w segmencie tabeli
– zawartość BLOBów w osobnym
segmencie
Partycjonowaniedanych
Problemy
• Rozmieszczenie
– partycji na dyskach
– obiektów w partycjach
– części obiektów w partycjach
• Kryteria decyzji
– wydajność
– wielkość danych a pojemność nośników
Partycjonowanieobiektów
• Sposób podziału
– wg zakresu danych
– wg listy wartości
– mieszający
• Wykorzystanie do optymalizacji operacji
na b.d.
– operacje na jawnie wskazanych
partycjach
– eliminacja partycji na podstawie
warunków zapytania ( partition pruning )
– złączenia z wykorzystaniem partycji
( partitionwise joins )
– równoległe modyfikacje partycji
• Zastosowanie
– hurtownie danych (zwykle podział
wg okresów czasu)
– VLDB ( Very Large Databases )
5
268107060.011.png 268107060.012.png 268107060.013.png 268107060.014.png
Zgłoś jeśli naruszono regulamin