wykłady z administracji bazą danych oracle 2010 wykŁad 1stud.ics.p.lodz.pl/~aangiel/semestr...

50
Wykłady z Administracji bazą danych Oracle 2010 1 WYKŁAD 1 WWW.ploug.org.pl i www.oracle.com – strony z pomocami do Oracle Rozwój Oracle DB: 1978 – Oracle v 1 – nigdy oficjalnie nie dystrybuowana 1979 – O v2 – pierwszy produkt komercyjny 1982 – zmiana nazwy firmy z Relational Software na ORacle Software 1985 – O v 5 – architektura klient-server 1988 – O v. 6 – wprowadzenie blokad, backupów „na gorąco”, języka PL/SQL 1992 – o7 1998 – o 8 1999 – o8i 2001 – o9i 2003 – o 10g (grid computing) 2007 – o 11 Oracle produkty i usługi: database: o baza danych Oracle sprawdza się w instytucjach sieciowych application serwer – platforma Oracle j2ee integruje elementy potrzebne do rozwoju wdrażania aplikacji webowych Oracle applications – jest zestawem aplikacji biznesowych pozwalających na zarządzanie i automatyzacji całości procesów w organizacji Oracle collaboration suite – służy połączeniom i komunikacji w organizacji głosowym, e-mail, fax, łączność bezprzewodowa, kalendarz informacji i pliki Oracle developer suite – to zintegrowane środowisko które laczy w sobie narzędzia do rozbudowy aplikacji orz narzędzia Business Intelligence Oracle services - Usługi takie jak Oracle consulting i Oracle university dostarczają niezbędnych ekspertyz dla projektów Oracle Oracle Database 11g „g” oznacza „grid” – sieć siatka Global Grid forum (GGF) www.gridforum.org Technologia sieci Oralce obejmuje: Sieć aplikacji ,Kontrola w sieci ASM pozwala na rozplanowanie bazy danych na wszystkich dyskach. dodanie lub usuniecie dysku powoduje ponowne rozplanowanie danych RAC – pozwala na używanie przez więcej niż jedna instancje tych samych plików, bazy danych rozmieszczonych na rożnych serwerach. Jeśli jeden z serwerów ulegnie awarii Instancja bazy danych na innym serwerze będzie przetwarzała transakcje OS umożliwia przepływ i współdzielenie danych i zdarzeń w tej samej bazie danych lub miedzy kilkoma bazami danych. Podczas aktualizacji umożliwia przechowywanie po każdej stronie 2 zsynchronizowanych kopii Ułatwiają zarządzanie wszystkimi komponentami infrastruktury Oracle

Upload: ngothuy

Post on 05-Feb-2018

253 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

1

WYKŁAD 1

WWW.ploug.org.pl i www.oracle.com – strony z pomocami do Oracle

Rozwój Oracle DB:

• 1978 – Oracle v 1 – nigdy oficjalnie nie dystrybuowana

• 1979 – O v2 – pierwszy produkt komercyjny

• 1982 – zmiana nazwy firmy z Relational Software na ORacle Software

• 1985 – O v 5 – architektura klient-server

• 1988 – O v. 6 – wprowadzenie blokad, backupów „na gorąco”, języka PL/SQL

• 1992 – o7

• 1998 – o 8

• 1999 – o8i

• 2001 – o9i

• 2003 – o 10g (grid computing)

• 2007 – o 11

Oracle produkty i usługi:

• database:

o baza danych Oracle sprawdza się w instytucjach sieciowych

• application serwer – platforma Oracle j2ee integruje elementy potrzebne do rozwoju

wdrażania aplikacji webowych

• Oracle applications – jest zestawem aplikacji biznesowych pozwalających na zarządzanie i

automatyzacji całości procesów w organizacji

• Oracle collaboration suite – służy połączeniom i komunikacji w organizacji głosowym, e-mail,

fax, łączność bezprzewodowa, kalendarz informacji i pliki

• Oracle developer suite – to zintegrowane środowisko które laczy w sobie narzędzia do

rozbudowy aplikacji orz narzędzia Business Intelligence

• Oracle services - Usługi takie jak Oracle consulting i Oracle university dostarczają

niezbędnych ekspertyz dla projektów Oracle

Oracle Database 11g

• „g” oznacza „grid” – sieć siatka

• Global Grid forum (GGF) www.gridforum.org

• Technologia sieci Oralce obejmuje: Sieć aplikacji ,Kontrola w sieci

• ASM pozwala na rozplanowanie bazy danych na wszystkich dyskach. dodanie lub usuniecie

dysku powoduje ponowne rozplanowanie danych

• RAC – pozwala na używanie przez więcej niż jedna instancje tych samych plików, bazy danych

rozmieszczonych na rożnych serwerach. Jeśli jeden z serwerów ulegnie awarii Instancja bazy

danych na innym serwerze będzie przetwarzała transakcje

• OS umożliwia przepływ i współdzielenie danych i zdarzeń w tej samej bazie danych lub

miedzy kilkoma bazami danych. Podczas aktualizacji umożliwia przechowywanie po każdej

stronie 2 zsynchronizowanych kopii

• Ułatwiają zarządzanie wszystkimi komponentami infrastruktury Oracle

Page 2: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

2

• Enterprise manager grid to zestaw narzędzi, które ułatwiają zarządzanie wszystkimi

komponentami infrastruktury Oracle

Architektury bazy danych Oracle:

• serwer Oracle jest systemem zarządzania baza danych który zapewnia otwarte,

kompleksowe, zintegrowane podejście do zarządzania informacją.

• Składa się z instancji Oracle oraz bazy danych Oracle

• serwer Oracle musi w niezawodny sposób zarządzać dużą ilością danych w środowisku z

wieloma użytkownikami

• serwer Oracle musi również zapobiegać nieautoryzowanemu dostępowi oraz dostarczać

efektywnych rozwiązań w przypadku problemów z odzyskiwaniem danych po awarii

Zadania dla administratora bazy danych ORacle:

• ocena sprzętu dla serwera bazy danych

• instalacja oprogramowania Oracle

• planowanie strategii dla bazy danych i bezpieczeństwa

• tworzenie, migracja i otwieranie bazy danych

• tworzenie kopii zapasowej bazy danych

• rejestrowanie użytkowników systemu i planowanie ich dostępu do sieci Oracle

