Bazy danych

29
Wykład 3 – Programowanie procedur wbudowanych w języku PL/SQL Bezpieczeństwo Odtwarzanie bazy danych po awarii Hurtownie danych 1

description

Wykład 3 – Programowanie procedur wbudowanych w języku PL/SQL Bezpieczeństwo Odtwarzanie bazy danych po awarii Hurtownie danych. Bazy danych. Język PL/SQL. instrukcje warunkowe pętle zmienne dynamiczne tworzenie obiektów (kursorów) obsługa wyjątków. Polecenie create procedure. - PowerPoint PPT Presentation

Transcript of Bazy danych

Page 1: Bazy danych

Wykład 3 – Programowanie procedur wbudowanych w języku PL/SQLBezpieczeństwoOdtwarzanie bazy danych po awariiHurtownie danych

1

Page 2: Bazy danych

instrukcje warunkowepętlezmienne dynamiczne tworzenie obiektów

(kursorów)obsługa wyjątków

2

Page 3: Bazy danych

create procedure procedura([lista parametrow])

as[atrybut typ] -- dwie kreski to

komentarz[atrybut typ]...[kod funkcji]/

3

Page 4: Bazy danych

SQL> execute nazwa_schematu.nazwa_procedury(parametry);

SQL> execute nazwa_schematu.nazwa_pakietu.nazwa_procedury_w_pakiecie(parametry);

4

Page 5: Bazy danych

create or replace package NAZWA_PAKIETU[lista funkcji (same deklaracje)];/create or replace package body

NAZWA_PAKIETU[definicja funkcji 1/definicja funkcji 2/definicja funkcji 3/];

5

Page 6: Bazy danych

funkcje samo-wyzwalające się, „uruchamiane zdarzeniem”, np. na tabeli przy wstawianiu

create trigger NAZWA_TRIGERAbefore insert on NAZWA_TABELIbegin...end;

6

Page 7: Bazy danych

CREATE OR REPLACE PACKAGE mojpakiet ASx NUMBER(1);slowo CHAR(100);CURSOR kur IS SELECT * FROM tabela;PROCEDURE mojaprocedura1;PROCEDURE mojaprocedura2;TYPE typwiersz IS RECORD(imie tabela.imie%TYPE,nazwisko nazwisko.imie%TYPE,pesel pesel.imie%TYPE);

wiersz typwiersz;END mojpakiet;/

7

Page 8: Bazy danych

CREATE OR REPLACE PACKAGE BODY mojpakiet ASPROCEDURE mojaprocedura1 ASBEGIN OPEN kur; LOOP FETCH kur INTO wiersz.imie, wiersz.nazwisko,

wiersz.pesel; EXIT WHEN kur%NOTFOUND; mojpakiet.mojaprocedura2(wiersz); END LOOP; CLOSE kur; EXCEPTION WHEN OTHERS THEN ........END;

8

Page 9: Bazy danych

PROCEDURE mojaprocedura2(w typwiersz) ASBEGIN...END;

END;/

9

Page 10: Bazy danych

Dwa aspekty:

ochrona przed niepowołanym dostępem

utrata danych, lub utrata ich spójności

10

Page 11: Bazy danych

Utworzenie nowego użytkownika

create user ANTEK identified by HASLO;

Informacje o użytkownikach – patrz perspektywy:

DBA_USERSALL_USERS

11

Page 12: Bazy danych

nadawaniegrant connect, resource to ANTEK;

odbieranierevoke selectanytable from ANTEK;

zmiana hasłaalter user ANTEK identified by NOWEHASLO;

12

Page 13: Bazy danych

Rola jest zbiorem uprawnień

create role sprzedawca;grant [nazwauprawnienia_1] to sprzedawca;grant [nazwauprawnienia_2] to sprzedawca;...grant [nazwauprawnienia_n] to sprzedawca;

create role kierowca;grant [nazwauprawnienia_1] to kierowca;grant [nazwauprawnienia_2] to kierowca;...grant [nazwauprawnienia_m] to kierowca;

13

Page 14: Bazy danych

przydzielenie/odebranie roli użytkownikowi

grant sprzedawca to ANTEK;revoke kierowca from ADAM;

14

Page 15: Bazy danych

profile są ograniczeniami uprawnień nakładanymi na użytkownikówcreate profile NAZWA_PROFILU limitsession_per_user 2connect_time 10...;

nadanie profilualter user ANTEK profile NAZWA_PROFILU;

15

Page 16: Bazy danych

Podział blokad ze względu na blokowany obszar

