slide1
Download
Skip this Video
Download Presentation
Bazy danych

Loading in 2 Seconds...

play fullscreen
1 / 29

Bazy danych - PowerPoint PPT Presentation


  • 184 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Bazy danych' - jodie


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
Wykład 3 – Programowanie procedur wbudowanych w języku PL/SQLBezpieczeństwo

Odtwarzanie bazy danych po awarii

Hurtownie danych

Bazy danych

j zyk pl sql
Język PL/SQL
  • instrukcje warunkowe
  • pętle
  • zmienne dynamiczne
  • tworzenie obiektów (kursorów)
  • obsługa wyjątków
polecenie create procedure
Polecenie createprocedure

create procedure procedura([lista parametrow])

as

[atrybut typ] -- dwie kreski to komentarz

[atrybut typ]

...

[kod funkcji]

/

uruchomienie procedury
Uruchomienie procedury

SQL> execute nazwa_schematu.nazwa_procedury(parametry);

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

grupowanie procedur w pakietach
Grupowanie procedur w pakietach

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

/];

trigery triggers
Trigery (Triggers)

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

create trigger NAZWA_TRIGERA

before insert on NAZWA_TABELI

begin

...

end;

przyk ad
Przykład

CREATE OR REPLACE PACKAGE mojpakiet AS

x 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;

/

slide8

CREATE OR REPLACE PACKAGE BODY mojpakiet AS

PROCEDURE mojaprocedura1 AS

BEGIN

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;

slide9

PROCEDURE mojaprocedura2(w typwiersz) AS

BEGIN

...

END;

END;

/

bezpiecze stwo
Bezpieczeństwo

Dwa aspekty:

  • ochrona przed niepowołanym dostępem
  • utrata danych, lub utrata ich spójności
u ytkownicy users
Użytkownicy (Users)

Utworzenie nowego użytkownika

create user ANTEK identified by HASLO;

Informacje o użytkownikach – patrz perspektywy:

DBA_USERS

ALL_USERS

uprawnienia privilages
Uprawnienia (Privilages)

nadawanie

grant connect, resource to ANTEK;

odbieranie

revoke selectanytable from ANTEK;

zmiana hasła

alter user ANTEK identified by NOWEHASLO;

role roles
ROLE (Roles)

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;

slide14

przydzielenie/odebranie roli użytkownikowi

grant sprzedawca to ANTEK;

revoke kierowca from ADAM;

profile profiles
Profile (Profiles)

profile są ograniczeniami uprawnień nakładanymi na użytkowników

create profile NAZWA_PROFILU limit

session_per_user 2

connect_time 10

...;

nadanie profilu

alter user ANTEK profile NAZWA_PROFILU;

wielodost p transakcje blokady
Wielodostęp, transakcje, blokady

Podział blokad ze względu na blokowany obszar

  • na tabeli
  • na rekordzie

Typy blokad

  • S (shareable) współdzielone
  • X (exclusive) na wyłączność
archiwizacja fizyczna w trybie off line
Archiwizacja fizyczna w trybie off-line
  • określenie położenia plików

select status, enabled, name from v$datafile;

select * from v$logfile;

select * from v$controlfile;

  • kolejność czynności

shutdown [normal]

kopiowanie wszystkich plików b.d. + pliku parametrów

  • startup
archiwizacja fizyczna w trybie on line
Archiwizacja fizyczna w trybie on-line

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 przestrzeni

alter tablespace NAZWA_TBS begin backup;

przerwanie kopiowania

alter tablespace NAZWA_TBS end backup;

archiwizacja logiczna mechanizmy export import
Archiwizacja logiczna – mechanizmy EXPORT/IMPORT

tryby pracy programu EXPORT

  • table mode
  • user mode
  • database mode (incremental, cumulative, complete)

rodzaje eksportu

  • dane i strukura
  • tylko struktura
slide20
  • parametry programu exp.exe

USERID

FILE (*.dmp)

FULL (Y/N) (konieczne uprawnienie sysoper, lub sysdba)

OWNER

TABLES

INCTYPE

  • otwarcie bazy danych w trybie restricted;
  • narzędzie IMPORT – przenoszenie danych pomiędzy serwerami pracującymi na różnych systemachoperacyjnych
konfiguracja po czenia sieciowego
Konfiguracja połączenia sieciowego

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 klienta

SQLPlus> connect [email protected];

adowanie danych z plik w tekstowych do tabel
Ładowanie danych z plików tekstowych do tabel

Narzędzie SQLLoader

sqlldr.exe ctl=’plik_sterujący’ log=’plik_raportu’ userid=scott/tiger]

Przykładowa postać pliku sterującego

LOAD DATA

INFILE *

INTO TABLE NAZWA_TABELI

FIELD TERMINATED BY ‘|’

OPTIONALLY ENCLOSED BY ‘”’

(kolumna1,kolumna2,kolumna3,kolumna4 DATE „DD-MonthYYYY”)

1|”Kowalski”|Jan|21-January-2001

2|Nowak|”Wojciech”|01-December-1999

...

odtwarzanie danych po awarii
Odtwarzanie danych po awarii

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 ustawienie

LOG_ARCHIVE_DEST)

hurtownie danych
Hurtownie danych

Wybrane elementy/techniki

  • serwery lustrzane
  • partycjonowanie obiektów
serwery lustrzane
Serwery lustrzane

Cel

Umoż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
obiekty partycjonowane
Obiekty partycjonowane

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ępu
  • możliwość równoległych procesów DML (współbieżność) – skrócenie czasu przetwarzania
slide27

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ępu
  • możliwość równoległych procesów DML (współbieżność) – skrócenie czasu przetwarzania
tabela partycjonowana przyk ad
Tabela partycjonowana - przykład

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);

slide29

Odwołanie do całej tabeli

select * from osoby;

Odwołanie do partycji

select * from osoby partition(f1);

Usunięcie partycji

alter table osoby drop partition f2;

ad