• projektowanie i implementacja (realizacja(bazy danych)

• odzyskiwanie bazy danych po awarii

• Monitorowanie wydajności bazy danych

Oracle – produktu i usługi:

• OUI – służy do instalowania i konfiguracji wszystkich komponentów

• DBCA – pozwala na stworzenie bazy danych Oracle na podstawie dostarczonych szablonów;

umożliwia kopiowanie danych wstępnie skonfigurowanej bazy danych

• DBUA (database upgrade assistant (DBUA) - [pozwala na uaktualnianie istniejącej bazy

danych do nowej wersji Oracle

• Oracle Net Manager - używany do skonfigurowania połączeń z siecią dla baz danych i aplikacji

Oracle

• Oracle Enterprise Manager (EM) – zestaw narzędzi do zarządzania komponentami Oracle,

instancje baz danych, serwery aplikacji, serwery WWW, wspolpracuje z innymi narzędziami

oracle, udostępnia 3 główne narzędzia administracyjne,

• SQL*PLUS – stanowi wiersz poleceń do zarządzania baza danych iSQL*PLUS jest interfejsem

pracującym w oparciu o przeglądarkę

• RECOVERY MANAGER (RMAN) – zestaw narzędzi do tworzenia kopii zapasowych i

przywracania bazy danych lub poszczególnych jej plików

• ORACLE SECURE BCKUP – pozwala na tworzenie kopii zapasowych baz danych Oracle i

sieciowej pamięci masowej z wykorzystaniem napędów taśmowych wyposażony w funkcje

szyfrowania ochrony danych i dynamicznego współużytkowanie napędów

• DATA PUMP – umożliwia szybki transfer danych z jednej bazy do innej (można wykorzystać

np. podczas eksportu tabeli)

• SQL Loader – pozwala na załadowanie danych z pliku zewnętrznego

• Command Line to ols – do administracji Enterpise manager’em

Page 3: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

3

(emetl start | status | set | stop)

Uruchomienie lub zatrzymanie SQL plus (isqlpliusctrl start | stop)

Administracja procesem nasłuchiwania (lsnrctl help | start | status | stop)

Optimal Flexible Architecture (OFA)

OFA stanowi zestaw metod konfiguracji baz danych Oracle

• ułatwia organizacje oprogramowania

• ułatwia rutynowe zadania administracyjne

• ułatwia przełączanie miedzy wieloma bazami danych

• Zarządza i administruje odpowiednim przyrostem bazy danych

• Wspiera procesy eliminowania fragmentacji wolnego miejsca

pliki kontrolne: *.ctl

pliki dziennika powtórzeń: *.log

pliki danych: *.dbf

ORACLE_BASE: określa katalog startowy struktury katalogowej Oracle dla narzędzi OFA

ORACLE_HOME: określa katalog zawierający oprogramowanie Oracle.

ORACLE_SID: wstępna nazwa instancji. jest to ciąg cyfr i liter, musi zaczynać się od litery. sugerowane

żeby identyfikator systemu miał maksymalnie 8 znaków

NSL_LANG: określa początkowe ustawienia National language suport (NLS)

Planowanie bazy danych:

• DBA powinien zaplanować: strukturę logiczna przechowywania bazy danych i jej realizacje

fizyczna, kompleksowy projekt bazy danych

WYKŁAD 2 - Administrowanie bazą danych Oracle pl/SQL

Czym jest pl/SQL

• stanowi proceduralne rozszerzenie języka SQL

• jest standardowym językiem dostępu do danych dla relacyjnych baz danych Oracle

• integruje konstrukcje proceduralne z SQL

• zapewnia struktury blokowe dzięki czemu zarządzanie kodem jest łatwiejsze

• zapewnia konstrukcje proceduralne m In:

o zmienne, stałe i typy

o struktury kontrolne: instrukcje warunkowe i pętle

o jednostki programowe wielokrotnego wykorzystania (raz napisane, wykonane wiele

razy)

Struktura bloku pl/SQL

blok pl/SQL składa się z 3 części:

• deklaratywnej (opcjonalna): sekcji deklaracji zaczyna się słowem kluczowym Declare a kończy

się, gdy zaczyna się sekcja wykonywalna: deklaracje wszystkich stałych, zmiennych, kursorów

oraz wyjątków zdefiniowanych przez użytkownika - opcjonalna

Page 4: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

4

• wykonywalnej (wymagana): sekcja wykonywalna zaczyna się słowem kluczowym BEGIN, a

kończy END(END jest zakończone średnikiem). wykonywalna sekcja pl/SQL może zawierać

dowolną liczbę bloków.

• wyjątków (opcjonalnie) sekcja wyjątków jest zagnieżdżona w sekcji wykonywalnej.

Rozpoczyna się od słowa kluczowego EXCEPTION

UWAGA: słowa kluczowe DECLARE, BEGIN i EXCEPTION nie są zakończone średnikiem. Słowo

kluczowe END oraz wszystkie instrukcje SQL i PL/SQL muszą być zakończone średnikiem.

Typy bloków:

1. Bloki anonimowe:

[declare] Begin –statements [exception] end;

• są to bloki bez nazwy

• nie są przechowywane w bazie danych

• są przekazywane do realizacji przez silnik pl/SQL w czasie wykonywania

• Z takich bloków składają się wyzwalacze w Oracle

• Chcąc uruchomić ponownie ten sam blok należy go przepisać

• Nie można wywoływać wcześniejszych bloków, ponieważ przestają istnieć po wykonaniu

2. procedure:

PROCEDURE name is Begin –statements [exception] end;

• są nazwanymi blokami pl/sql

• przechowywane są w bazie danych

• można wywołać je w dowolnym momencie (zależnie od potrzeb aplikacji)

• Mogą być zdefiniowane jako procedury lub funkcje, funkcja musi zwrócić wartość

zazwyczaj procedury stosuje się do wykonywania określonych działań zaś funkcje

obliczania i zwracania wartości

• Podprogramy można przechowywać na serwerze lub w ramach aplikacji

wykorzystując komponenty Oracle (formularze raporty) można zadeklarować

procedury i funkcje w ramach aplikacji (formularza lub raportu ) i połączyć je z innymi

procedurami funkcjami i wyzwalaczami

FUNKCJE:

FUNCTION name return datatype IS BEGIN

---statements

BEGIN

zmienne – zastosowania

• czasowe składowanie danych

• manipulowanie przechowywanymi wartościami

• ponowne odwołania

Identyfikatory/ zmienne:

• Identyfikatory są wykorzystywane do nazywania zmiennych

• konwencje nazewnictwa zmiennych:

o muszą zaczynać sięod litery

Page 5: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

5

o mogą zawierać litery i cyfry

o mogą zawierać znaki specjalne (np. znak $, znak _ i znak #)

o limit długości do 30 znaków

o nie mogą być słowami zastrzeżonymi

• Zmienne są

o Deklarowane I inicjowane w sekcji deklaratywnej

o Używane i przypisywane nowym wartościom w sekcji wykonywalnej

o Przekazywane jako parametry do podprogramów PL/SQL

o Wykorzystywane do przechowywania wyników podprogramów PL/SQL

Składnia:

identyfikator[CONSTANT] typ_danych [NOT NULL] [:= | DEFAULT wyrażenie];

Przykłady:

emp_hiredatre DATE

emp_daptno NUMBER(2) NOT NULL := 10;

location VARCHAR(13) := ‘Atlanta’;

c_ comm CONSTANT NUMBER := 1400;

/ - wykonywanie bloku

Typy zmiennych:

• skalarne – posiadają jedną wartość, zależna od typu danych

• złożone – zawierają elementy wewnętrzne, które mogą być typu skalarnego lub złożonego

np. rekord, tabela;

• referencyjne – przechowują wskaźniki do miejsc składowania

• Large object (LOB) – przechowują wartości, zwane lokalizatorami, które określają lokalizację

dużych obiektów, takich jak obrazy graficzne

• Zmienne inne niż PL/SQL (Non-PL/SQL; Bind variables) - uwzględniają zmienne języka

zdeklarowane w programach prekompilowanych, pola ekranów formularzy oraz zmienne

hosta iSQL*Plus

Deklarowanie zmiennych w PL/SQL

• zmienna bez przypisanej wartości początkowej zawiera domyślnie NULL. Dobrze jest

inicjować wszystkie zmienne.

• Dwa obiekty mogą mieć taką samą nazwę tylko wtedy gdy SA zdefiniowane w rożnych

blokach. Tam gdzie współistnieją można używać dla nich etykiet

• Należy unikać nazywania zmiennych tak samo, jak kolumn. Jeśli zmienna PL/SQL wystąpi w

wyrażeniu SQL i ma taką samą nazwę, jak kolumna, Oracle zakłada, że jest to

• Należy nakładać ograniczenie NOT NULL, gdy zmienna musi zawierać wartość, Nie można

przypisać wartości null do zmiennej zdefiniowanej jako NOT NULL

• Po NOT NULL musi następować klauzula inicjalizacyjna np.: kod_pin NUMBER (15) NOT NULL

:= ‘1234’

BINARY_FLOAT i BINARY_DOUBLE – nowe typy danych

Page 6: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

6

Zmienne z atrybutem %TYPE

• służy do zadeklarowania zmiennej zgodnie z:

o definicją kolumny bazy danych – najczęściej

o inna zadeklarowana zmienna

• poprzedzany jest

o tabelą bazy danych i kolumną

o nazwą zadeklarowanej zmiennej

• Zalety:

o Można uniknąć błędów spowodowanych niezgodnością typów danych i złą precyzją

o Nie trzeba zmieniać deklaracji zmiennej w przypadku zmiany definicji kolumn PL/SQL

określa typ danych i rozmiar zmiennej gdy blok jest kompilowany – gwarantuje

zgodność zmiennej z kolumną, która jest używana do jej wypełnienia.

• Ograniczenie not null dla kolumny bzy danych nie przenosi się na zmienne zadeklarowaną

poprzez %TYPE – nie można do nie j przypisać NULL

Przykłady:

Składnia: identifier table.column_name%TYPE’

emp_lname employees.last_name%TYPE

balance NUMBER(7,2);

min_balance balance%TYPE := 1000;

Deklarowanie zmiennych Boolean

• do zmiennej logicznej mogą być przypisane tylko wartości TRUE, FALSE oraz NULL

• w celu sprawdzenia wartości zmiennej wyrażenia warunkowego wykorzystują operatory

AND, OR

• Wynikiem jest zawsze TRUE FALSE lub NULL

• Do zwracania wartości logicznej mogą być użyte wyrażenia arytmetyczne znakowe i daty

Zmienne związane:

VARIABLE return_code NUMBER

VARIABLE return_msg VARCHAR2(30)

• tworzone są w środowisku

• nazywane również zmiennymi hosta

• Tworzone są ze słowem kluczowym VARIABLE

• Używane w blokach SQL i PL/SQL

• Można z nich korzystać nawet po wykonaniu bloku PL/SQL

• Odwołania do nich poprzez poprzedzający dwukropek

Podstawienie zmiennych:

• ma na celu pobranie danych wprowadzonych przez użytkownika w czasie uruchamiania

• odwołanie w blok PL/SQL poprzez poprzedzający ampersand

• Wartości tekstowe są podstawiane w bloku PL/SQL przed wykonaniem bloku – nie można

podstawiać w pętli – monit pojawi się jeden raz

Page 7: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

7

DEFINE

set verify off Defie lname= Urman declare Name varchar2(25); Begin selekt first_name into Name

from employees where last_name=’&lname’; end; /

• Polecenie DEFINE określa zmienna użytkownika i przypisuje mu wartość typu CHAR (nawet

gdy wprowadzona będzie liczba np. 50000, przypisane zostanie wartość składająca się ze

znaków 5,0,0,0,0

• Odniesienie do zmiennej poprzez poprzedzający ampersand

Funkcje SQL w PL/SQL

Dostępne w wyrażeniach proceduralnych:

• Funkcje liczbowe

• Funkcje znakowe

• Konwersja typów danych

• Daty

• Timestamp

NIEDOSTEPNE w wyrażeniach proceduralnych:

• DECODE

• Funkcje grupujące

• Znaków I liczb

• Znaków I dat

Przykłady

• długość ciągu znaków:

desc_size INTEGER(5);

Konwersja typów danych

Rodzaje konwersji:

• niejawna – PL/ SQL obsługuje dynamicznie konwersję danych różnych typów w jednym

wyrażeniu: może dotyczyć:

o znaków i liczb

o znaków i dat

• jawna; poprzez wbudowane funkcje konwertujące m.in.

TO_CHAR

TO_DATE

TO_NUMBER

TO_TIMESTAMP

Znaków I liczb

Znaków I dat

• Jawna poprzez wbudowane funkcje konwertujące m.in.

TO_CHAR

TO_DATE

TO_NUMBER

TO_TIMESTAMP

• Konwersja jawna:

Page 8: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

8

Date_of_joining DATE:= TO_DATE(‘February 02.2000’,’Month DD YYYY’);Błąd: date of joining

DATE := ‘Februry 02,2000’;

konwersja jawna: Date_of_joining DATE:= TO_DATE(‘February 02.2000’,’Month DD YYYY’);

zagnieżdżone bloki może zawierać:

• Sekcja wykonywalna (BEGIN…END)

• Sekcja wyjątków

Polecenia SQL w kodzie PL/SQL

• obsługa pobierania wiersza z bazy danych za pomocą polecenia SELECT

• obsługa zmian w wierszach bazy danych za pomocą poleceń DML

• słowo kluczowe END nie kończy transakcji; kontrola transakcji odbywa sięga pomocą poleceń

COMMIT, ROLLBACK lub polecenia SAVEPOIN; transakcja może obejmować wiele bloków

oraz jeden blok może obejmować wiele transakcji

• PL/SQL bezpośrednio nie obsługuje poleceń DDL oraz DCL. Polecenia TE stanowią dynamiczny

SQL są wbudowane jako ciągi znaków w trakcie wykonywania, mogą zawierać parametry w

postaci symboli zastępczych; do wykonywania poleceń DDL służy polecenie EXECUTE

IMMEDIATE

Uwagi:

• Klauzula INTO jest wymagana

• Zapytanie może zwrócić co najwyżej jeden wiersz. PL/SQL zarządza tymi błędami poprzez

standardowe wyjątki które można obsłużyć w sekcji wyjątków (NO_DATA_FOUND i

TOO_MANY_ROWS);

Wstawianie danych

Podczas wstawiania danych z bloku PL/SQL można:

• używać funkcji SQL, takich jak USER i SYSDATE

• Generować wartości klucza podstawowego za pomocą istniejących w bazie danych sekwencji

• Pobierać wartość z bloków PL/SQL

Kursory SQL

• kursor to wskaźnik do obszaru prywatnego pamięci przydzielonej przez serwer Oracle

• istnieje dwa rodzaje kursorów:

o niejawne(domniemane) tworzone w celu przetwarzania SQL i zarządzane

wewnętrznie przez serwer Oracle nie ma do nich dostępu.

o Jawne – deklarowane są jawnie przez programistę w części deklaracyjnej, pozwalają

pracować na wielu wierszach jednocześnie

Atrybuty kursorów niejawnych:

• atrybuty kursora SQL pozwalają ocenić co się stało podczas ostatniego użycia domyślnego

kursora

• przedrostek SQL zastępuje nazwę kursora

• Atrybut SQL%NOTFOUND może być użyty jako warunek wyjścia z pętli. Jest przydatny w

UPDATE i DELETE, gdy nie było modyfikacji wierszy, ponieważ nie są zawracane wyjątki

Page 9: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

9

SQL%FOUND – atrybut boolean ma wartość true jeśli ostatnie polecenie SQL zwróciło przynajmniej

jeden wiersz

SQL%NOTFOUND – atrybut boolean ma wartość TRUE jeśli ostatnie polecenie SQL nie zwróciło ani

jednego wiersza

SQLROWCOUNT – wartość całkowita reprezentująca liczby wierszy przetworzonych przez ostatnie

polecenie SQL

NULL:

Uwagi:

• proste porównanie z NULL zawsze daje NULL

• zastosowanie operatora logicznego NOT dla NULL daje NULL

WYKŁAD 3

Kontrolowanie kursorów jawnych

• deklaracja kursora następuje w części deklaracyjnej bloku PL/SQL poprzez określenie nazwy i

zawiązanego zapytania

• polecenie OPEN wykonuje zapytanie i wiąże wszystkie zmienne, do których się odwołuje.

Wiersze wskazane przez zapytanie są od tego momentu dostępne do pobrania

• Pobranie danych z kursora. Po każdym pobraniu należy sprawdzić kursor pod katem

istniejących wierszy. Jeżeli nie ma więcej wierszy do przetwarzania, należy zamknąć kursor.

• Polecenie CLOSE zwalnia aktywny zestaw wierszy. W tym momencie można ponownie

otworzyć kursor z nowym aktywnym zestawem Deklarowanie kursora

Składnia: Cursor kursor_name is selekt_statement;

• deklaracja kursora nie zawiera klauzuli INTO – pojawia sięw poleceniu FETCH

• wskazane jest stosowanie klauzuli ORDER BY w zapytaniu

Przykłady

DECLARE

CURSOR EMP_CURSOR IS

SELECT EMPLOYEE_ID, LAST_NAME FROM EMPLOYEES

WHERE DEPARTAMENT_ID = 30

DECLARE

LOCID DEPT_CURSOR IS

SELECT *FROM DEPARTAMENTS

WHERE LOCATION_ID = LOCID;

Polecenie OPEN

DECLARE

CURSOR EMP_CURSOR IS

SELECT EMPLOYEE_ID, LAST_NAME FROM EMPLOYEE

WHERE DEPARTAMENT_ID = 30

Page 10: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

10

BEGIN

OPEN EMP_CURSOR

Polecenie OPEN wykonuje następujące operacje:

• dynamicznie przydziela pamięc

• przetwarza polecenie SELECT

• wiąże zmienne wejściowe

• określa aktywny zestaw (zbiór wierszy, które spełniają kryteria wyszukiwania)

• ustawia wskaźnik na pierwszy wiersz aktywnego zestawu

UWAGA: JEZELI KWERENDA NIE ZWRZACA ZADNYCH WIERSZY PL/SQL NIE ZGLOSI WYJATKU, MOZNA

SPRAWDZIC STAN KURSORA PO POBRANIU UZYWAJAC ATRYBUTY <CURSOR_NAME>% ROWCOUNT

Zamykanie kursora

LOOP

FETCH emp_cursor INTO Emino, lnami;

EXIT WHEN emp_curso%NOTFOUND

DBMS_OUTPUT, PUT_LINE(empno || ‘ ‘ || lname)

END LOOP

CLOSE emp_cursor

END;

/

• kursor może być ponownie otwarty tylko wtedy, gdy zostal zamkniety. Przy probie pobrania

danych z kursora po jego zamknieciu, zgłoszony zostanie wyjatek INVALID_CURSOR

• UwagaL Możliwe jest wyjscie z bloku PL/SQL bez zamykanie kursorów, jednak wskazane jest

zwalnianie zasobów

• Istnieje limit liczby otwartych kursorów na sesję , który jest określony przez Parameter

OPEN_CURSORS, w pliku parametrow, domyślnie OPEN_CURSORS = 50

Pętle for uparte na kursorze

Pętle for uparte na kursorze = kursory for

• Można skorzystać z pętli for dla kursora, która przetwarza wiersze z kursora jawnego

• kursor jest otwierany, ładowany i zamykany automatycznie

• Pętla sama wygasa automatycznie na końcu iteracji, w której ładowany jest ostatni wiersz

• Rekord dla pętli jest deklarowany domyślnie

FOR rekord_name IN cursor_name

statements1

statements2

END LOOP

Atrybuty kursorów jawnych:

Atrybut Typ Opis

%Isopen Boolean zwraca true jeśli kursor jest

otwarty

Page 11: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

11

%notfound Boolean zwraca true jeśli ostatnie

ładowanie nie zwróciło wiersza

%found Boolean Zwraca true jeśli ładowanie

zwróciło wiersz

%rowcount number zwraca całkowitą liczbę wierszy

Kursory FOR na podstawie zapytań

• nie trzeba deklarować kursora. Zestaw wierszy określany jest dla pętli na podstawie

zapytania SELECT

• Uwaga: Nie można jawnie odnieść się do atrybutów kursora, gdyż nie ma nazwy

SET SERVER OUTPUT ON

BEGIN

FOR emp_record IN (SELECT employee_id, last name FROM employee where departament_id = 30)

LOOP

DBMS_OUTPUT.PUT_LINE (EMP_record.employee.id || ‘’)

END LOOP;

END;

/

Kursory z paramerami:

CURSOR kursor_name

[(parameter_name datatype, …}]

IS

Selekt STATEMENT;

OPEN kursor_name(parameter_value,///);

• Każdy parametr formalny w deklaracji kursora musi mieć odpowiadający mu parametr w

poleceniu OPEN. Typy danych dla parametrów są takie same jak dla zmiennych, podaje się je

bez rozmiarów

• Kursory z parametrami wykorzystywane są przede wszystkim w sytuacjach gdy do danego

kursora wielokrotnie sie odwołuje

Można przekazywać parametry do kursorów FOR:

declare

kursor emp_cursor(p_deptno NUMBER, p_job varchar2) is select.begin…

Klauzula FOR UPDATE

• Służy do blokowania wierszy z zapytania kursora

SELECT…FROM…FOR UPDATE [OF kolumn_reference][NOWAIT |WAIT n];

DECLARE

CURSOR EMP_CURSOR IS

SLECT EMPLOYEE_ID, LAST_NAME FROM EMPLOYEES

WHERE DEPARTAMENT_ID = 80 FOR UPDATE OF SALARY

Page 12: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

12

NOWAIT;

Klauzula WHERE CURRENT OF

• Klauzula WHERE CURRENT OF jest stosowana w połączeniu z klauzulą FOR UPDATE (blokada

wiersza) w celu odwołania się do bieżącego wiersza w kursorze jawnym. Dzięki temu nie

trzeba odwoływać się bezpośrednio do ID wiersza

WHERE CURRENT OF CORSOR ;

UPDATE EMPLOYEES

SET SALARY = …

WHERE CURRENT OF EMP_CURSOR;

TWORZENIE PROCEDUR SKŁADOWANYCH I FUNKCJI

Bloki anonimowe:

• bloki bez nazwy

• kompilowane za każdym razem

• nie przechowywane w bazie

• nie mogą być wywoływane przez inne aplikacje

• nie zwracają wartości

• bez parametrów

PODPROGRAMY:

• Bloke nazwane

• Kompilowane tylko raz

• Przechowywane w bazie

• Mogą być wywoływane przez inne aplikacje (poprzez nazwę)

• Funkcje musza zwracać wartość

• Mogą być wywoływane z parametrami

Wywoływanie procedur

• po poprawnym wykonaniu kodu, można wyświetlić nazwę procedury z tabeli user_objects:

selekt object_name, object_type FROM user_objects

• Źrodlo procedury przechowywane jest w tabeli user_seurce:

SELECT * FROM user_source WHERE Name = ‘Add dept’

• Wywoływanie procedury z bloku anonimowego

BEGIN

Add_dept;

End;

/

Select depart_id, depart_name from dept where dep_id=30

• Można wywołać procedurę poprzez CALL <procedure_name>.

• Można wykorzystać polecenie DESCRIBE w celu sprawdzenia typu zwracanego przez funkcję:

Page 13: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

13

DESCRIBE check_sal;

Typy złożone:

• ułatwiają dostęp i zarządzanie danymi

• rodzaje typów złożonych:

o rekordy PL/SQL – zawierają logicznie powiązane zmienne różnych typów; jedno

wystąpienie zmiennej

o kolekcje PL/SQL - traktują zbiór jako całość; poszczególne elementy kolekcji są tego

samego typu; analogia do tablic w innych językach programowania; istnieją trzy

rodzaje kolekcji

� Tabele INDEX BY oraz tabele asocjacyjne

� Tabele zagnieżdżone

� VARRAY

• Rekord to grupa powiązanych ze sobą danych przechowywanych w polach, każde ze swoją

własną nazwą i typem danych

• podobne do struktur w innych językach programowania

• Mogą mieć przypisane wartości początkowe oraz ograniczone NOT NULL. Można

przypisywać DEFAULT,

• Można zdefiniować zmienną typu RECORD lub samemu zdefiniować rekordy w sekcji

deklaracji

Składnia:

type type_name is rekord (field_declaration[, field_declaration]…);

identifier type_name;

field_declaration:

field_name {field_type | variable%type…..

Struktura rekordu

• Pola w rekordzie są dostępne poprzez nazwę rekordu: record_name.field_name

• Przykład odniesienia do pola Job_id z rekordu emp_record: emp_record.job_id

• Przypisanie: Emp_record.job_id = ‘ST_CLERK *’;

Atrybut %ROWTYPE

DECLARE identifier reference%ROWTYPE;

• atrybut ROWTYPE% wykorzystuje się do deklaracji rekordu, który może przechowywać cały

wiersz tabeli lub widoku. Pola rekordu pobierają nazwy i typy danych z kolumn tabeli lub

widoku

• Prefiks dla %ROWTYPE stanowi nazwa tabeli lub widoku

• Rekord może również przechowywać cały wiersz danych pobranych z kursora

DECLARE Emp_record Employees%rowtype…

Zalety:

• Nie trzeba znać liczby I typów danych kolumn bazy danych mogą zmieniać się w czasie

działania

Page 14: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

14

• Przydatny podczas pobierania wierszy za pomocą selekt *; brak tego atrybutu wymusza

deklarację zmiennej dla każdej z kolumn pobieranych przez Select

OBSŁUGA WYJĄTKÓW

Wyjątki pozwalają na określenie ostatecznych działań przed zakończeniem bloku

• Metody zgłaszania wyjątków

o pojawia się błąd Oracle’a i automatycznie zgłaszany jest wyjątek; błędy

przekształcane są na predefiniowane wyjątki

o Wyraźne zgłoszenie wyjątku poprzez polecenie raise, można obsłużyć wyjątki

użytkownika lub predefiniowane istnieją również błędy Oracle’a, które nie są

predefiniowane i mogą być przypisane do jawnie zadeklarowanych wyjątków

Typy wyjątków:

1. Predefined Oracle Server terror – dowolny z około 20 najczęściej pojawiających się błędów w

kodziePL/SQL – nie trzeba deklarować tych wyjątków, SA predefiniowane przez serwer i

zgłaszane niejawnie

2. NON-redefined Oracle Server terror – dowolny z pozostałych standardowych błędów Oracle

Server

3. USER DEFINED ERROR – sytuacja, którą projektant uzna za niepożądaną – deklarowane i

zgłaszane jawnie

Przechowywanie innych błędów Oracle Server

• wyjtki dla innych niż predefiniowane błędów Oracle’a tworzy się za pomocą funkcji PRAGMA

EXCEPTION_INIT

• można przechwycić błędy Oracle poprzez ich zadeklarowanie. Zadeklarowane wyjątki są

wywoływane niejawnie. W PL/SQL, PRAGMA EXCEPTION_INIT informuje, żeby nazwę wyjątku

skojarzyć z numerem błędu Oracla,

• UWAGA: PRAGMA (= pseudoinstrukcja) to słowo kluczowe, które oznacza dyrektywę

kompilatora, która nie jest przetwarzana podczas wykonywania bloku PL/SQL

• Zadeklarowanie nazwy wyjątku: nazwa_wyjątku EXCEPTION;

• Skojarzenie ze standardowym numerem błędu Oracle’a za pomocą funkcji PRAGMA

EXCEPTION_INIT: PRAGMA EXCEPITON_INIT (nazwa_wyjąku, error_number);

• Odniesienie się do wyjątku za pomocą odpowiedniej obsługi wyjątku

Funkcje do przechwytywania wyjątków:

• Wyjątek można zidentyfikować za pomocą dwóch funkcji:

• Funkcja:

o SQLCODE – zwraca wartość numeryczną błędu

o SQLERRM – zwraca łańcuch znaków zawierający komunikat skojarzony z numerem

bledu

• SQLCODE VALUE

o 0

o 1

o +100

o negative number

Page 15: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

15

• Nie można wykorzystywać SQLCODE i SQLERRM bezpośrednio w poleceniach SQL

• Procedura RAISE_APPLICATION_ERROR przekazuje kod błędu i komunikat o błędzie. Za

pomocą RAISE_APPLICATION_ERROR można zgłaszać błędy do aplikacji i unikać

nieobsługiwanych wyjątków

WYZWALACZE

Wyzwalacz (trigger) jest blokiem lub procedurą PL/SQL związaną z tabelą, widokiem, schematem lub

bazą danych. Wyzwalacz jest wykonywany niejawnie, za każdym razem, gdy zachodzi określone

zdarzenie.

Wyróżnia się 2 typy wyzwalaczy:

• wyzwalacze aplikacyjne: uruchamiane gdy pojawi się zdarzenie z określonej aplikacji –

związane z poleceniem DML wywoływanym spod aplikacji (przykład Oracle Forms Developer)

• Wyzwalacze bazodanowe – niezależnie od użytkownika i aplikacji; uruchamiane, gdy nastąpi

dowolne zdarzenie związane z danymi lub zdarzenie systemowe:

o Operacje DML na tabeli

o Operacje DML na widoku

o Polecenia DML, tj. CREATE i ALTER

o Zalogowanie użytkownika

o Zamknięcie bazy danych

• wyzwalacz w zależności od typu wywoływany jest jednokrotnie dla polecenia DML lub dla

każdego wiersza którego dotyczy

• nazwa wyzwalacza musi być unikatowa w stosunku do innych wyzwalaczy w tym samym

schemacie

Wyzwalacz z poziomu instrukcji:

• wykonuje się raz dla zdarzenia wyzwalającego

• jest typem domyślnym

• Wykonuje się nawet gdy nie dotyczy żadnego z wierszy

Wyzwalacz z poziomu wierszy:

• Wykonuje się raz dla każdego wiersza, którego dotyczy czynnik wyzwalający

• Nie jest wykonywalny, jeżeli zdarzenie wywołujące nie dotyczy żadnych wierszy

• Definiowany poprzez klauzulę FOR EACH ROW

Elementy składni:

• timing – wskazuje kiedy wywołać wyzwalacz w stosunku do zdarzenia wywołującego: before,

after, instead of

• event - wskazuje operację DML, która powoduje uruchomienie wyzwalacza INSERT, UPDATE

[of column], DELETE

• Object_name – wskazuje tablice lub widok związany z wyzwalaczem

Na poziomie wiersza można określić:

• REFERENCING – klauzula do określenia referencji dla starych i nowych wartości w bieżącym

wierszu (domyślne nazwy do OLD i NEW)

Page 16: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

16

• FOR EACH ROW – wskazuje ze jest to wyzwalacz na poziomie wiesza

• WHEN – klauzula określająca warunek w nawiasach, sprawdzany dla każdego wiersza w celu

ustalenia wykonania ciała wyzwalacza

• Trigger_body – działania wykonywane przez wyzwalacz, realizowane poprzez:

o Anonimowy blok (DECLARE lub BEGIN i END)

o Klauzulę CALL wywołującą procedurę (samodzielną lub pakietową)

INSTEAD OF najczęściej stosuje się dla widoków

BEFORE

AFTER jest często stosowany gdy polecenie wyzwalające ma być zakończone przed wykonaniem

czynności wyzwalacza

Kwalifikatory OLD i NEW

• dla INSERT – tylko mamy wartość New,

• dla UPDATE – mamy zarówno wartość old jak i new

• dla DELETE – mamy tylko wartość OLD

Tworzenie wyzwalacza INSTEAD OF

Zarządzanie wyzwalaczami:

• włączenie/wyłączenie wyzwalacza:

ALTER TRIGGER trigger_nam DISABLE | ENABLE

• włączenie/ wyłączenie wszystkich wyzwalaczy dla tabeli:

ALTER TABLE table…

• Rekompilacja wyzwalacza:

ALTER TRIGGER trigger_name COMPILE

• Usunięcie wyzwalacza:

DROP TRIGGER trigger_name;

Uwaga: usuniecie tabeli powoduje usuniecie wszystkich jej wyzwalaczy

WYKŁAD 4

Tabele INDEX BY oraz tabele asocjacyjne

• stanowią struktury z dwiema kolumnami

• mają niezależny rozmiar od klucza

• klucz tabeli nie jest sekwencyjny

Metody tabel INDEX BY

Składnia: table_name.method_name[(parameters)]

Metody:

• exists(n) – zwraca TRUE, gdy istnieje element n

• count – zwraca liczbę elementów tabeli

• first i last – zwraca pierwszy i ostatni (największy i najmniejszy) numer indeksu; gdy tabela

jest pusta, zwraca NULL

• PRIOR(n) - zwraca nr poprzedzający indeks n

• NEXT(n) - zwraca nr kolejny po indeksie n

Page 17: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

17

• DELETE – usuwa wszystkie elementy z tabeli, Delete(n) usuwa element o numerze n;

delete(m,n) usuwa elementy z zakresu od m do n

• Można odnieść się do pół rekordu dept_table poprzez:

table(index).field

• Przykład (location_id stanowi pole dept_table)

Dept_table(15).location_id := 1700

Tabele zagnieżdżone

• Funkcjonalność tabel zagnieżdżonych jest zbliżona do tabel INDEX BY

• Kluczem nie może być PLS_INTEGER. Klucz nie może być ujemny

• Do pierwszej kolumny odnosi się, jak do klucza, jednak nie jest to klucz – tabela zagnieżdżona

nie ma klucza

• Dowolne elementy można usunąć – pozostaną klucze niesekwencyjne

• Wiersze tabeli nie mają określonego porządku. Dopiero przy pobraniu wartości z tabeli

wierszom przyporządkowuje się kolejne indeksy od 1

• Tabele sekwencyjne mogą być przechowywane w bazie danych (w przeciwieństwie do tabel

INDEX BY)

Tabele zagnieżdżone: najpierw tworzymy typ obiektowy i definiujemy jak on wygląda. Następnie

definiujemy typ tabelaryczny i deklarujemy kolumny typu zdefiniowanej kolekcji.

Tabele zagnieżdżone przechowywane są poza wierszem w tabelach przechowywania.

Varray

• Tablica o zmiennej wielkości (VARRAY) jest podobna do tabeli PL/SQL.

• VARRAY jest ograniczona pod względem wielkości. Maksymalny rozmiar VARRAY to 2GB (jak

w tabelach zagnieżdżonych)

• Różnica między tabelami zagnieżdżonymi i VARRAY dotyczy fizycznego modelu

przechowywania. Elementy VARRAY są przechowywane sąsiadująco w pamięci a nie w bazie

danych. Można tworzyć typ VARRAY w bazie danych za pomocą języka SQL.

• Przykład:

Type location_type is Varray of locations.city%type Office location_type;

Porównanie kolekcji: Tabele zagnieżdżone czy asocjacyjne

• tabele asocjacyjne stosuje się, gdy:

o trzeba zgromadzić dane nieznanych rozmiarów

o potrzebne są elastyczne indeksy (ujemne, nie-sekwencyjne lub oparte na ciągach

znaków) – dla indeksów ujemnych TYLKO tabele asocjacyjne,

o Trzeba przekazywać kolekcję z serwera bazodanowego I na serwer.

• Tabele zagnieżdżone stosuje się gdy:

o Wymagana jest trwałość

o Kolekcja ma być przekazywana jako parametr

Porównanie kolekcji: Tabele zagnieżdżone czy VARRAYS

• Varrays stosuje się, gdy:

o liczba elementów jest z góry znana,

o stosuje się sekwenycjny dostęp elementów

Page 18: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

18

o wymagają mniejszego dostępu do dysku (są przechowywane w pamięci) – bardziej

wydajne

o nie pozwalają na aktualizację części elementów

• Tabele zagnieżdżone stosuje się gdy:

o Wartości indeksów nie są kolejne

o Nie ma wstępnego górnego ograniczenia wartości indeksów

o Zachodzi konieczność usunięcia lub aktualizacji niektórych elementów, ale nie

wszystkich jednocześnie.

o Istnieje konieczność trwałego przechowywania dużej ilości danych dla każdego

wiersza - łatwiejsze w obsłudze

DYNAMICZNY SQL

• Polecenia SQL dostępne w PL/SQL ograniczają się do SELECT, INSERT, UPDATE, DELETE,

COMMIT oraz ROLLBACK. Przetwarzane są w czasie kompilacji – muszą mieć stałą strukturę.

• Dynamiczny SQL wykorzystywany jest:

o do tworzenia poleceń SQL, których struktura może ulec zmianie w czasie wykonania

o w celu zrealizowania poleceń DLL

• Dynamiczny SQL:

o Jest tworzony i przechowywany jako ciąg znaków w aplikacji

o Ma postać polecenia SQL wywoływanego z różnymi kolumnami lub różnymi

warunkami

• Wykonanie dynamicznego SQL odbywa się poprzez EXECUTEIMMEDIATE lub pakiet

DBMS_SQL

Polecenie EXECUTE IMMEDIATE

• Polecenie EXECUTE IMMEDIATE wykorzystywane jest przy dynamicznym SQL lub

anonimowych blokach PL/SQL:

EXECUTE IMMEDIATE dynamic_string [INTO {Defie_variable [, Defie_variable] … | rekord }]

[USING [IN|OUT|IN OUT] bind_argument

[, [IN|OUT|IN OUT] bind_argument

• INTO jest używane do pojedynczych wierszy zapytania, określa zmienne lub rekordy, do

których mają być pobierane wartości kolumn

• USING jest używane do przechowywania związanych argumentów.

Domyślny tryb to IN

Wykorzystanie pakietu DBMS_SQL

• Pakiet DBMS_SQL służy do zapisu dynamicznego SQL w procedurach przechowywanych I

analizowania poleceń DDL

• Niektóre procedury I funkcje pakietu

o OPEN_CURSOR

o PARSE

o BIND_VARIABLE

o EXECUTE

o FETCH_ROWS

o CLOSE_CURSOR

Page 19: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

19

Dynamiczny SQL vs DBMS_SQL

Zalety dynamicznego SQL:

• jest łatwiejszy w użyciu niż DBMS_SQL: zintegrowany z SQL, bardziej zwarty i czytelny,

wymaga mniej kodu niż DBMS_SQL

• Poprawia wydajność, ponieważ interpreter PL/SQL zapewnia dla niego wsparcie

• Obsługuje wszystkie typy statyczne SQL w PL/SQL w tym typy zdefiniowane przez

użytkownika

• Pozwala pobrać wiersze bezpośrednio do rekordu PL/SQL

PAKIETY

• Pakiety L/SQL umożliwiają łączenie w ramach jednego kontenera pokrewnych dla PL/SQL

typów, zmiennych, struktur, wyjątków i podprogramów.

Przykład: pakiet Human Resources może zawierać procedury zatrudniania i zwalniania,

prowizje i premie funkcyjne

• Pakiet składa się zazwyczaj z dwóch części przechowywanych w bazie danych oddzielnie:

o specyfikacji

o ciała (opcjonalnie)

• Sam pakiet nie może być wywoływany, parametryzowany lub zagnieżdżany

• Po napisaniu i kompilacji, zawartość pakietu może być współdzielona przez wiele aplikacji

• Cały pakiet jest ładowany do pamięci przy pierwszym wywołaniu jego elementu, kolejne

dostępy nie wymagają operacji I/O

Specyfikacja pakietu

Create [OR REPLACE] PACKAGE packane_name IS|AS public type and variable declarations

subprogram specifications END [packane_name];

• Opcja OR REPLACE usuwa i ponownie tworzy specyfikację pakietu.

• Zmienne zadeklarowane w specyfikacji pakietu, o ile nie są zainicjalizowane, są domyślnie

ustawiane na NULL.

• Wszystkie konstrukcje zadeklarowane w specyfikacji pakietu są widoczne dla użytkowników,

którzy mają nadane uprawnienia

• Uwaga: specyfikacja pakietu powinna zawierać procedury i nagłówki funkcji zakończone

średnikiem bez słowa kluczowego IS (lub AS). Definicja procedury lub funkcji która jest

zadeklarowana w specyfikacji pakietu znajduje się w ciele pakietu.

Przykład specyfikacji pakietu – comm_pkg

CREATE OR REPLACE PACKAGE comm_pkg IS std_comm NUMBER := 0.10; --initalized to 0.10

PROCEDURE reset_comm(New_comm NUMBER); END comm_pkg;

• STD_COMM jest zmienną globalną zainicjowaną wartością 0..10

• RESET_COMM jest publiczną procedurą wykorzystywaną do modyfikacji standardowej

prowizji w oparciu o określone zasady handlowe, jest realizowana w ciele pakietu.

Ciało pakietu

CREATE [OR REPLACE] PACKAGE BODY packane_name IS|AS private type and variable declarations

subprogram Dobies [BEGIN initalization statements] END [packane_name];

• Opcja OR REPLACE usuwa I ponownie tworzy zawartość pakietu

Page 20: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

20

• Należy pamiętać o właściwej kolejności podprogramów – zmienna lub nadprogram musi być

zadeklarowana przed użyciem

• Zakończenie realizacji wszystkich procedur lub funkcji zadeklarowanych w specyfikacji

pakietu w ciele pakietu

• Podanie nazwy pakietu po słowie kluczowym END jest opcjonalne

• [BEGIN inicjalization statements] jest blokiem opcjonalnym dla kodu inicjalizacyjnego który

wykonywany jest podczas pierwszego odtworzenia

Pakiety bez ciała: Zmienne i stałe zadeklarowane w samodzielnych podprogramach istnieją tylko w

czasie wykonywania podprogramu. Specyfikacji pakietu zawiera globalne zmienne i stałe, które

istnieją w czasie sesji użytkownika. W takim przypadku tworzy się specyfikację pakietu bez ciała.

Przeglądanie pakietów w słowniku danych

• kodem źródłowym pakietów można zarządzać oraz przeglądać go poprzez tabele słownikowe

USER_SOURCE oraz ALL_SOURCE.

• Wyświetlanie specyfikacji pakietu: SELECT text FROM user_source WHERE Name =

‘COMM_PKG’ AND type = PACKAGE

Korzyści z wykorzystania pakietów

• modułowość I łatwość obsługi: konstrukcje powiązane ze sobą logicznie stanowią integralną

całość mającą swoją nazwę

• łatwiejsze projektowanie aplikacji: kodowanie i kompilowanie specyfikacji oraz ciała odbywa

się oddzielnie

• ukrywanie pewnych informacji: tylko deklaracje w specyfikacji pakietu są widoczne i

dostępne dla aplikacji. Konstrukcje prywatne, umieszczone w ciele pakietu, są ukryte i

niedostępne. Również kod jest ukryty w ciele pakietu.

• Trwałość zmiennych i kursorów na czas sesji użytkownika

• Większa wydajność cały pakiet jest ładowany do pamięci podczas pierwszego wywołania.

Późniejsze wywołania nie wymagają dostępu do dysku

• Pakiety zapobiegają kaskadowym wywołaniom i kolejnym komplikacjom – uproszczona

hierarcha zależności

• Przeciążanie procedur i funkcji – można utworzyć wiele podprogramów o tej samej nazwie w

tym samym pakiecie, każdy z inną liczbą parametrów lub typem danych.

Przeciążanie w pakiecie STANDARD

• pakiet o nazwie STANDARD definiuje środowisko PL/SQL i funkcje wbudowane.

• Większość wbudowanych funkcji jest przeciążona

• Przykład: funkcja TO_CHAR

FUNCTION to_char (p1 date) return varchar2;

FUNCTION to_char( P1 DATE, p2 VARCHAR2) returna varchar2;

FUNCTION to_char (P1 number, p2 VARCHAR2) returna varchar2;

• Podprogram PL/SQL o takiej samej nazwie jak wbudowany program zastępuje standardową

deklarację w kontekście lokalnym, chyba że wbudowany podprogram zostanie wywołany z

nazwą pakietu

Page 21: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

21

Blok na końcu ciała pakietu wykonywany jest tylko raz i jest używany do inicjacji publicznych i

prywatnych zmiennych pakietu

Funkcje pakietowe w SQL

• Funkcje pakietowe mogą być wykorzystywane w SL

• Ograniczenia dla funkcji wywoływanych z zapytań lub poleceń DML:

o nie mogą kończyć bieżącej transakcji

o nie mogą tworzyć lub wycofywać do SAVEPOINT

o nie mogą zmieniać systemu lub sesji

o nie mogą wykonywać poleceń DML lub modyfikować bazę danych

o Nie mogą odczytywać lub modyfikować tabeli która jest zmieniana przez to

polecenie DML

• Uwaga: funkcje wywołujące podprogramy, które lamią wymienione ograniczenia również nie

są dozwolone

ZARZĄDZANIE ZALEŻNOŚCIAMI

Zależności

• Jeśli zmienia się definicja obiektu odniesienia, obiekty zależne mogą (lub nie) nadal działać

prawidłowo. Przykład: jeśli zmieni się definicja tabeli, procedura może kontynuować pracę

bez błędów lub pojawią się błędy.

• Serwer Oracle automatycznie rejestruje zależności między obiektami – wszystkie obiekty

mają status (VALID lub INVALID), który jest zapisany w słowniku danych.

VALID – obiekt schematu został skompilowany i w przypadku odniesienia może być

natychmiast użyty.

INVALID – obiekt przed wykorzystaniem musi zostać skompilowany

Wykorzystanie USER_DEPENDENCIES – kolejny przykład omawianej perspektywy

Zależności zdalne – przy pierwszym odwołaniu obiekty zależne nie są automatycznie rekompilowane

Zależności zdalne – sposoby kontroli

• Kontrola timestamp znacznika czasu

• kontrola signature sygnatury

REMOTE_DEPENDENCIES_MODE

Sposoby ustawienia trybu dla zależności zdalnych:

• jako parametr w pliku init.ora: REMOTE_DEPENDENCIES_MODE = value

• na poziomie systemu: ALTER SYSTEM SET REMOTE_DEPENDENCIES_MODE = VALUE

• Na poziomie sesji: ALTER SESSION SET REMOTE_DEPENDENCIES_MODE = VALUE

• VALUE := [TIMESTAMP] | [SIGNATURE]

Rekompilacja JEDNOSTKI PROGRAMOWJE pl/SQL

Page 22: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

22

• jeśli rekompilacja zakończy się powodzeniem, obiekt otrzymuje status VALID. JEŚLI nie Oracle

zwraca błąd i obiekt pozostaje INWALID. Podczas rekompilacji obiektu PL/sql, Oracle

najpierw rekompiluje wszystkie obiekty INVALID, od których jest on zależny

• Rekompilacja:

o Może być obsługiwana automatycznie

o Może być obsługiwana jawnie poprzez polecenie alter

ALTER PROCEDURE [SCHEMA] procedure_name COMPILE;

ALTER FUNCTION [SCHEMA] function_name COMPILE;

ALTER PACKAGE [SCHEMA] package_name COMPILE [package | specification \ body];

ALTER TRIGGER [SCHEMA] trigger_name [COMPILE[DEBUG]]

Rekompilacja – uwagi

Rekompilacja zależnych procedur I funkcji nie powiedzie sie gdy:

• obiekt odniesienia zostanie usunięty lub zmieni nazwę

• zmieni się typ danych kolumny odniesienia

• kolumna odniesienia zostanie usunięta

• widok, do którego jest odwołanie zostanie zastąpiony przez widok z innymi kolumnami

• zostanie zmodyfikowana lista parametrów dla procedury dla której jest odwołanie

REKOMPILACJA ZALEŻNYCH PROC I FUNKCJI POWIEDZIE SIĘ GDY:

• Tabela odniesienia ma nowe kolumny

• Typ danych kolumn się nie zmienił

• Prywatna tabela została usunięta, ale istnieje publiczna o takiej samej nazwie i strukturze

• Ciało procedury PL/SQL zostało zmienione i ponownie pomyślnie skompilowane

ROZWIĄZANIA POZWALAJĄCE NA ZMINIMALIZOWANIE PROBLEMÓW PRZY REKOMPILACJI:

• deklarowanie rekordów z atrybutem %ROWTYPE

• Deklarowanie zmiennych z atrybutem %TYPE

• Zapytania przez select *

• Uwzględnienie listy kolumn w poleceniach insert

WYKŁAD 5 - Struktura bazy danych i zarządzanie

Struktury pamięci systemu ORacle:

• System Blobal Area: wspólny dla wszystkich serwerów i działających w tle procesów

• Program Global Area (PGA globalny obszar programów): prywatny dla każdego serwera i

procesu w tle. Dla każdego procesu jest jeden PGA

• bufor podręczny bazy: przechowuje bloki ostatnio odczytanych lub zmodyfikowanych danych

z dysku

• bufor dziennika powtórzeń: przechowuje informacje dotyczące ostatnich zmian w blokach

danych plików danych dopóki nie zostaną fizycznie zapisane do pliku logów

• obszar współdzielonych: zawiera struktury które mogą być współdzielone przez wielu

użytkowników: pamięć podręczna, biblioteki i pamięć podręczna słownika danych

Page 23: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

23

• Obszar dużych struktur pamięciowych to opcjonalny obszar wykorzystywany przez niektóre

procesy (tworzenia kopii zapasowej, procesy odzyskiwania danych i procesy i/o serwera

• Obszar Javy używany przez Oracle Java Virtual Machine (JVM) do obsługi wszystkich kodów

języka Java oraz danych należących do sesji użytkownika

• Obszar strumieni jest używany przez Oracle Streams, który zarządza dzieleniem danych i

zdarzeń w środowisku rozproszonym

Struktury dla procesu:

• proces użytkownika rozpoczyna się w momencie gdy użytkownik bazy danych zażąda

podłączenia do serwera Oracle

• Proces serwera łączy się z instancją Oracle, jest uruchamiany gdy użytkownik ustanawia

sesję.

• Procesy w tle uruchamiane są, gdy uruchomiona zostaje instancja Oracla

Zarządzanie instancją Oracla

• Monitor systemu (SMON) wykonuje odzyskiwanie, gdy instancja jest uruchamiana po awarii.

Przywraca stan instancji poprzez wykonanie wpisów z plików dziennika powtórzeń w plikach

danych

• Monitor procesów (PMON) wykonuje oczyszczanie gdy proces użytkownika nie powiedzie się.

Czyści bufor pamięci podręcznej bazy danych ora wszystkie zasoby, z których korzystało

połączenie użytkownika.

• Database Writer (DBWn) zapisuje zmodyfikowane bloki z bufora podręcznego bazy danych

do plików danych na dysku.

• Proces punktów kontrolnych (CKPT) pomaga zmniejszyć ilość czasu potrzebną do

przywrócenia instancji. Aktualizuje wszystkie pliki danych i pliki kontrolne bazy danych w celu

wskazania najbardziej aktualnego punktu kontrolnego

• proces zapisujący do dziennika (LGWR), który zapisuje wpisy dziennika powtórzeń na dysku

• proces archiwizujący (ARCn) kopiuje pliki dziennika powtórzeń do archiwum, gdy nastąpi

przełączenie dzienników (dziennik powtórzeń zapełni się)

Proces serwera/Bufor podręczny bazy

• podczas przetwarzania zapytania, proces serwera Oracla przeszukuje bufor podręczny bazy w

poszukiwaniu potrzebnych bloków. Jeśli go tam nie znajdzie odczytuje ten blok z pliku

danych, a jego kopie umieszcza w buforze pamięci podręcznej bazy. Kolejne zapytania nie

wymagają już fizycznych odczytów i odwołują się tylko do pamięci.

• czyszczenie bufora odbywa się zgodnie z algorytmem LRU (east recently used).

Pliki sterujące, pliki danych i liki dziennika powtórzeń – stanowią bazę danych

Struktura fizyczna bazy danych

• pliki sterujące zawierają meta dane – informacje o fizycznej strukturze bazy danych

• musi istnieć przynajmniej jeden plik sterujący dla każdej bazy danych, niezbędny – warto go

zwielokrotnić

• pliki danych zawierają dane użytkowników i aplikacji

• pliki dziennika powtórzeń pozwalają na odzyskanie instancji bazy danych

Page 24: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

24

• wpisy z tych plików pozwalają na odzyskanie bazy danych, o ile nie zostaną uszkodzone pliki

danych

• Pliki parametrów inicjalizacyjnych służą do określenia parametrów konfiguracyjnych

Instalację bazy danych w momencie jej startu.

• Pliki kopii zapasowych wykorzystywane są do odzyskiwania bazy danych.

• zapełnione pliki dziennika powtórzeń przenoszone w trybie archivelog do archiwum

• pliki haseł służą uwierzytelnianiu administratorów chcących zdalnie podłączyć się do bazy

danych

• każdy proces serwera i proces tła w przypadku wystąpienia bledu może zapisywać

komunikaty o bledzie do związanego z procesem pliku śladu

• Niektóre z zapisanych w ten sposób informacji może wykorzystać administrator bazy danych,

inne przeznaczone są dla Oracle Support Servies

• Pliki alertu są specjalnymi plikami śladu zawierającymi chronologiczny dziennik komunikatów

i błędów

• Zaleca się systematyczną kontrolę wpisów w plikach alertu

Uruchamianie i zamykanie bazy danych

• po kliknięciu przycisku uruchamiania lub zamykania systemu pojawia się prośba o

potwierdzenie (zarówno podczas logowania do hosta jak i do bazy danych)

• Wybierając przycisk Adanced Options można zmienić opcję trybu uruchamiania lub

wyłączania

• Można również zobaczyć kod SQL wygenerowanych do uruchamiania lub zamykania (SHOW

SQL)

Tryb nomount

• instancja zwykle jest uruchamiana w trybie nomount podczas:

o tworzenia bazy danych

o ponownego tworzenia plików kontrolnych

o w niektórych scenariuszach tworzenia kopii zapasowych i odzyskiwania

Uruchamianie instancji obejmuje następujące zadania:

• przeszukiwanie <Oracle_home>/database w celu znalezienia pliku o danej nazwie w

następującej kolejności:

o spfile<SID>.ora

o spfile.ora

o init<SID>.ora

Określanie parametru pfile przy STARTUP zastępuje domyślne przeszukiwanie

• Przydzielanie SGA

• Uruchamianie procesów tła

• Otarcie pliku alert<sid>.log i plików śladu

Tryb Mount

• do wykonywania określonych czynności konserwacyjnych należy uruchomić instancje i

zmontować bazę danych ale nie otwierać jej:

Page 25: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

25

o zmiana nazw plików danych (pliki danych dla przestrzeni danych offline mogą być

zmieniane gdy baza danych jest otwarta)

o Włączanie i wyłączanie opcji archiwizowania online’owych plików dziennika

powtórzeń

o Wykonanie pełnego odzyskiwania bazy danych

• Montowanie bazy danych obejmuje następujące zadania

o skojarzenie bazy danych z wcześniej uruchomiona instancją

o zlokalizowanie plików kontrolnych określonych w pliku parametrów

o Odczyt plików kontrolnych celu uzyskania nazw i statusów plików danych i

online’owych plików dziennika powtórzeń (redo log files). Uwaga: w Tym momencie

nie ma sprawdzenia istnienia plików danych i plików dziennika powtórzeń

Tryb OPEN

• Zwykłej eksploatacji bazy danych odpowiada uruchomienie instancji oraz zmontowanie i

otwarcie bazy danych. W tym trybie każdy uprawniony użytkownik może podłączyć się do

bazy danych i wykonać typowe operacje dostępu.

• Otwarcie bazy danych obejmuje:

o otwarcie online’owych plików danych

o otwarcie online’owych plików dziennika powtórzeń

• Serwer Oracle zwróci błąd jeżeli brakuje jednego z plików danych lub online’owych plików

dziennika powtórzeń

• Podczas ostatniego etapu serwer Oracle sprawdza, czy wszystkie pliki danych i pliki dziennika

powtórzeń mogą zostać otwarte oraz sprawdza spójność bazy danych. Jeśli to konieczne,

proces monitora systemu (SMON) zainicjuje odzyskiwanie instancji.

• Można uruchomić instancję bazy danych w trybie ograniczonym, aby była dostępna tylko dla

użytkowników z uprawnieniami administracyjnymi. Aby uruchomić instancję bazy danych

tylko w trybie ograniczonym, należy wybrać opcję Restrict Access to database na zakładce

Advanced Startup Options

Zamykanie instancji bazy danych

Tryby zamknięcia:

• pozwala na nowe podłączenia

• czeka Az do zakończenia bieżącej sesji

• czeka Az do zakończenia bieżącej transakcji

Tryby

zamknięcia

ABORT IMMEDIATE TRANSACTIONAL NORMAL

pozwala na

nowe

podłączenia

NIE NIE NIE NIE

czeka Az do

zakończenia

bieżącej sesji

NIE NIE NIE TAK

Page 26: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

26

czeka aż do

zakończenia

bieżącej

transakcji

NIE NIE TAK TAK

wymusza punkt

kontrolny i

zamyka pliki

NIE TAK TAK TAK

Tryb normal jest domyślnym trybem zamykania instancji:

• nie ma możliwości wykonywania nowych połączeń

• serwer Oracle czeka na rozłączenie wszystkich użytkowników przed dokonaniem zamknięcia

• baza danych i bufory powtórzeń SA zapisywane na dysku

• procesy tła są zakończone a SGA jest usuwana z pamięci

• serwer Oracle zamyka się i odłącza bazę danych przed zamknięciem instancji

Tryb transactional chroni przez utratą danych:

• żaden klient nie może rozpocząć nowej transakcji na tej instancji

• klient jest odłączany, gdy kończy transakcje która jest w toku

• Gdy wszystkie transakcje zostały zakończone, natychmiast następuje wyłączenie.

Tryb Immediate zamyka w następujących warunkach:

• Aktualne polecenia SQL przetwarzane przez bazę danych Oracle nie są zakończone.

• Serwer nie czeka na rozłączenie użytkowników, który są aktualnie podłączeni do bazy danych

• Serwer wycofuje aktywne transakcje i rozłącza wszystkich podłączonych użytkowników

• Serwer zamyka się i odłącza bazę danych przed zamknięciem instancji

• Następne uruchomienie nie wymaga odzyskiwania instancji

Jeśli tryb NORMAL i IMMEDIATE nie zadziałają można bazę zamknąć w trybie ABORT przy

następujących warunkach:

• aktualne polecenia SQL przetwarzane przez serwer są natychmiast kończone

• serwer Oracle nie czeka na rozłączenie użytkowników aktualnie podłączonych do bazy

danych

• baza danych i bufory powtórzeń nie SA zapisywane na dysku

• Niezatwierdzone transakcje nie są wycofywane

• Instancja jest wyłączana bez zamykania plików

• Baza danych nie jest ani zamykana ani odmontowana

• Następne uruchomienie wymaga odzyskiwania instancji, które odbywa się automatycznie

Uwaga: nie zaleca się wykonywania kopii zapasowej dla bazy danych, która jest niespójna.

Tryby zamknięcia:

• Tryby zamykania stopniowo uwzględniają bieżące czynności:

o ABORT wykonuje najmniejsza ilość pracy przed zamknięciem. Ponieważ wymaga

odzyskania przez uruchomieniem, należy go używać tego tylko wtedy gdy jest to

konieczne. Jest zazwyczaj używany w sytuacjach gdy żaden z pozostałych trybów nie

Page 27: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

27

zadziałał gdy pojawiają się problemy podczas uruchamiania instancji lub gdy trzeba ja

zamknąć natychmiast z powodu zagrożenia np. zawiadomienie o awarii zasilania w

ciągu kilku sekund

o IMMEDIATE jest najczęściej używaną opcją. Niezakończone transakcje są

wycofywane

o TRANSACTIONAL pozwala na zakończenie transakcji

o NORMAL czeka na rozłączenie sesji

• Rozważając czas potrzebny do zamknięcia ABORT jest trybem najszybszym, NORMAL jest

najwolniejszy

SPÓJNA BAZA DANYCH

Przy zamykaniu:

• Niezatwierdzone zmiany są wycofywane w celu natychmiastowego zamknięcia

• Bufor pamięci podręcznej jest zapisywany do plików danych

• Zasoby są zwalniane

Przy uruchamianiu:

o nie ma odzyskiwania instancji

NIESPÓJNA BAZA DANYCH

Przy zamykaniu:

o Zmodyfikowane bufory nie zapisywane do plików danych

o Niezatwierdzone transakcje nie są wycofywane

Przy uruchamianiu:

o on linowe pliki dziennika powtórzeń wykorzystywane SA do ponownego uwzględnienia zmian

o segmenty wycofania wykorzystywane SA do wycofania niezatwierdzonych zmian

o zasoby SA zwalniane

Przy zamykaniu lub otwieraniu bazy danych, należy zalogować się jako SYSDBA lub SYSOPER.

Inicjalizacja plików z parametrami:

• Podczas startu instancji odczytywany jest plik parametrów inicjalizacyjnych. Wyróżnia się 2

typy plików z parametrami:

o plik parametrów serwera – preferowany typ plików parametrów inicjalizacyjnych.

Domyślna nazwa pliku, która jest automatycznie wyszukiwania na starcie jest

spfile<SID>.ora

o Tekstowy plik parametrów inicjalizacyjnych - ten typ pliku parametrów

inicjalizacyjnych może być odczytany przez serwer bazy danych ale nie przez niego

zapisywany. Domyślną nazwą pliku która jest automatycznie wyszukiwana przy

starcie, jeżeli nie został odnaleziony SPFILE jest init<SID>.ora

Uproszczona inicjalizacja parametrów:

• W większości przypadków aby uzyskać rozsądną wydajność bazy danych, konieczne jest

ustawienie i dostrojenie tylko 32 podstawowych parametrów

• zmiana zaawansowanych parametrów może być potrzebna do osiągnięcia optymalnej

wydajności tylko w rzadkich sytuacjach

Page 28: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

28

• Parametr podstawowy to taki, który prawdopodobnie będzie ustawiany w celu utrzymania

dobrych wyników pracy bazy danych. Wszystkie inne parametry są uznawane za

zaawansowane.

Inicjalizacja parametrów: CONTROL_FILES, DB_BLOCK_SIZE, DB_CACHE_SIZE, DB_FILES, PROCESSES,

SHARED_POOL_SIZE

Przeglądanie dziennika alertów

• plik alert_<sid>.log znajduje się w folderze określonym przez parametr inicjalizacyjny

bacground_dump_dest. Stanowi chronologiczny dziennik komunikatów i błędów, w tym:

o niestandardowe parametry inicjalizacji wykorzystywane przy starcie

o wewnętrzne bledy (ORA-600), błędy uszkodzenia bloku (ORA-1578) oraz bledy

zakleszczenia(ORA-60)

o czynności administracyjne takie jak: wyrażenia SQL CREATE, ALTER, DROP DATABASE

/ TABLESPACE oraz polecenia EM i SQL*plus STARTUP, SHUTDOWN,ARCHIVE LOG i

RECOVER

o Błędy podczas automatycznego odświeżania zmaterializowanych widoków

o EM monitoruje wpisy do pliku i powiadamia użytkowników o błędach krytycznych.

Można go również przeglądać, aby zobaczyć błędach nie będących krytycznymi i

komunikaty informacyjne. Plik może wzrosnąć do rozmiaru, którego nie można

odczytać. Wskazane jest tworzenie kopii zapasowych plików i usuwanie bieżącego

pliku. Podczas zapisu do pliku, baza ponownie utworzy nowy

Widoki (perspektywy) dynamiczne

• bazy danych Oracle przechowuje również bardziej dynamiczny zestaw danych dotyczących

funkcjonowania instancji bazy danych. Widoki te SA oparte na wirtualnych tabelach które są

zbudowane ze struktur pamięci wewnątrz serwera bazy danych. Oznacza to ze nie są one

tradycyjnymi tabelami , które znajdują się w bazie danych. Dlatego wyniki niektórych z nich

można przejrzeć przed zmontowaniem lub otwarciem bazy danych.

• Nazwy widoków zaczynają się od V$

Przykłady

• jakie sesje zalogowały się z komputera EDRSR9P1 w ciągu ostatniego dnia?

SQL>SELECT * from v$session where machine=’ EDRSR9P1’ and logon_time>SYSDATE – 1;

• jakie identyfikatory maja sesji które obecnie blokują innego użytkownika I jak długo trwa

blokada?

SQL>SELECT sid, ctime from v$lock where block > 0;

• Właścicielem widoków jest użytkownik SYS

• Różne widoki są dostępne w różnych sytuacjach

o Została uruchomiona instancja

o Baza danych jest zamontowana

o Baza danych jest otwarta

• Można przeszukać V$FIXED_TABLE aby zobaczyć wszystkie nazwy widoków.

• Widoki te są często określane jako „V-dollar views”

• Spójność odczytu dla widoków nie jest gwarantowana, ponieważ dane są dynamiczne.

Page 29: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

29

Przestrzenie tabel i pliki danych

• Oracle przechowuje dane logicznie w przestrzeniach tabel, fizycznie w plikach danych

• przestrzenie tabel:

o mogą należeć tylko do jednej bazy danych

o składają się z jednego lub więcej plików

o dzielą się na kolejne logiczne jednostki składowania

• można tworzyć przestrzenie wielko plikowe (big file tablespace), które osiągają rozmiar do 8

EB(exabajtów=1000000 TB)?

• Pliki danych:

o mogą należeć tylko do jednej przestrzeni tabel i jednej bazy danych

o stanowią repozytorium dla schematu danych obiektu

• najprostsza baza danych ma 2 wymagane przestrzenie tabel (SYSTEM i SYSAUX), każda z

jednym plikiem danych

• Przestrzeń SYSTEM wykorzystywana jest przy podstawowych funkcjach: np. tabele słownika

danych

• przestrzeń tabel SYSAUX wykorzystywana jest dla dodatkowych elementów bazy danych (np.

ENTERPRISE MANAGER REPOSITORY)

• Jedna baza danych może mieć maksymalnie 65534 pliki.

SEGMENTY, OBSZARY, BLOKI

• segmenty stanowią największą jednostkę logiczną przestrzeni tabel

• segmenty zbudowane są z obszarów (en. extents)

• Obszar stanowi grupa bloków danych

• Blokom danych odpowiadają bloki dyskowe

SEGMENT | OBSZAR | BLOKI DANCYH | BLOKI DYSKOWE

Logiczna struktura bazy danych

Baza danych jest podzielona na logiczne jednostki – przestrzenie tabel. Każda z przestrzeni zawiera

wiele logicznych bloków danych (najmniejsza jednostka logiczna). Parametr DB_BLOCK_SIZE określa

jak Duzy ma być blok logiczny (może wynosić od 2 KB do 32 KB domyślnie 8 KB). Określona liczba

sąsiednich bloków stanowi obszar (extent). Grupa obszarów przeznaczonych na określoną strukturę

logiczną tworzy segment.

Przechowywanie danych:

• Segment tworzony jest razem z tabelą

• Tabela zagnieżdża zbiór segmentów

• Logiczne tabele tworzą wiersze wartości z kolumn

Budowa bloku danych

• nagłówek bloku: zawiera typ segmentu (taki jak tabela lub indeks), adres bloku danych,

katalog tabeli, katalog wiersza i gniazda transakcji o wielkości 23 bajtów każdy, które są

wykorzystywane do zmian wprowadzonych do wierszy w bloku. Nagłówek bloku rośnie w dół

• Wiersz danych: dane rzeczywiste dla wierszy w bloku. Wiersza danych przyrasta w górę.

• Wolne miejsce jest w środku bloku. Umożliwia przyrosty nagłówka i przestrzeni rządów

danych. Początkowo wolne miejsce stanowi obszar ciągły.

Page 30: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

30

Oracle Managed FILES - określa operacje plikowe w zakresie obiektów bazy danych.

przykład:

SQL>ALTER SYSTEM SET DB_CREATE_FILE_DEST = ‘/u01/oradata’;

SQL> CREATE TABLESPACE tbs_1;

Tworzenie przestrzeni table:

• wybrać kartę Administration, następnie Tablespaces w nagłówku Storage (wybrać create)

• uwaga: Można utworzyć nową przestrzeń na podstawie już istniejącej (create like)

• wprowadzić nazwę przestrzeni

• Wybrać Locally Managed dla zarządzania obszarami (Extend Managenetm ) sposób bardziej

efektywny

• Wybrać stały typ przestrzeni (Permanent) – przechowuje trwałe obiekty bazy danych

tworzone przez system lub użytkowników wybierz status read write (ustawieni domyślne)

• wybierz add datafiles aby dodać pliki danych do przestrzeni tabel. Przestrzenie Bigfile

stosowane są dla bardzo dużych baz danych

• wprowadź nazwę pliku. Zaakceptuj domyślny folder i wprowadź rozmiar pliku

• Można wybrać opcję Automatically extend data file when full (Autoxtend) I podać wielkość

przyrostu. Pozwala to plików danych na automatyczne rozszerzanie za każdym razem, gdy

zabraknie miejsca. Wielkość pliku jest ograniczona tylko przez fizyczny nośnik

• po wybraniu opcji storage pojawi się strona Edit Tablespace – zaakceptować ustawienia

domyślne

Alokacja obszarów:

• automatyczna (Automatic): rozmiar obszarów zarządzany jest systemowo. Nie można

samemu określi rozmiaru obszaru. nie można zdefiniować (automatic) dla przestrzeni

tymczasowych

• Jednolita (uniform) przestrzeń tabel ma zdefiniowaną przez administratora jednolitą wielkość

obszarów (domyślnie 1MB) wszystkie obszary przestrzeni tymczasowych są jednolite o

wielkości dynamicznej. Nie można określić jednolitych obszarów dla przestrzeni wycofania

Zarządzanie przestrzenia segmentów dla lokalnie zarządzanej przestrzeni:

• automatyczne: bazy danych Oracle korzysta z bitmapy do zarządzania wolnym miejscem w

segmentach. Bitmapa opisuje status każdego bloku danych w segmencie odpowiadający

ilości wolnego miejsca w bloku. Taka forma zarządzania przestrzenia nazywa Automatic

Segment Spacing Managment

• Ręczna oznacza wykorzystywanie list w celu zarządzania wolnym miejscem w segmentach.

Wymaga określenia i dostrojenia parametrów przechowywania PTCUSED, FREELISTS i

FREELIST GROUPS. Podejście nie zalecane.

Modyfikacja przestrzeni tabel

• zmiana nazwy

• zmiana stanu: dostępne 3 statusy (Stany) – w zależności od rodzaju przestrzeni tabel:

o read write: przestrzeń tabel jest w trybie online można odczytywać i zapisywać

Page 31: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

31

o read Orly: wskazany w trybie przejściowym. W tym stanie istniejące transakcje

można zakończyć ale nie można wykonywać operacji na danych. Przestrzeń jest w

trybie online. Nie można ustawić read Orly przestrzeni system i sysaux

o Offline – ustawiamy aby część danych była niedostępna (reszta dostępna dla

użytkowników)

Usuwanie przestrzeni:

• aby usuwać przestrzenie i ich zawartość (segmenty) trzeba mieć przywilej DROP TABLESPACE

• można (opcjonalnie) bezpośredni z serwera Oracle usunąć pliki systemu operacyjnego (pliki z

danymi) które stanowiły usuniętą przestrzeń. Można to zrobić później z OS

• Nie można usuwać przestrzeni, która zawiera jakiekolwiek aktywne Segmenty

• Przykład:

Tabela z przestrzeni jest obecnie używana. Przestrzeń może być w trybie online lub offline,

ale zaleca się w przejście w tryb offline przed usunięciem.

Powiększenie rozmiaru bazy danych:

• Tworzenie nowych przestrzeni tabel

• Dodawanie pliku do istniejących przestrzeni tabel zwiększenie rozmiaru table

• zapewnienie dynamicznego przyrostu pliku danych

• działania te mogą być wykonywane z enterprises manager lub SQL. Końcowy rozmiar bazy

danych można określić jako rozmiar wszystkich jej przestrzeni

WYKŁAD 6 - Administracja bezpieczeństwem użytkownika

Konta użytkowników

Każde konto użytkownika bazy danych posiada:

• unikalną nazwę użytkownika

• metody uwierzytelniania

• domyślną przestrzeń tabel

• Tymczasową przestrzeń tabel

• Profil użytkownika

• blokady

Konta SYS i SYSTEM

• SYS i SYSTEM mają domyślnie przyznana role administratora bazy danych (DBA)

• Konto SYS ma ponadto wszystkie przywileje z AMIN OPTION i jest właścicielem słownika

danych

• Podłączenie do konta SYS następuj poprzez użycie klauzuli AS SYSDBA (o ile użytkownik

posiada przywileje SYSDBA).

• Tylko użytkowników, którzy mają nadany przywilej SYSDBA lub SYSOPER mają możliwość

uruchamiania i zamykania instancji bazy danych

• Konto SYSTEM ma domyślnie przyznaną role DBA, ale nie przywilej SYSDBA

• Praktyczne wskazówki:

o Stosować zasadę minimum uprawnień

Page 32: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

32

o Konta te nie powinny być wykorzystywane do rutynowych działań

o Użytkownicy, którzy potrzebują uprawnień DBA mają oddzielne konta z przyznanymi

wymaganymi uprawnieniami.

o Konta SYS i SYSTEM są wymagane w bazie danych. Nie mogą być usunięte.

W EM można zarządzać listą użytkowników bazy danych: tworzyć, usuwać i modyfikować ustawienia

użytkownika.

Autoryzacja użytkowników:

• hasło: szyfrowane w sieci przy użyciu zmodyfikowanego algorytmu DES

• zewnętrzne: uwierzytelnianie przez system operacyjny. Użytkownicy mogą połączyć się z

bazą danych bez podawania nazwy użytkownika i hasła. Hasło bazy danych nie jest

wykorzystywane do tego typu logowania. Jeśli system operacyjny zezwala na takie

uwierzytelnianie, należy ustawić parametr inicjalizacyjny OS_ATHENT_PREFIX i wykorzystać

prefix w nazwach użytkowników Oracle. Domyślna wartość tego parametru to OP$$ (ze

względu na poprzednie wersje.

• Globalne użycie opcji Oracle Advanced Security, globalne uwierzytelnianie, pozwala na

identyfikację poprzez wykorzystanie m.in. danych biometrycznych lub tokenów.

Przywileje

• Przywileje systemowe:

o każdy przywilej systemowy pozwala użytkownikowi na wykonanie określonej operacji

lub klasy operacji na bazie danych (np. przywilej tworzenia tabel)

o istnieje ponad sto różnych przywilejów

o wiele przywilejów (uprawnień) systemowych zawiera klauzulę ANY

• Przywileje obiektowe

o Pozwalają użytkownikowi na wykonanie określonego działania na konkretnych

obiektach (np. tabele, widoki, procedury)

o Bez specjalnych zezwoleń, użytkownicy mogą uzyskać dostęp tylko do swoich

obiektów.

o Przywileje obiektowe mogą być nadawane przez właściciela obiektu, admina lub

osobę która ma przywilej przyznawania uprawnień.

Przywileje systemowe:

• Przyznawanie uprawnień z klauzulą ANY oznacza ze dany przywilej dotyczy wielu schematów

Przykłady: create table pozwala na tworzenie tabeli tylko w obrębie własnego schematu.

selekt Any table pozwala na wybór z tabel innych użytkowników.

• Zaznaczenie opcji Admin pozwala na zarządzanie przywilejem i nadawanie go innym

użytkownikom.

• Niektóre przywileje systemowe są zwykle przyznawane przez administratorom:

• RESTRICTED SESSION: pozwala zalogować się nawet wtedy, gdy baza danych została otwarta

w trybie RESTRICTED

• SYSDBA i SYSOPER: pozwalają na zamknięcie, uruchomienie, odzyskiwanie i wykonywanie

innych zadań administracyjnych a bazie danych.

Page 33: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

33

• SYSOPER pozwala użytkownikowi na wykonywanie podstawowych operacji, ale bez

możliwości wglądu w dane użytkownika. Obejmuje następujące uprawnienia systemowe:

o STARTUP i SHUTDOWN

o CREATE SPFILE

o ALTER DATABASE OPEN / MOUNT / BACKUP

o ALTER DATABASE ARCHIVELOG

o ALTER DATABASE RECOVER (tylko pełne odzyskiwanie, niekompletne odzyskiwanie

(UNTIL TIME | CHANGE | CANCEL | CONTROLFILE ) wymaga SYSDBA

• RESTRICTED SESSION

• Przywilej systemowy SYSDBA dodatkowo upoważnia do niekompletnego odzyskiwania i

usuwania bazy danych. Przywilej systemowy SYSDBA pozwala użytkownikowi na podłączenie

jako użytkownik SYS

• DROP ANY OBJECT pozwala usunąć obiekty ze schematu innego użytkownika

• CREATE, MANAGE, DROP i ALTER TABLESPACE: pozwalają na zarządzanie przestrzenią tabel

m. In. tworzenie usuwanie i zmianę ich atrybutów

• CREATE ANY DIRECTORY: bazy danych Oracle umożliwia programistom wywołanie

zewnętrznego kodu (np. biblioteki C) z poziomu PL / SQL. Ze względów bezpieczeństwa,

katalog systemu operacyjnego w którym znajduje się kod musi być związany z wirtualnym

katalogiem (obiektem katalogowym) Oracle

• CREATE ANY DIRECTORY pozwala użytkownikowi na tworzenie obiektów katalogowych (do

odczytu i zapisu) do dowolnego katalogu.

• GRANT ANY OBJECT: przywilej pozwala na przyznawanie użytkownikowi uprawnień

obiektowych na obiekty, których nie jest właścicielem.

• ALTER DATABASE i ALTER SYSTEM: bardzo silne uprawnienia pozwalają na modyfikację bazy

danych i instancji Oracle (m.in. zmiana nazw plików danych)

Przywileje obiektowe nadaje się poprzez:

• Wybranie typu obiektu

• Wskazanie obiektu

• Wskazanie przywilejów

Nadawanie przywilejów z ADMIN / GRANT OPTION

Admin option – dla przywilejów systemowych i ról:

• daje prawo do nadawania lub odebrania przywileju systemowego lub roli innemu

użytkownikowi lub roli; użytkownicy nie mogą sami sobie odebrać roli

• można dalej przekazywać przywilej lub role z ADMIN OPTION

• można zmodyfikować lub usunąć role

Grant option – dla przywilejów obiektowych:

• Daje prawo do nadawani przywileju obiektowego innym użytkownikom (z GRANT OPRION

lub bez) lub rolom.

• Nie można przekazać z GRANT OPTION przywileju obiektowego rolom:

grant system_priv(s) to grantee [identified by password] [with admin option]

grant role to grantee [identified by password] [with admin option]

grant all privileges to grantee [identified by password] [with admin option]

Page 34: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

34

Cofanie przywilejów systemowych z ADMIN OPTION

• uprawnienia systemowe które zostały przyznane bezpośrednio poleceniem GRANT, mogą

zostać cofnięte przy użyciu REVOKE. Użytkownicy z przywilejem ADMIN OPTION mogą cofnąć

przywilej innym użytkownikom bazy danych. Odbierającym nie musi być ten sam użytkownik

który pierwotnie nadal przywilej.

• Nie ma efektu kaskadowego podczas uchylania przywileju, niezależnie od tego, czy nadany

został z ADMIN OPTION czy bez.

• PRZYKŁAD: REVOKE CREATE TABLE FROM jeff;

• Cofanie przywilejów obiektowych z GRANT OPTION odbywa się kaskadowo.

Przydzielanie przywilejów do ról:

• nadawanie uprawnień poszczególnym użytkownikom jest czasochłonne i zwiększa

prawdopodobieństwo bledu. Problemy te rozwiązują role. Rolą jest grupa powiązanych

ze sobą przywilejów, które są nadawane użytkownikom lub innym rolom.

• charakterystyka roli

o przywileje są przyznawane I odbierane rolom tak samo jak użytkownikom

o Role są przyznawane i odbierane użytkownikom lub innym rolom tak samo jak

przywileje

o Rola może składać się z przywilejów systemowych i obiektowych

o Rola może być włączona lub wyłączona dla każdego użytkownika, któremu

została przydzielona

o Rola do włączenia może wymagać hasła

o role nie mają właściciela, nie są w żadnym schemacie

Role predefiniowane

connect – create session

resource – create luster, create indextype, create operator, create procedure, create sequence,

create table, create trigger, create type

scheduler_admin – create any job, create external job, create job, execute any class, CEXECUTE ANY

PROGRAM, MANAGE SCHELUDER

DBA – Większość przywilejów systemowych, kilka innych ról, Nadawać tylko adminom

SELECT_CATALOG_ROLE – bez przywilejów systemowych, Zawiera HS_ADMIN_ROLE i ponad 1700

przywilejów obiektowych dla słownika danych

Bezpieczne role:

• role SA zwykle domyślnie włączone, co oznacza ze użytkownik może korzystać z przywilejów

danej roli jeśli zostanie mu przyznana. Istnieje możliwość:

• ustawienia roli jako domyślnej. Gdy rola jest przyznawana użytkownikowi należy usunąć

opcje DEFAULT. Użytkownik musi teraz jawnie włączyć role przed zrealizowaniem jej

przywilejów: SET ROLE VACATIONDBA;

• wymagania dodatkowego uwierzytelnienia dla roli (domyślnie jest NONE)

• Tworzenie bezpiecznych ról administracyjnych, które mogą być aktywne tylko przez

pomyślne wykonanie procedury PL/SQL. Procedura PL/SQL może sprawdzić m.in. adres

sieciowy użytkownika, jaki program uruchamia użytkownik, porę dnia.

o CREATE ROLE secure_application_role IDENTIFIED USING

<security_procedure_name>

Page 35: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

35

Profile I użytkownicy

• profil nakłada określony zestaw limitów zasobów na korzystanie z bazy danych I instancji.

Profile zarządzają również kontem i ograniczeniami dla haseł (m. In. długość, data

wygaśnięcia). każdy użytkownik ma przypisany profil i może należeć tylko do jednego profilu

w danym momencie.

• nie można narzucać ograniczeń zasobów dla użytkowników jeśli parametr inicjalizacyjny bazy

RESOURCE_LIMIT nie jest ustawiony TRUE. RESOURCE_LIMIT ma domyślnie False i wówczas

ograniczenia profilu są ignorowane.

• Profile pozwalają użytkownikowi na kontrolowanie następujących zasobów systemowych:

o czas użycia procesora (CPU/Session): 1000 oznacza, że jeżeli sesja zużywa więcej niż

10 sekund czasu procesora, to otrzymuje komunikat o błędzie i zostaje wylogowana

(ORA-02392 : exceded session limit on CPU Osage, you are being logged off) o

bledzie

• Ograniczenia połączeń (CPU/CALL): analogicznie do sesji dotyczy jednego polecenia. W

przypadku przekroczenia polecenia jest przerywane a użytkownik otrzymuje komunikat

• siec/pamięć: każda sesja bazy zużywa zasoby pamięci systemowej i zasoby sieciowe (o ile nie

jest lokalny). Można określić następujące elementy

o łącziny przed automatycznym wylogowaniem

o Idle time: przez ile minut sesji użytkownik może zostać bezczynny przed

automatycznym wylogowanie. Czas bezczynności nie bierze pod uwagę działania

aplikacji. Nie uwzględnia długotrwałych zapytań…

Równoczesne sesje …

Prywatny SGA – limity ilości miejsca w SGA, ograniczenie to zachodzi tylko wtedy gdy sesja

wykorzystuje serwer dzielony

Disc I/O: ogranicza ilość danych, które użytkownik może czytać w czasie sesji lub połączenia.

Realizacja bezpieczeństwa haseł

• blokowanie konta: automatyczne blokowanie kont na określony czas dla użytkowników

którym nie uda się zalogować do systemu w określonej liczbie prób (parametry

FAILED_LOGIN_ATTEMPTS i PASSWORD_LOCK_TIME

• Wygaśniecie hasła: parametry PASSWORD_LIFE_TIME i PASSWORD_GRACE_TIME

• historia haseł: hasło nie powinno być wykorzystywane ponownie przez określony czas lub

przed określoną liczbę zmian (parametry PASSWORD_REUSE_TIME I

PASSWORD_REUSE_MAX). Parametry te wykluczają się. Można ustawić tylko jeden.

• Weryfikacja złożoności hasła: parametr PASSWORD_VERIFY_FUNCTION określa funkcje

PL/SQL. Która wykonuje sprawdzanie hasła. Funkcja weryfikacji musi być własnością

użytkownika SYS i musi zwrócić wartość logiczną (PRAWDA lub FAŁSZ)

Funkcja weryfikacji VERIFY_FUNCTION

• funkcja jest tworzona w skrypcie <Oracle_home>/rdbms/admin/utlpwdmg.sql. Musi by

utworzona w schemacie SYS

• Profil DEAFULT można zmienić poprzez polecenie ALTER PROFILE

ALTER PROFILE DEFAULT LIMIT

PASSWORD_LIFE_TIME 60

Page 36: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

36

PASSWORD_GRACE_TIME 10

PASSWORD_REUSE_TIME 1800

PASSWORD_REUSE_MAX UNLIMITED

FAILED_LOGIN_ATTEMPTS 3

PASSWORD_LOCK_TIME 1/1440

PASSWORD_VERIFY_FUNCTION verify_function

• Utworzony użytkownik ma profil DEFAULT dopóki nie zostanie mu przydzielony inny

Przydzielanie ograniczeń użytkownikom

• Quota (ograniczenie, kwota) to miejsce do wykorzystania w danej przestrzeni tabel.

Domyślnie użytkownik nie ma żadnych ograniczeń. Dostępne są trzy opcje:

o unlimited: pozwala użytkownikowi na wykorzystanie dostępnego miejsca w

przestrzeni,

o wartość (value): liczba kilobajtów lub megabajtów, która użytkownik może

wykorzystać. Nie jest równoznaczne z miejscem przypisanym użytkownikowi.

wartość ta może być większa lub mniejsza od aktualnego miejsca w przestrzeni

tabel

o UNLIMITED TABLESPACE, przywilej systemowy zasłaniający indywidualne kwoty i

dający użytkownikowi nieograniczoną kwoty na wszystkie przestrzenie, w tym

SYSTEM i SYSAUX. Uwaga przyznawanie roli RESOURCE zawiera przyznawanie

tego przywileju.

• Ograniczenia są wykorzystywane, gdy użytkownik tworzy i rozszerza segmenty.

• Ograniczenia są uzupełniane, gdy użytkownik usuwa obiekty z klauzulą PURGE lub

obiekty w koszu są automatycznie usuwane.

Słownik danych

• stanowi opis bazy danych. zawiera nazwy i atrybuty wszystkich obiektów w bazie. Utworzenie

lub modyfikacja dowolnego obiektu powoduje aktualizacje odpowiednich danych słownika

• dane słownikowe przechowywane SA w tabelach. Dostęp do tabel powinien odbywać się

poprzez predefiniowane widoki zamiast odczytywania bezpośrednio z tabel

• wykorzystywany jest przez serwer bazy danych Oracle w celu znalezienia informacji o

użytkownikach, obiektach, ograniczeniach i przechowywaniu.

• Jest dostępny dla każdego użytkownika przeszukującego informacje o bazie danych.

• Jest własnością użytkownika SYS

• Nigdy nie powinien być modyfikowany bezpośrednio za pomocą SQL

selekt* from dictionary;

Widoki słownika danych

DBA_ - uprawnieni użytkownicy: DBA; zawiera wszystko; podzbiór: brak; uwagi: mogą zawierać

dodatkowe kolumny tylko dla użytku DBA

ALL_ - uprawnieni użytkownicy: każdy; zawiera wszystko do czego uprawniają przywileje; podzbiór:

widoki DBA_; uwagi: zawiera obiekty będące własnością użytkownika

USER_ - uprawnieni użytkownicy: każdy; zawiera wszystkie obiekty użytkownika; podzbiór: widoki

ALL_; uwagi: zwykle takie same jak ALL_ poza kolumną OWNER

• Prefixy widoków wskazują jakie i ile danych użytkownik może zobaczyć.

Page 37: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

37

• Globalny widok jest dostępny tylko dla użytkowników z uprawnieniami administratora (DBA)

za pomocą prefixu DBA_pos

• Poziom uprawnień z prefixem ALL_ reprezentuje wszystkie obiekty, których przeszukujący

użytkownik ma prawo zobaczyć (niezależnie od bycia właścicielem)

• Prefix USER_ reprezentuje najmniejszy zakres widoczności. Pokazuje tylko te obiekty, których

właścicielem jest użytkownik

• każdy zestaw widoków jest podzbiorem zestawu wyżej uprzywilejowanego

• nie wszystkie widoki maja swoje niższe odpowiedniki

• widoki DBA_ mogą być przeszukiwane przez użytkowników SYSDBA

ZARZADZANIE DANYMI I WIELODOSTEP

Blokady:

• zanim baza danych pozwoli na zmodyfikowanie danych sesji, sesja najpierw musi zablokować

dane, które ulegają modyfikacji. Blokada daje sesji wyłączną kontrolę nad danymi, tak aby

żadna inna transakcja nie mogła modyfikować tych danych od czasu zwolnienia blokady.

• Transakcje mogą zablokować pojedyncze wiersze danych, kilka wierszy lub całe tabele.

Oracle Database 10g obsługuje ręczne i automatyczne blokowanie. Blokady zakładane

automatycznie zawsze wybierają najniższy poziom blokowania, aby zminimalizować

potencjalne konflikty z innymi transakcjami.

Mechanizm blokowania:

• mechanizm blokowania ma na celu zapewnienia maksymalnego stopnia współbieżności

danych w bazie. Transakcje które modyfikują dane najczęściej blokują na poziomie wiersza

(nie na poziomie bloku lub tabeli).

• zapytanie o dane nie wymagają blokad i zapytanie kończy się nawet jeśli ktoś zablokował

dane (zawsze pokazywane SA dane sprzed blokady na podstawie informacji do wycofania).

• Jeśli wiele transakcji chce zablokować te same zasoby, blokadę założy pierwsza wnioskująca

transakcji , inne transakcje czekają na jej zakończenie, mechanizm kolejkowania jest

automatyczny i nie wymaga działań administracyjnych

• Wszystkie blokady są uwalniane na końcu transakcji. Transakcja kończy się wydaniem

polecenia COMMIT lub ROLLBACK. W przypadku niepowodzenia transakcji, ten sam proces

tła, który automatycznie wycofuje zmiany, zwalnia wszystkie blokady.

Współbieżność danych

• niski poziom blokowania sprawia ze rożne transakcje mogą aktualizować poszczególne

wiersze tej samej tabeli bez wzajemnej ingerencji.

• Chociaż model domyślny zakłada blokowanie na poziomie wiersza. Oracle umożliwia, w razie

konieczności ręczne blokowanie na wyższym poziomie:

SQL > LOCK TABLE employees IN EXCLUSIVE MODE; Table(s) Locked

Rodzaje blokad

• row share – pozwala na równoczesny dostęp do zablokowanej tabeli, ale zabrania sesjom

blokowania całej tabeli na wyłączny dostęp

• row exclusive – analogicznie do row share ale zabrania także blokad w trybie share. row

exclusive jest automatyczna podczas aktualizacji wstawiania lub usuwania danych

Page 38: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

38

• share – umożliwia jednoczesne zapytania ale zabrania aktualizacji na zablokowanej tabeli

blokada share jest wymagana (i automatyczna) podczas tworzenia indeksów na tabelach

• share row exclusive – używana do zapytań na całej tabeli pozwala innym na zapytania do

wierszy w tabeli. zabrania innym blokowania tabeli w trybie share lub aktualizacji wierszy

• EXCLUSIVE pozwala na zapytania na zablokowanej tabeli ale zabrania wszelkich innych

działań: blokada EXCLUSIVE jest wymagana podczas usuwania tabeli (DROP)

• Ręczne blokady – czekają na zwolnienie już istniejących blokad. Polecenie LOCK akceptuje

specjalny argument kontrolujący oczekiwanie : NOWAIT, NOWAIT zwraca kontrolę

natychmiast, jeśli dana tabel jest już zablokowana przez inną sesję (przerywa polecenie)

• Zazwyczaj nie jest konieczna ręczna blokada obiektów. Automatyczny mechanizm blokujący

zapewnia współbieżny dostęp do potrzebnych danych w większości zastosowań

Blokady DML

Każda transakcja DML otrzymuje dwie blokady:

• blokadę EXCLUSIVE na aktualizowane wiersze

• blokadę na poziomie tabeli ROW EXCLUSICE, która ma zapobiec zablokowaniu w całej tabeli

przez inną sesję. (prawdopodobnie z powodu usuwania lub obcinania tabeli)

Mechanizm kolejkowania blokad

• zadania blokad SA automatycznie umieszczane w kolejce. Gdy tylko zakończy się transakcja

trzymająca blokadę, otrzymuje ją kolejna sesja

• Sesje, które już posiadają blokady mogą żądać zmiany blokady bez konieczności

przechodzenia na koniec kolejki.

Przykład: sesja posiada blokadę SHARE na tabeli. Może zażądać przekształcenia blokady na

tryb exclusive. O ile nikt inny nie ma już założonej na tej tabeli blokady exclusive lub share,

sesja otrzyma blokade exclusive bez czekania w kolejce.

Konflikty blokad

Konflikty blokad pojawiają się często jednak są zwykle rozwiązywane poprzez upływ czasu oraz

mechanizm kolejkowania. Czasami konflikt blokad może wymagać interwencji administratora.

Możliwe przyczyny konfliktu blokad:

• najczęściej – niezatwierdzone zmiany

• długotrwale transakcje: wiele aplikacji używa przetwarzanie wsadowego, aby wykonać

masowych aktualizacji; zadania te SA zazwyczaj zaplanowane na godziny niskiej aktywności

użytkownika lub jej braku; w niektórych przypadkach mogą się w zadanym czasie nie

skończyć.

• Niepotrzebne wysokie poziomy blokad: nie wszystkie blokady bazy wspierają blokady

niskiego poziomu, niektóre bazy blokują na poziomie stron lub tabel (programiści aplikacji

przeznaczonych do różnych baz często piszą swoje aplikacje sztucznie wysokim poziomem

blokady tak żeby baza danych Oracle działała podobnie do innych systemów, analogicznie

programiści przechodzący z innych systemów do Oracle).

Page 39: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

39

Wykrywanie konfliktów blokad

• W EM można użyć strony Blocking Sessions. Sprzeczne blokady przedstawione są w układzie

hierarchicznym z sesją trzymającą blokadę na górze, a następnie poniżej, sesjami w kolejce.

• Dla każdej sesji konfliktu podana jest nazwa użytkownika, identyfikator sesji i liczba sekund

oczekiwania. Wybierając identyfikator sesji, można zobaczyć rzeczywisty kod SQL który jest

aktualnie wykonywany lub wnioskowany przez sesję.

• Automatic Database Diagnostic Monitor automatycznie wykrywa konflikty blokad i doradza

przy nieefektywnych blokadach.

Rozwiązanie konfliktów blokad

• rozwiązanie konfliktu blokad następuje w wyniku zwolnienia blokady przez trzymająca ja

sesje. najlepszym rozwiązaniem na zwolnienie blokady przed sesja jest skontaktowanie się z

jej użytkownikiem i poproszenie o zakończenie transakcji

• w nagłych przypadkach administrator może zakończyć sesję przytrzymującą blokadę poprzez

jej zabicie. Wiąże się to z utrata wszystkich prac w ramach ostatniej transakcji. Użytkownik

którego sesja została zabita musi zalogować się ponownie i powtórzyć wszystkie czynności od

ostatniego zatwierdzenia.

• Użytkownicy, których sesje zostały zabite, otrzymują podczas kolejnego wydania polecenia

SQL następujący komunikat o błędzie : ORA-03135: conection lost contact

Rozwiązywanie konfliktów blokad

• manipulacji sesjami można dokonywać poprzez wydawanie poleceń SQL

• szczegółowe informacje o wszystkich podłączonych sesjach zawiera tabela v$session.

Identifikator (ID) sesji blokującej zawiera kolumna blockin_session.

• Do zabicia sesji należy znać SID oraz SERIAL#

Zakleszczenia

• zakleszczenie jest specjalnym przykładem konfliktu blokad. Zakleszczenia powstają gdy dwie

lub więcej sesji czek na dane wzajemnie zablokowane. Ponieważ każdy czeka na każdego, nikt

nie może zakończyć transakcji w celu rozwiązania konfliktu

• bazy danych Oracle automatycznie wykrywa zakleszczenia i kończy bledem. Prawidłowa

odpowiedź na ten błąd to zatwierdzenie lub wycofanie, które zwalniają blokady tak aby inne

sesje mogły kontynuować transakcje

WYKŁAD 7

Operacje na danych /dane do wycofania

• operacji na danych można dokonywać poprzez polecenia DML języka SQL: INSERT, UPDATE,

DELETE i MERGE. Polecenia te są realizowane w ramach transakcji, która zaczyna się

pierwszym pomyślnym poleceniem DML i kończy się poleceniem COMMIT albo ROLLBACK

• Transakcja jest w całości zatwierdzana lub wycofywana

• Wycofanie może również wystąpić w przypadku awarii systemu lub procesu.

Dane do wycofania:

o Stanowią kopię oryginalnych danych

o Przechowywane są z każdej transakcji, która zmienia dane

o Pozostają przynajmniej do końca transakcji

Page 40: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

40

Transakcje / wycofywanie danych

• uruchomiona transakcja jest przypisywana do segmentu wycofania. W czasie jej trwania,

zmieniane (ale oryginalne) dane są kopiowane do segmentu wycofania. Poszczególne

przypisania (transakcji do segmentów) można sprawdzić w dynamicznym widoku

v$transaction

• Segmenty wycofania tworzone są automatycznie przez instancję. Analogicznie do innych

segmentów, składają się obszarów, a te z kolei z bloków danych. Segmenty wycofania mogą

automatycznie przyrastać i zmniejszać się w miarę potrzeb.

Przechowywanie informacji o wycofaniu:

• Segmenty wycofania mogą istnieć tylko w określonych przestrzeniach tabel – przestrzeniach

wycofania. Baza danych może mieć wiele przestrzeni wycofania, ale tylko jedna z nich w

danym czasie może być wyznaczona do zapisu danych

• Z danej przestrzeni może korzystać w danym czasie tylko jedna instancja

• Segmenty wycofania są zawsze własnością SYS. Każdy segment ma co najmniej dwa obszary

(działające cyklicznie).

• Przestrzenie wycofania są trwałe. Przestrzenie tabel mogą być odzyskane tylko w trybie

MOUNT.

Dane wycofywane i ponawiane:

• dane wycofywane i ponawiane pomimo podobieństw służą różnym celom. Wycofywanie

danych jest wymagane i zapewnia spójność wycofywania. Ponawianie danych jest konieczne

w przypadku gdy istnieje konieczność przeprowadzenia zmian ponownie po ich utracie

• proces zatwierdzenia wymaga zapewnienia, że zmiany w czasie transakcji zostały zapisane do

pliku dziennika powtórzeń. Ponadto jest on zwykle multipleksowany. W rezultacie na dysku

istnieje wiele kopii danych ponawianych

• Nawet jeśli zmiany nie zostały jeszcze zapisane w bazie danych w przypadku awarii (np. braku

prądu) na podstawie dziennika powtórzeń po restarcie można powtórzyć czynności.

WYCOFYWANIE PONAWIANIE

Wskazanie Wycofywanie zmian Ponawianie zmian

Zastosowanie RollBack (wycofanie), spójność Ponawianie (Rolling forward) zmian

Przechowywanie Segmenty wycofania Pliki dziennika powtórzeń

Chronią przed Niespójność odczytów przy wielu użytkownikach

Utrata danych

Monitorowanie wycofania:

• Zmiany dotyczące wycofywania, w większości przypadków są zarządzane automatycznie.

Zaangażowania administratora mogą wymagać sytuacje:

o niewystarczające miejsce na zmiany

o użytkownik otrzymał komunikat o błędzie: ORA-01555 snapshot too old (Nadpisanie

logów w segmentach ‘undo’ podczas długo wykonywanych operacji).

• Informacje do wycofania są zawsze zachowywane do czasu zakończenia transakcji. Oznacza

to ze jeśli bez zatwierdzenia usuwana jest lub aktualizowana bardzo duża ilość danych

(oryginalne dane dla INSERT to wartość NULL), przestrzeń wycofania musi być równie duża

Page 41: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

41

• Przykład: w tabeli o rozmiarze 50GB wszystkie wiersze są usuwane następującym

poleceniem:

SQL> DELETE FROM reallybugtable;

• Przestrzeń monitorowania powinna mieć wolne również 50GB na oryginalne dane, na

wypadek gdyby użytkownik zmienił zdanie i wycofał zmiany. Gdy zabraknie miejsca na

zmiany w przestrzeni tabel, użytkownicy otrzymują komunikat o błędzie:

ORA-01650: unable to extend rollback segment

• Czynne monitorowanie wykrywa problemy z miejscem w przestrzeniach wycofania zanim

odczytuje to użytkownik.

Administracja wycofaniem

• zaleca się stosowanie automatycznego zarządzania wycofaniem, skonfigurowanego poprzez

ustawienie parametru inicjalizacyjnego UNDO_MANAGEMENT na AUTO. Ręczne zarządzanie

wycofaniem dotyczy wcześniejszych wersji Oracle.

• DBA wskazuje jedynie przestrzeń wycofania przez parametr UNDO_TABLESPACE

UNDO_MANAGEMENT=AUTO;

UNDO_TABLESPACE=UNDOTBS1

Gwarancja przechowywania danych do wycofania

• domyślnie zastępuje się zatwierdzone transakcje (nawet nie zakończone), aby nie dopuścić

do braku miejsca na wycofanie.

• gwarancja przechowywania (retention guarantee) wymusza utrzymanie danych nawet jeżeli

spowodują niepowodzenie transakcji

• RETENTION GUARANTEE stanowi atrybut przestrzeni table (nie parametr inicjalizacyjny).

Może być zmieniony jedynie z linii poleceń SQL:

SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE

• Aby przywrócić zwykłe ustawienia należy użyć polecenia:

SQL> ALTER TABLESPACE undotbsl RETENTION NOGUARANTES;

• Gwarancja przechowywania odnosi się wyłącznie do przestrzeni wycofania. Dla innych

przestrzeni generuje błąd:

SQL> ALTER TABLESPACE ex ample RETENTION GUARANTEE;

ERROR AT LINE 1

ORA-30044: ‘Retention’ can only specified for undo tablespace

Undo advisor pozwala oszacować rozmiar przestrzeni wycofania, wymagany do utrzymania wycofań

przez ustalony czas

REALIZACJA ZABEZPIECZEŃ

• Użytkownicy DBA muszą być zaufani: trudno jest ograniczyć prawa DBA-DBA wymaga

wysokiego poziomu uprawnień; z uwagi na zaufane stanowisko, DBA muszą być dokładnie

sprawdzeni

• należy uwzględni następujące zagadnienia związane z bezpieczeństwem:

o nadużycie zaufania – DBA może wykorzystać zaszyfrowane hasła dostępnych w

widoku DBA_USERS;

o Monitorowanie (ścieżki audytu) – chroni zaufane pozycje, może wykazać, że dana

osoba nie naruszyła procedur lub popełniła szkodliwe działania: jeśli użytkownik

Page 42: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

42

potrzebuje rzucić podejrzenie na innego (zaufanego) użytkownika, dobrze

zaprojektowane ścieżki audytu są w stanie to wyłapać.

Zasada najmniejszej liczby przywilejów:

• zasada najmniejszej liczby przywilejów – użytkownik ma mieć tylko te uprawnienia, które są

niezbędne do efektywnego wykonywania zadań

• Ochrona słownika danych – parametr 07_DICTIONARY_ACCESSIBILITY jest domyślnie

ustawiony na FALSE. Nie powinien być zmieniany bez istotnego powodu – chroni tabele

słownikowe przed dostępem użytkowników z przywilejem ANY_TABLE. Dzięki niemu

użytkownik SYS może zalogować się tylko jako SYSDBA

O7_DICTIONARY_ACCESSIBILITY = FALSE

• Należy odebrać niepotrzebne przywileje roli PUBLIC:

REMOVE EXECUTE ON UTL_SMTP, UTL_TPC, UTL_HTTP, UTL_FILE from PUBLIC

Monitorowanie czynności:

• monitorowanie oznacza przechwytywanie I gromadzenie informacji o tym, co dzieje sięw

systemie. Zwiększa obowiązkowe czynności systemowe, więc powinien dotyczyć wybranych

zdarzeń (minimalizuje wpływ na wydajność systemu).

• obowiązkowy monitoring – działa niezależnie od opcji audytu i parametrów; uwzględnia m.

In. uruchamianie i zamykanie systemu;

• standardowy monitoring – ustalany na poziomie systemu za pomocą parametru

inicjalizacyjnego AUDIT_TRAIL; po wyłączeniu można wskazać obiekty i przywileje, które będą

monitorowane;

• Monitowanie wartości (Valued Based aufiting) – rozszerza standardowy monitoring na

wartości które zostały wprowadzone, uaktualnione lub usunięte (nie tylko same zdarzenia),

realizowany za pomocą wyzwalaczy.

• Monitorowanie precyzyjne (fine grained auditing =FGA) – rozszerza standardowy monitoring

na wydane polecenia SQL

• Monitorowanie DBA – przydziela obowiązek monitorowania audytorowi (lub

administratorowi bezpieczeństwa) oddzielając go od obowiązków DBA;

Standardowe monitorowanie (auditing) bazy:

• po włączeniu monitoringu bazy danych i określeniu opcji audytu (zdarzenia logowania,

korzystanie z systemu, przywileje obiektowe oraz wykorzystanie poleceń SQL), baza danych

rozpoczyna zbieranie informacji z monitoringu.

• jeśli AUDIT_TRAIL jest ustawiony na OS, rekordy audytu są przechowywane w systemie

operacyjnym (dla Windows jest to dziennik zdarzeń).

• Jeśli parametr AUDIT_TRAIL jest ustawiony na DB, Można przejrzeć wpisy audytu w widoku

DBA_AUDIT_TRAIL, który jest częścią schematu SYS.

• Jeśli AUDIT_TRAIL jest ustawiony na XML lub XML EXTENDED, wpisy audytu są odnotowane

w plikach XML w katalogu określonym parametrem AUDIT_FILE_DEST. Widok

V$XML_AUDIT_TRAIL pozwala przejrzeć wszystkie pliki XML w tym katalogu

• Utrzymanie audytu jest bardzo ważnym zadaniem administracyjnym z uwagi na bardzo duże

przyrosty (w zależności od opcji) – zbyt duże pliki wpływają na wydajność systemu.

Page 43: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

43

Włączenie monitoringu:

• przed określeniem ustawień audytu należy go włączyć na bazie danych kontroli

(AUDIT_TRAIL).

• Po zmianie statycznego parametru inicjalizacyjnego należy zrestartować bazę.

ALTER SYSTEM SET audit_trail=”XML” SCOPE=SPFILE

Określenie opcji audytu:

• monitorowanie poleceń SQL: można monitorować dowolne polecenie DDL, m. In. CREATE

TABLE, DROP TABLE, TRUNCATE TABLE;

AUDIT selekt Any table, create Any trigger;

• Monitoring poleceń SQL może dotyczyć użytkownika lub pozytywnego/negatywnego

zakończenia (monitoring skierowany)

AUDIT TABLE BY hr WHENEVER NOT SUCCESSFUL

Monitorowanie precyzyjne (FGA):

• opcje audytu FGA można skierować na poszczególne kolumny w tabeli lub widoku, mogą być

warunkowe – zgodne ze specyfikacją administratora. Domyślnie każda z kolumn obecnych w

poleceniu SQL poddawana jest audytowi

• Pakiet zasad audytu dla tabeli lub widoku tworzony jest za pomocą DBMS_FGA PL/SQL. Jeżeli

którykolwiek z wierszy zwróconych z zapytania pasuje do badanej kolumny i określonych

warunków audytu, generowany jest rekord audytu.

• Opcjonalne monitorowane zdarzenie może wykonać procedurę. FGA automatycznie skupia

audyt na poziomie poleceń: SELECT zwracający tysiąc wierszy generuje tylko jeden rekord

audytu.

Audyt poleceń DML / Zasady FGA:

• rekordy są monitorowane, jeśli warunek FGA jest spełniony oraz polecenie odwołuje się do

odpowiednich kolumn

• polecenie DELETE SA monitorowane niezależnie od kolumny niezależnie od wskazanych

kolumn

• polecenie MERGE podlegają monitorowaniu zgodnie z odpowiednimi poleceniami INSERT lub

UPDATE

• dla polecenia SELECT, FGA rejestruje samo polecenie, nie rzeczywiste wiersze

• W celu przeprowadzania audytu dla wszystkich poleceń nie należy wprowadzać żadnego

warunku

• Nazwa zasady audytu musi być unikatowa

• Monitorowanie tabela/widok musi istnieć w momencie tworzenia zasady

• Jeśli składnia warunku audytu jest nieprawidłowa, przy dostępie do monitorowanego obiektu

pojawi się błąd ORA-28112

• Jeśli w tabeli nie istnieje wskazana do audytu kolumna, żaden wiersz nie będzie

monitorowany

• Jeśli nie istnieje obsługa zdarzeń nie jest zwracany żaden błąd zaś rekord audytu jest

tworzony.

ODZYSKIWANIE BAZY DANYCH

Page 44: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

44

Metody odzyskiwania:

• odzyskiwanie zarządzane przez użytkownika:

o administrowanie i przenoszenie plików odbywa się ręcznie

o wykorzystywane są polecenia SQL*Plus

• odzyskiwanie poprzez RMAN

o Zarządzanie plikami odbywa się automatycznie

o Wykorzystane są funkcje RMAN, w tym zarządzanie repozytorium i raportowanie

o Można wykonać poprzez Enterprise Manager

o Metoda zalecana przez Oracle Corp.

Polecenie RECOVER

• użytkownik ma ręcznie przywrócić pliki z danymi poprzez skopiowanie ich z backupu. Jeśli

pliki z danymi nie są przywracane do pierwotnej lokalizacji, należy zaktualizować plik

kontrolny podając nową lokalizację (polecenie ALTER DATABASE RENAME FILE). Należy

również przywrócić pliki archiwizacji logów potrzebne do odzyskania przywracanych plików z

danymi.

• Przywracanie wszystkich plików bazy danych z backupu i odzyskanie bazy danych (tylko dla

odzyskiwania przy zamkniętej bazie danych):

SQL> RECOVER [AUTOMATIC] DATABASE

• Przywracanie uszkodzonych plików z backupu i odzyskiwanie plików danych (tylko dla

odzyskiwania przy otwartej bazie danych):

SQL> RECOVER [AUTOMATIC] TABLESPACE <NUMBER> | <NAME>

SQL> RECOVER [AUTOMATIC] TABLESPACE index_tbs

• Lub (przy zamkniętej lub otwartej bazie danych):

SQL> RECOVER [AUTOMATIC] DATAFILE <’filename’> | <NAME>

SQL> RECOVER [AUTOMATIC] DATAFILE ‘/oradata/index01.dbf’

• Słowo kluczowe AUTOMATIC służy do automatycznego generowania nazwy kolejnego pliku

archiwizacji logów niezbędnego podczas przeprowadzania odzyskiwania

RMAN: polecenia RESTORE i RECOVER

• RMAN podczas odzyskiwania przywraca z backupu wszystkie wymagane zarchiwizowane pliki

dziennika powtórzeń

• Odtworzenie treści całości lub części bazy danych z backupu obejmuje dwa etapy:

o pobieranie kopii pliku danych z backupu – polecenie RESTORE pobiera plik danych z

lokalizacji backupu i umieszcza na dysku udostępniając go serwerowi bazy danych

o zastosowanie zmian w pliku od czasu backupu na podstawie zarchiwizowanych i

bieżących plików dziennika powtórzeń – polecenie RECOVER

• UWAGA: przydatna opcja przy zarządzaniu przestrzenią dyskową DELETE ARCHIVELOG –

powoduje usunięcie odzyskanych zarchiwizowanych dziennika powtórzeń z dysku, gdy nie są

już one potrzebne do operacji RECOVER/

Run{

SQL ALTER TABLESPACE inv_tbs OFFLINE IMMEDIATE;

RESTORE TABLESPACE inv_tbs;

RESTORE TABLESPACE inv_tbs DELETEARCHIVELOG;

Page 45: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

45

Sql “ALTER TABLESPACE inv_tbs ONLINE”;

}

Odzyskiwanie pełne i niekompletne:

• Pełne odzyskiwanie przywraca bazę danych do chwili obecnej, uwzględniając wszystkie

zmiany danych do momentu zażądania odzyskiwania.

• Niekompletne odzyskiwanie przywraca bazę danych do określonego momentu w przeszłości

(przed zarządzaniem odzyskiwania) – w efekcie część transakcji oraz wszystkie zmiany danych

pomiędzy czasem przywrócenia a chwilą obecną, zostaną utracone. Najczęściej właśnie ta

utrata jest celem – pewne czynności powinny zostać usunięte. Odzyskiwanie niekompletne

(do punktu w przeszłości), to sposób na usunięcie niepożądanych transakcji.

Wskazania do niekompletnego odzyskiwania bazy:

• utrata dziennika powtórzeń: dziennik powtórzeń został utracony przed archiwizacją i nie ma

mirroringu – nie można kontynuować odzyskiwania z kolejnych plików

• brakujący plik zarchiwizowany: pełne odzyskiwanie nie powiedzie się z powodu braku lub

uszkodzenia dziennika archiwizacji. Odzyskiwanie może być odprowadzone tylko od tego

momentu

• BACKUP PLIKU KONTROLNEGO: wykorzystywany do otwarcia bazy danych zamiast obecnej

kopii. Backup pliku kontrolnego może być potrzebny gdy:

o Wszystkie pliki kontrolne zostaną utracone, plik kontrolny nie może być ponownie

utworzony, zaś istnieje jego kopia binarna. Mirroring pliku kontrolnego (na różnych

dyskach) i przechowywanie aktualnej wersji tekstowego polecenia CREATE CONTROL

FILE ogranicza prawdopodobieństwo konieczności skorzystania z tej metody.

o W pewnym momencie zmieniła się struktura bazy danych

• Podczas wykorzystywania kopii pliku kontrolnego przy odzyskiwaniu lub otwarciu bazy

danych, należy określić klauzulę USING BACKUP CONTROLFILE W POLECENIU RECOVER

DATABASE.

Rodzaje niekompletnego odzyskiwania:

• odtworzenie bazujące na czasie: poprzez klauzulę UNTIL TIME określa się moment do którego

baza danych powinna zostać odzyskana. Odzyskiwanie zostaje przerwane gdy wszystkie

zmiany do wskazanego momentu zostaną zatwierdzone. To podejście jest wykorzystywane

gdy użytkownik dokona niewłaściwych zmian w danych lub usunie ważne tabele oraz znane

jest przybliżony cza popełnienia bledu. Dobrze przetestowane programy zabezpieczenia i

procedury powinny zapobiegać potrzebie wykorzystania tego typu odzyskiwania

• ODTWARZANIE DO PRZERWANIA – w celu przerwania procesu odzyskiwania podaje się w linii

poleceń CANCEL (zamiast nazwy pliku log. Podejście wykorzystywane gdy:

o Bieżący plik dziennika powtórzeń jest uszkodzony – tego rodzaju odzyskiwaniu

zapobiega monitoring

o Utracony został zarchiwizowany plik dziennika powtórzeń – zapobieganie poprzez

częste tworzenie backupów i wielu miejsc docelowych dla archiwum.odtwarzanie

bazujące na numerach SCN (system change numer): poprzez klauzule UNTIL CHANGE

lub UNTIL SCN (dla RMAN) podaje się numer ostatniej zatwierdzonej zmiany która

ma zostać odzyskana. Metoda wykorzystywana przy odzyskiwaniu bazy danych w

Page 46: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

46

środowisku rozproszonym. Opcjonalnie można wykorzystać składnie UNTIL RESTORE

POINT i podać punktu przywracania (alias dla SCN)

• ODTWARZANIE BAZUJĄCE NA NUEMZRE PORZĄDKOWYM DZIENNIKA – w RMAN można

podać ostatni numer dziennika, który ma być użyty do odzyskiwania danych przez klauzulę

UNTIL SEQUENCE. Odzyskiwanie zostanie przerwane po wszystkich plikach dziennika do

Przykłady:

RECOVER [AUTOMATIC] DATABASE OPTION

• OPTION: until time ‘yyyy-mm-dd:hh24:mi:ss’

until cancel

until change <integer>

Rusing backup controlfile

• Uwaga: podczas odzyskiwania można ustawić automatyczne wykorzystanie plików dziennika

powtórzeń poprzez polecenie SQL*Plus SET AUTORECOVERY ON, Michał Kieszek: W linii

poleceń wprowadzenie AUTO lub wydanie polecenia RECOVER AUTOMATIC.

• Odzyskiwanie bazujące na czasie:

SQL> RECOVER DATABASE UNTIL TIME ’2005-12-14:12:12:03’;

• Odzyskiwanie do przerwania

SQL> RECOVER DATABASE UNTIL CANCEL

• Odzyskiwanie z wykorzystaniem backupu pliku kontrolnego

SQL> RECOVER DATABASE UNTIL TIME ’2005-12-14:12:12:03’ 2 USING BACKUP

CONTROLFILE

Odzyskiwanie bazy przez użytkownika:

1. Jeśli baza danych jest otwarta, zamkniecie z opcją NORMAL, IMMEDIATE lub

TRANSACTIONAL

2. Przywrócenie wszystkich plików danych z backupu (możliwie ostatniego). Być może będzie

istnieć konieczność przywrócenia zarchiwizowanych dzienników. Jeśli miejsca jest

wystarczająco należy przywrócić do lokalizacji LOG_ARCHIVE_DEST lub do zmiany lokalizacji

użyć polecenia ALTER SYSTEM ARCHIVE LOG START <LOCATION> lub polecenie SET

LOGSOURCE <LOCATION>

3. zamontowanie bazy danych

4. odzyskiwanie bazy danych za pomocą polecenia RECOVER DATABASE

5. Synchronizacja plików danych z plikami kontrolnymi i plikami dziennika powtórzeń poprzez

otwarcie bazy danych z opcją RESETKIGS

WYKŁAD 8 – uszkodzenie bazy danych

Uszkodzenie bloku

• zawsze gdy blok jest odczytywany lub zapisywany, sprawdzana jest jego spójność:

o wersja bloku

o wartość adresu bloku danych DBA (data Block address) w pamięci podręcznej w

porównaniu do wartości DBA w buforze bloku,

o suma kontrolna bloku

• Uszkodzenie bloku może być spowodowane:

Page 47: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

47

o Uszkodzeniem medium (fizycznym)

o Uszkodzeniem oprogramowania (logicznym)

Oznaki uszkodzenia bloku: ORA-01578

Błąd ORA-01578: Oracle data Block corrupted (file # %s, block # %s)

• jest generowany, gdy znaleziony zostanie uszkodzony blok danych

• Zawsze zwraca bezwzględny numer pliku i numer bloku

• Jest zwracany do sesji, która wydała zapytanie wykonywane podczas wykrycia uszkodzenia

• Pojawia się w pliku alert.log

Postępowanie przy uszkodzeniu:

• sprawdzenie wpisów dziennika komunikatów bazy i systemu operacyjnego

• użycie dostępnych narzędzi diagnostycznych, aby stwierdzić rodzaj uszkodzenia

• ustalenie czy błąd istnieje po wielokrotnym uruchomieniu diagnostyki

• Rozwiązanie problemów ze sprzętem:

o karty pamięci

o kontrolery dysków

o dyski

• w razie konieczności, odzyskiwanie danych z uszkodzonych obiektów.

Narzędzia diagnostyczne:

nazwa Typ uszkodzenia Możliwość naprawy

DBVERIFY FIZYCZNE NIE

ANALYZE LOGICZNE N

DB_BLOCK_CHECKIN L N

DB_BLOCK_CHECKSUM F N

EXP F N

FLASHBACK L TAK

DBMS_REPAIR L T

BLOCK MEDIA RECOVERY BRAK T

DBVERIFY:

• działa tylko na plikach danych. Pliki dziennika powtórzeń nie mogą być sprawdzane

• sprawdza spójność bloku

• może być stosowane gdy baza danych jest otwarta

• nazwa programu użytkowego: dbv

• sformułowanie „page” oznacza blok

• jeśli nagłówek i koniec bloku nie zgadzają się. DBVERIFY ponownie odczytuje blok. Jeśli się

ponownie nie zgadzają sygnalizowane jest uszkodzenie

Polecenie ANALYZE:

• wykonuje logiczne sprawdzenie bloku

• nie oznacza bloku uszkodzonego jedynie zgłasza uszkodzenie

• Aktualizuje (waliduje) wpisy do indeksu i tablicy

ANALYZE TABLE table_name VALIDATE STRUCTURE CASCADE;

Page 48: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

48

ANALYZE INDEX index_name VALIDATE STRUCTURE;

DB_BLOCK_CHECKING i DB_BLOCK_CHECKSUM:

• DB_BLOCK_CHECKING:

o stanowi parametr inicjalizacyjny – działa w czasie rzeczywistym

o kontroluje poziom zgodności dla każdego bloku w trakcie przetwarzania

o można zapobiec uszkodzeniu danych

o Może być ustawiony za pomocą polecenia ALTER SESSION

• DB_BLOCK_CHECKSUM

o Stanowi parametr inicjalizacyjny

o Stwierdza czy dla każdego bloku suma kontrolna jest utrzymywana i zweryfikowana

o Może zapobiegać uszkodzeniu spowodowanym przez operacje I/O.

EXP:

Typowy eksport może być wykorzystany do wykrycia uszkodzenia.

Pakiet DBMS_REPAIR:

Dostępne w ramach pakietu procedury:

• CHECK_OBJECT

• FIX_CORRUPT_BLOCKS

• DUMP_ORPHAN_KEYS

• SEGMENT_FIX_STATUS

• SKIP_CORRUPT_BLOCKS

• ADMIN_TABLES

Wykrycie USZKODZEŃ,

Oszacowanie kosztów i korzyści z DBMS_REPAIR

Przywrócenie użyteczności obiektu

Naprawienie uszkodzeń i przebudowanie utraconych danych

Plecenie BLOCKRECOVER:

• polecenie RMAN

• identyfikuje backupy zawierające bloki do odzyskania

• odczytuje backupy i gromadzi pożądane bloki w buforach pamięci

• Zarządzanie sesją odzyskiwania bloków poprzez odczyt zarchiwizowanych dzienników z

backupu

• Nie może być używane do niekompletnego odzyskiwania

RMAN> BLOCKRECOVER DATAFILE 6 BLOCK 3;

Wykonywanie kopii zapasowych

Kopie zapasowe – rozwiązania:

• Recovery MAnager

• Oracle Secure Backup

o RMAN i Oracle Secure Backup to kompleksowe, szybkie rozwiązania dla procesu

tworzenia kopii zapasowych

Page 49: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

49

o zapewniają niezawodną ochronę danych przy niższym koszcie i złożoności

• Kopie zapasowe wykonywane przez użytkownika

o Zazwyczaj stosuje się własne skrypty

o Wymagają przestawienia bazy w odpowiedni tryb do tworzenia kopii zapasowych

o Przy tworzeniu kopii zapasowych opierają się na poleceniach systemu operacyjnego

Definicje pojęć:

• Strategia tworzenia kopii zapasowych może obejmować:

o całą bazę danych (whole backup = całościowy)

o część bazy danych (partial = częściowy)

• Typ kopii zapasowej może uwzględniać:

o wszystkie bloki danych w ramach wybranych plików (full = pełen)

o tylko informacje, któ®e zmieniły się od czasu poprzedniej kopii zapasowej

(incremental=przyrostowy),

� Zbiorczy (cumulative – zmiany do ostatniego poziomu 0)

� Różnicowy (zmiany do ostatniej kopii przyrostowej)

• Kopie zapasowe mogą być przygotowane w trybie:

o Offline (cold = „na zimno”), spójna

o Online (hot = „na gorąco”), niespójna

Przełączenie w tryb backup

• polecenie DML mogą dotyczyć różnych części bloku modyfikowanych w różnym czasie – w

określonych momentach może zachodzić niespójność. Jeżeli w tym czasie ma nastąpić

kopiowanie z OS, blok musi zostać zablokowany („zamrożony”) na czas wykonania kopii

• RMAN dysponuje wewnętrznymi rozwiązaniami (odczytuje blok do czasu uzyskania

spójności)

• Dla administratora rozwiązanie stanowi przełączenie przestrzeni tabel (lub całej bazy) w tryb

kopii zapasowej. W efekcie generowanie jest dodatkowe ponawianie i obraz każdego bloku

przez modyfikacją umieszczany jest w dzienniku ponawiania – może być wykorzystywany

podczas odzyskiwania bloków.

• W celu zmniejszenia kosztów związanych z utrzymaniem dodatkowych danych ponawianych,

zaleca się przestawienie w tryb kopii zapasowej tylko tej przestrzeni tabel, której pliki są

aktualnie kopiowane

Określanie plików do ręcznego backupu

Kopiowaniu podlega tylko jeden plik kontrolny (pozostałe są takie same – multipleksowanie).

Kopia zapasowa w trybie NOARCHIVELOG:

Zamknąć bazę danych: SQL> SHUTDOWN IMMEDIATE

Skopiować pliki danych do lokalizacji kopii zapasowej:

$cp $ORACLE_BASE/ORCL/data file/*.dbf \

>/u02/backup/datafile

Uruchomić bazę danych: SQL> STARTUP

• Spójną, całościową kopię bazy danych w trybie NOARCHIVELOG należy wykonać przy zamkniętej

bazie danych – jedyna możliwość

Page 50: Wykłady z Administracji bazą danych Oracle 2010 WYKŁAD 1stud.ics.p.lodz.pl/~aangiel/Semestr 6/oracle/Wykłady.pdf · • Technologia sieci Oralce obejmuje: ... • RAC – pozwala

Wykłady z Administracji bazą danych Oracle 2010

50

• W trybie ARCHIVELOG można wykonać kopię niespójną – podczas tworzenia backupu baza

danych może pracować

Kopia zapasowa w trybie ARCHIVELOG:

Określić przestrzenie tabel i należące do nich pliki: selekt file_name,tablespace_name from

dba_data_files;

Każdą z przestrzeni tabel należy przestawić w tryb kopii zapasowej:

alter tablespace sers Begin backup;

alter database Begin backup

• W trybie ARCHIVELOG nie trzeba zamykać bazy danych przed kopiowaniem plików. Rezultat

stanowi niespójna baza danych, którą można odzyskać poprzez dane ponawiane do trybu

spójnego

• Polecenie ALTER TABLESPACE dotyczy plików danych z jednej przestrzeni tabel

• Polecenie ALTER DATABASE dotyczy wszystkich plików danych w bazie

Kopia zapasowa w trybie ARCHIVELOG

Skopiować pliki danych dla danej przestrzeni do lokalizacji backupu,

Przywrócić przestrzeń tale z trybu backupu:

SQL> ALTER TABLESPACE sers END BACKUP

Backup należy zakończyć przywróceniem przestrzeni tabel z trybu kopii zapasowej – nie można

zamknąć bazy danych w tym trybie – zgłoszony zostanie błąd.

Kopia zapasowa pliku kontrolnego

Backup pliku kontrolnego poprzez skopiowanie obrazu do określonego pliku:

alter database backup controlfile to ‘/u01/backup/controlfile.bak’;

Backup pliku kontrolnego poprzez utworzenie skryptu go tworzącego w pliku śladu:

alter database backup controlfile to trace

• Backup pliku kontrolnego należy wykonać po każdej zmianie w strukturze bazy danych

• Backup pliku tworzy kopię binarną pliku kontrolnego

• W pliku śladu (np. $ORACLE_BASE/diag/rbdms/orcl/trace) powstaje wersja tekstowa pliku

kontrolnego, który po uruchomieniu stanowi skrypt uruchomieniowy dla pliku kontrolnego.

Autorzy: Justyna & Michał