na tabelina rekordzie

Typy blokadS (shareable) współdzieloneX (exclusive) na wyłączność

16

Page 17: Bazy danych

określenie położenia plikówselect status, enabled, name from v$datafile;select * from v$logfile;select * from v$controlfile; kolejność czynnościshutdown [normal]kopiowanie wszystkich plików b.d. + pliku

parametrów startup

17

Page 18: Bazy danych

kopia zawartości przestrzeni tabel (bez plików dziennika powtórzeń), użyteczne gdy baza danych musi być dostępna 24 h na dobę i przez 7 dni w tygodniu, punkty kontrolne nie są w czasie kopiowanie zapisywane do plików przestrzenialter tablespace NAZWA_TBS begin backup;

przerwanie kopiowaniaalter tablespace NAZWA_TBS end backup;

18

Page 19: Bazy danych

tryby pracy programu EXPORT table mode user mode database mode (incremental, cumulative,

complete)

rodzaje eksportu dane i strukura tylko struktura

19

Page 20: Bazy danych

parametry programu exp.exeUSERIDFILE (*.dmp)FULL (Y/N) (konieczne uprawnienie sysoper, lub sysdba)OWNERTABLESINCTYPE otwarcie bazy danych w trybie restricted; narzędzie IMPORT – przenoszenie danych pomiędzy

serwerami pracującymi na różnych systemachoperacyjnych

20

Page 21: Bazy danych

TNSNAMES.ORA – plik definiujący aliasy, zawierający nazwy i adresy baz danych

BAZA=(ADDRESS=(PROTOCOL=TCP)(HOST=156.17.40.40)(PORT=1521))CONNECT_DATA=(SOURCE_NAME=baza)

Połączenie klientaSQLPlus> connect antek@baza;

21

Page 22: Bazy danych

Narzędzie SQLLoadersqlldr.exe ctl=’plik_sterujący’ log=’plik_raportu’ userid=scott/tiger]

Przykładowa postać pliku sterującegoLOAD DATAINFILE *INTO TABLE NAZWA_TABELIFIELD TERMINATED BY ‘|’OPTIONALLY ENCLOSED BY ‘”’(kolumna1,kolumna2,kolumna3,kolumna4 DATE „DD-MonthYYYY”)1|”Kowalski”|Jan|21-January-20012|Nowak|”Wojciech”|01-December-1999...

22

Page 23: Bazy danych

Tryby pracy

NOARCHIVELOG – szybki, ale bez zapisywania śladów transakcji

ARCHIVELOG – wolniejszy (serwer zapisuje wszystkie zatwierdzone transakcje w plikachv*.log i okresowo je archiwizuje do *.arc, katalog docelowy plików śladu transakcji zawiera ustawienieLOG_ARCHIVE_DEST)

23

Page 24: Bazy danych

Wybrane elementy/techniki

serwery lustrzane partycjonowanie obiektów

24

Page 25: Bazy danych

CelUmożliwienie odtworzenia danych z momentu przed awarią bez przestoju (minimalizacja czasu niedostępności

bazy danych)Postulaty dwa identyczne, w miarę niezależnie pracujące

komputery (production database, standby database) te same systemy operacyjne te same wersje Oracle Server

25

Page 26: Bazy danych

Każda partycja jest oddzielnym segmentemi może być przechowywana w oddzielnym TBS-ie (nawet na innym dysku). Zalety

łatwiejsze archiwizowanie i reorganizacja lepsza efektywność dostępumożliwość równoległych procesów DML

(współbieżność) – skrócenie czasu przetwarzania

26

Page 27: Bazy danych

Każda partycja jest oddzielnym segmentemi może być przechowywana w oddzielnym TBS-ie (nawet na innym dysku). Zalety

łatwiejsze archiwizowanie i reorganizacja lepsza efektywność dostępumożliwość równoległych procesów DML

(współbieżność) – skrócenie czasu przetwarzania

27

Page 28: Bazy danych

create table OSOBY (nr_id number(10), imie varchar2(15), nazwisko verchar2(15), data_ur date,kod_pocztowy number(5)) partition by range(kod_pocztowy) (partition f1 values less than 10000 tablespace TBS1, partition f2 values less than 20000 tablespace TBS2, partition f3 values less than 30000 tablespace TBS);

28

Page 29: Bazy danych

Odwołanie do całej tabeliselect * from osoby;

Odwołanie do partycjiselect * from osoby partition(f1);

Usunięcie partycjialter table osoby drop partition f2;

29