Materiały do wykładu (część 1).

Transkrypt

Materiały do wykładu (część 1).
System zarzadzania
˛
bazami danych IBM DB2
Anna Fiedorowicz
Wydział Matematyki, Informatyki i Ekonometrii
09.10.2015
Literatura
[1] Raul Chong, Ian Hakes, Rav Ahuja, Wprowadzenie do DB2
Express-C, Wydanie II, IBM Corporation, 2008 (e-book, wydanie
uaktualnione do wersji DB2 9.5).
[2] Raul Chong, Clara Liu, Sylvia F. Qi, Dwaine R. Snow, Zrozumieć
DB2. Nauka na przykładach, Wydawnictwo Naukowe PWN,
2006.
[3] Whei-Jen Chen, John Chun, Naomi Ngan, Rakesh Ranjan, Manoj
K. Sardana, DB2 Express-C: The Developer Handbook for XML,
PHP, C/C++, Java, and .NET, IBM Redbooks, 2006 (e-book).
[4] Rafe Coburn, SQL dla każdego, Helion, 2001
[5] Dokumentacja dost˛epna na stronie IBM.
Krótka historia IBM DB2
I
1970 - IBM opracowuje model relacyjnych baz danych (System-R)
I
1974 - powstaje j˛ezyk SEQUEL (późniejszy SQL)
I
system na platformy mainframe, jak Virtual Machine (VM), Virtual
Storage Extended (VSE) i Multiple Virtual Storage (MVS).
I
1983 - DATABASE 2 (DB2) (wersja na platform˛e Multiple Virtual
Storage (MVS))
I
1987 - DB2 jako pierwsza relacyjna baza danych przeznaczona na
platform˛e otwarta˛ (dla systemu OS/2)
I
lata 90-te - powstaja˛ wersje DB2 dla innych systemów operacyjnych
(Linux, Unix, Windows)
I
rok 1996 - powstaje DB2 UDB v 5 (Universal DataBase): obsługuje
wiele różnych systemów operacyjnych, umożliwia przechowywanie
każdego rodzaju danych elektronicznych (nie tylko relacyjnych, ale też
audio, video, dokumentów tekstowych)
Najnowsze wersje DB2:
2012 - DB2 10.1 (LUW: na systemy Linux, UNIX, Windows)
2013 - DB2 10.5
Wspierane platformy systemowe
Aktualnie serwer IBM DB2 jest dost˛epny dla systemów:
AIX, Solaris, HP-UX, Windows (32 bit i 64 bit) Linux, iSeries,
zSeries
Edycje DB2
Edycje DB2
I
Advanced Enterprise Server Edition i Enterprise Server
Edition
I
Advanced Workgroup Server Edition
I
Workgroup Server Edition
I
Express Edition
I
Express-C
I
Developer Edition
Edycje DB2
I
Advanced Enterprise Server Edition i Enterprise Server
Edition
Serwer danych dla dużych i średnich przedsi˛ebiorstw. Można go
wdrożyć na serwerze Linux, UNIX lub Windows dowolnej
wielkości. Dla wysokowydajnych, stabilnych rozwiazań
˛
klasy
korporacyjnej (rozwiazania
˛
biznesowe do przetwarzania dużych
ilości transakcji, rozwiazania
˛
z interfejsem WWW, inteligentna
analiza danych, zarzadzanie
˛
treścia,˛ handel elektroniczny,
planowanie zasobów przedsi˛ebiorstwa (ERP), hurtownie danych)
I
Advanced Workgroup Server Edition
I
Workgroup Server Edition
I
Express Edition
I
Express-C
I
Developer Edition
Edycje DB2
I
I
I
I
I
I
Advanced Enterprise Server Edition i Enterprise Server
Edition
Serwer danych dla dużych i średnich przedsi˛ebiorstw. Można go
wdrożyć na serwerze Linux, UNIX lub Windows dowolnej
wielkości. Dla wysokowydajnych, stabilnych rozwiazań
˛
klasy
korporacyjnej (rozwiazania
˛
biznesowe do przetwarzania dużych
ilości transakcji, rozwiazania
˛
z interfejsem WWW, inteligentna
analiza danych, zarzadzanie
˛
treścia,˛ handel elektroniczny,
planowanie zasobów przedsi˛ebiorstwa (ERP), hurtownie danych)
Advanced Workgroup Server Edition
Oferuje podobna˛ funkcjonalność jak edycja Enterprise, ale
nakłada ograniczenia na liczb˛e procesorów, ilość pami˛eci i
wielkość baz danych.
Workgroup Server Edition
Express Edition
Express-C
Developer Edition
Edycje DB2
I
I
I
I
I
Advanced Enterprise Server Edition i Enterprise Server
Edition
Serwer danych dla dużych i średnich przedsi˛ebiorstw. Można go
wdrożyć na serwerze Linux, UNIX lub Windows dowolnej
wielkości. Dla wysokowydajnych, stabilnych rozwiazań
˛
klasy
korporacyjnej (rozwiazania
˛
biznesowe do przetwarzania dużych
ilości transakcji, rozwiazania
˛
z interfejsem WWW, inteligentna
analiza danych, zarzadzanie
˛
treścia,˛ handel elektroniczny,
planowanie zasobów przedsi˛ebiorstwa (ERP), hurtownie danych)
Advanced Workgroup Server Edition
Oferuje podobna˛ funkcjonalność jak edycja Enterprise, ale
nakłada ograniczenia na liczb˛e procesorów, ilość pami˛eci i
wielkość baz danych.
Workgroup Server Edition
Edycja dla środowisk biznesowych obejmujacych
˛
pojedyncze
działy lub zespoły albo dla średnich firm.
Express Edition
Express-C
Edycje DB2
I
Advanced Enterprise Server Edition i Enterprise Server
Edition
I
Advanced Workgroup Server Edition
I
Workgroup Server Edition
I
Express Edition
W pełni funkcjonalny serwer danych DB2, na poziomie
podstawowym, dla sektora małych i średnich przedsi˛ebiorstw.
I
Express-C
I
Developer Edition
Edycje DB2
I
Advanced Enterprise Server Edition i Enterprise Server
Edition
I
Advanced Workgroup Server Edition
I
Workgroup Server Edition
I
Express Edition
W pełni funkcjonalny serwer danych DB2, na poziomie
podstawowym, dla sektora małych i średnich przedsi˛ebiorstw.
I
Express-C
Bezpłatna, podstawowa edycja serwera DB2, przeznaczona dla
programistów i partnerów. Łatwa w obsłudze i łatwa do
osadzania. Zawiera opcje automatycznego zarzadzania
˛
i
wszystkie podstawowe możliwości produktów DB2 dla
systemów Linux, UNIX i Windows, takie jak pureXML.
I
Developer Edition
Edycje DB2
I
I
I
I
I
I
Advanced Enterprise Server Edition i Enterprise Server
Edition
Advanced Workgroup Server Edition
Workgroup Server Edition
Express Edition
W pełni funkcjonalny serwer danych DB2, na poziomie
podstawowym, dla sektora małych i średnich przedsi˛ebiorstw.
Express-C
Bezpłatna, podstawowa edycja serwera DB2, przeznaczona dla
programistów i partnerów. Łatwa w obsłudze i łatwa do
osadzania. Zawiera opcje automatycznego zarzadzania
˛
i
wszystkie podstawowe możliwości produktów DB2 dla
systemów Linux, UNIX i Windows, takie jak pureXML.
Developer Edition
Ta edycja oferuje pakiet przeznaczony dla jednego twórcy
aplikacji, umożliwiajacy
˛ projektowanie, kompilowanie i
tworzenie prototypów aplikacji.
Skad
˛ wziać
˛ dalsze informacje?
I
Strona główna produktu
http://www-01.ibm.com/software/data/db2/
I
Centrum informacyjne IBM
http://www-01.ibm.com/support/knowledgecenter/
SSEPGG/welcome
I
Ebook:
Wprowadzenie do DB2 Express-C
ftp://ftp.software.ibm.com/software/data/
db2/express-c/wiki/Wprowadzenie_do_DB2_ExpressC_PL.pdf
Instalacja produktu IBM DB2 Express-C
Uwaga. Instalacj˛e DB2 Express-C na systemie Windows należy
wykonać z konta użytkownika o uprawnieniach Administratora
systemu.
Instalacja za pomoca˛ graficznego kreatora.
Po pobraniu i rozpakowaniu plików instalatora uruchamiamy kreator
za pomoca:
˛ pliku setup.exe w katalogu EXPC.
Wybieramy opcj˛e zainstaluj nowy produkt. Na kolejnych ekranach
kreatora, wybieramy ustawienia domyślne:
I
typ instalacji (typowa)
I
wprowadzamy nazw˛e użytkownika systemu, który b˛edzie
zarzadzał
˛
instancja˛ i innymi usługami (można wybrać istniejace
˛
konto użytkownika lokalnego systemu, ale lepiej jest stworzyć
osobne konto użytkownika, domyślna nazwa db2admin)
I
po zakończeniu instalacji warto zrestartować system!
Co zostało zrobione podczas instalacji?
I
Instalacja oprogramowania
I
Utworzony użytkownik - administrator DB2.
Utworzone usługi:
I
I
I
I
Instancja DB2 - DB2COPY1
Serwer administracyjny DB2DAS - DB2DAS00
dodatkowe usługi (DB2 Governor, DB2 Licence Server, ...)
Co zostało zrobione podczas instalacji?
I Instalacja oprogramowania
I Utworzony użytkownik - administrator DB2.
I Utworzone usługi:
I
I
I
Instancja DB2 - DB2COPY1
Serwer administracyjny DB2DAS - DB2DAS00
dodatkowe usługi (DB2 Governor, DB2 Licence Server, ...)
Aby sprawdzić poprawność instalacji, użyjemy poleceń procesora
wiersza komend DB2:
I db2level wyświetla informacje o zainstalowanym produkcie
(wersja, pakiety poprawek, katalog, itp.)
I db2licm -l informacje o licencji
I db2val walidacja instalacji - sprawdza poprawność
podstawowych funkcji serwera DB2.
Łaczenie
˛
si˛e z baza˛
Dost˛epne narz˛edzia:
Pierwsze kroki w programie DB2: umożliwia szybkie instalowanie i
konfigurowanie produktu, udost˛epnia odsyłacze do przydatnych
materiałów referencyjnych, typowych zadań i narz˛edzi, umożliwia
stworzenie przykładowej bazy danych SAMPLE (o ile nie została
stworzona podczas instalacji).
Polecenie tekstowe: Procesor wiersza komend DB2 - zadania
administracyjne i SQL
Narz˛edzia graficzne: IBM Data Studio - rozbudowane narz˛edzie,
bazujace
˛ na Eclipsie, umożliwia administracj˛e bazami danych,
wspomaga tworzenie skryptów SQL, XQuery, procedur
zapami˛etanych,...
Polecenia wiersza komend
Procesor wiersza komend można uruchamiać w dwóch trybach:
interaktywnym (uruchamianym poleceniem db2) oraz w trybie linii
komend. W trybie interaktywnym poleceń nie poprzedzamy db2.
I
Polecenia administracyjne
I
I
I
I
I
Narz˛edzia systemowe
I
I
I
db2 list applications
db2 force application all
db2 create database baza1
...
db2start
db2stop
Polecenia j˛ezyka SQL
I
I
I
I
db2 connect to SAMPLE
db2 connect reset
db2 select * from employee
...
I
I
I
I
I
I
I
I
I
Jak sprawdzić, kto jest podłaczony
˛
do DB2?
db2 list applications
Jak rozłaczyć
˛
wszystkich użytkowników od bazy?
db2 force application all
Jak sprawdzić list˛e dost˛epnych poleceń?
db2 ?
jak sprawdzić składni˛e polecenia, np. backup?
db2 ? backup
Jak podłaczyć
˛
si˛e do bazy?
db2 connect to nazwa_bazy
Jak podłaczyć
˛
sie do bazy jako inny użytkownik?
db2 connect to nazwa_bazy user login using
hasło
Jak odłaczyć
˛
si˛e od bazy?
db2 connect reset
Jakiego użytkownika użyłem przy połaczeniu?
˛
db2 values current user
Do jakiej bazy jestem podłaczony?
˛
db2 get connection state
I
Wersja DB2: db2level
I
Informacje o licencji: db2licm -l
I
Uruchomienie bieżacej
˛ instancji: db2start
I
Zatrzymanie bieżacej
˛ instancji: db2stop
Instancja nie zostanie zatrzymana, jeżeli sa˛ aktywne połaczenia,
˛
aby wymusić zatrzymanie instancji (i zamkni˛ecie wszystkich
należy użyć polecenia
połaczeń)
˛
db2stop force
Uwagi:
W trybie interaktywnym (wejście w tryb interaktywny - polecenie
db2), nie poprzedzamy poleceń db2.
Aby wyjść z trybu interaktywnego - polecenie terminate.
Aby wyjść z linii komend - quit.
Środowsko DB2
Podstawowe środowisko serwera DB2 składa si˛e z instancji, bazy
danych oraz zwiazanych
˛
z nimi plików konfiguracyjnych.
Podczas instalacji w systemie Windows tworzona jest instancja
domyślnie o nazwie DB2COPY1, nasłuchujaca
˛ na porcie 50000.
Instancja jest to niezależne środowisko, w którym moga˛ być
uruchamiane aplikacje oraz tworzone bazy danych.
Środowsko DB2
Podstawowe środowisko serwera DB2 składa si˛e z instancji, bazy
danych oraz zwiazanych
˛
z nimi plików konfiguracyjnych.
Podczas instalacji w systemie Windows tworzona jest instancja
domyślnie o nazwie DB2COPY1, nasłuchujaca
˛ na porcie 50000.
Instancja jest to niezależne środowisko, w którym moga˛ być
uruchamiane aplikacje oraz tworzone bazy danych.
Na serwerze można tworzyć
wiele instancji, np. do
przechowywania bazy do celów
produkcyjnych; w roli
środowiska testowego.
Wszystkie te instancje sa˛
niezależne (czynności
wykonywane na jednej instancji
nie wpływaja˛ na pozostałe).
Rysunek: Serwer DB2 z dwoma
instancjami. Każda instancja ma
swój własny numer portu
Środowsko DB2
Podstawowe środowisko serwera DB2 składa si˛e z instancji, bazy
danych oraz zwiazanych
˛
z nimi plików konfiguracyjnych.
Podczas instalacji w systemie Windows tworzona jest instancja
domyślnie o nazwie DB2COPY1, nasłuchujaca
˛ na porcie 50000.
Instancja jest to niezależne środowisko, w którym moga˛ być
uruchamiane aplikacje oraz tworzone bazy danych.
W obr˛ebie każdej z dost˛epnych
instancji możemy utworzyć
wiele baz danych. Baza danych
jest kolekcja˛ obiektów, takich
jak tabele, widoki, indeksy, itd.
Każda baza jest niezależna i nie
współdzieli swoich obiektów z
innymi bazami danych.
Rysunek: Serwer DB2: dwie
instancje, w obr˛ebie każdej
utworzono bazy danych
Środowsko DB2
Podstawowe środowisko serwera DB2 składa si˛e z instancji, bazy
danych oraz zwiazanych
˛
z nimi plików konfiguracyjnych.
Serwer DB2 może być skonfigurowany na czterech różnych
poziomach:
I
zmienne środowiskowe;
I
rejestr profilu DB2;
I
plik konfiguracyjny menedżera bazy danych
(dbm cfg);
I
plik konfiguracyjny bazy danych
(db cfg).
Środowsko DB2
'%6HUZHU:LQGRZV
ϮdžƉƌĞƐƐͲ^ĞƌǀĞƌ
,QVWDQFMD'%&23<
ŵŝĞŶŶĞƑƌŽĚŽǁŝƐŬŽǁĞ
,QVWDQFMD1RZD,QVW
/ŶƐƚĂŶĐũĂϮKWzϭ
WůŝŬŬŽŶĨŝŐƵƌĂĐLJũŶLJ
ŵĞŶĂĚǏĞƌĂďĂnjLJ
ĚĂŶLJĐŚ
ĂnjĂĚĂŶLJĐŚ^DW>
WůŝŬ
ŬŽŶĨŝŐƵƌĂĐLJũŶLJ
ďĂnjLJĚĂŶLJĐŚ
ZĞũĞƐƚƌ
ƉƌŽĨŝůƵϮ
3257
WKZd
3257
Rysunek: Parametry konfiguracyjne DB2
Środowsko DB2
'%6HUZHU:LQGRZV
ϮdžƉƌĞƐƐͲ^ĞƌǀĞƌ
,QVWDQFMD'%&23<
ŵŝĞŶŶĞƑƌŽĚŽǁŝƐŬŽǁĞ
,QVWDQFMD1RZD,QVW
/ŶƐƚĂŶĐũĂϮKWzϭ
WůŝŬŬŽŶĨŝŐƵƌĂĐLJũŶLJ
ŵĞŶĂĚǏĞƌĂďĂnjLJ
ĚĂŶLJĐŚ
ĂnjĂĚĂŶLJĐŚ^DW>
WůŝŬ
ŬŽŶĨŝŐƵƌĂĐLJũŶLJ
ďĂnjLJĚĂŶLJĐŚ
ZĞũĞƐƚƌ
ƉƌŽĨŝůƵϮ
3257
WKZd
3257
Zmienne środowiskowe sa˛ umieszczone na poziomie systemu
operacyjnego serwera.
Plik konfiguracyjny menedżera bazy danych jest na poziomie
instancji.
Parametry konfiguracji bazy danych - na poziomie bazy danych.
Rejestr profilu DB2 określa parametry konfiguracyjne, które moga˛
dotyczyć serwera lub instancji.
Środowsko DB2
Zmienne środowiskowe sa˛ zmiennymi ustawianymi na poziomie
systemu operacyjnego serwera. Zmienne te, to np.
DB2INSTANCE - wskazuje na bieżac
˛ a˛ (aktywna)
˛ instancj˛e, na której
pracuje użytkownik i na rzecz której sa˛ wykonywane polecenia DB2.
Uwaga. może być tylko jedna bieżaca
˛ instancja.
DB2PATH - wskazuje ścieżk˛e do plików wykonywalnych DB2.
Odczytanie bieżacej
˛ instancji: db2 get instance (odczyta wartość
zmiennej DB2INSTANCE).
Ustawienie bieżacej
˛ instancji: db2 set dbinstance=nazwainstancji.
Środowisko DB2
Rejestr profilu DB2 określa parametry konfiguracyjne, które moga˛
dotyczyć serwera lub instancji. Znaczna cz˛eść środowiska DB2 jest
kontrolowana z tego poziomu. Rejestr profilu DB2 pełni rol˛e
głównego repozytorium dla kluczowych czynników kontrolnych,
które wpływaja˛ na serwer DB2 poza instancja˛ oraz dla ustawień
konfiguracyjnych bazy danych. Z tego poziomu można ustawiać np.
protokoły komunikacyjne, sposób przydzielania pami˛eci, definiować,
jak system ma si˛e zachować w określonych sytuacjach.
Rejestr profilu składa si˛e z czterech cz˛eści:
zmienne defniowane na poziomie instancji (Instance Level);
globalnie (Global Level);
na poziomie w˛ezła (dla środowiska partycjonowanego) (Instance
Node Level);
informacja o wszystkich instancjach w systemie (Instance Profile
Registry) (aby wyświetlić nazwy wszystkich instancji: db2ilist).
Środowisko DB2. Rejestr profilu DB2
DB2 używa bardzo wielu zmiennych rejestru.
W celu odczytu lub zmiany wartości zmiennych profilu rejestru DB2,
używamy polecenia db2set.
Wyświetlenie, jakie sa˛ możliwe zmienne: db2set -lr.
Aby odczytać, jakie zmienne sa˛ aktualnie ustawione dla środowiska:
db2set -all.
Środowisko DB2. Rejestr profilu DB2
Zmienne określone na poziomie instancji sa˛ oznaczone [i], globalne:
[g] (jeżeli zmienna jest ustawiona na poziomie instancji, przesłania
odpowiednie ustawienie globalne), środowiska: [e].
Środowisko DB2. Rejestr profilu DB2
Zmiany zmiennych rejestru powinno si˛e dokonywać za pomoca˛
polecenia db2set. Wówczas nie zachodzi konieczność restartowania
serwera, aby zmiany te zostały uwzgl˛ednione (sa˛ wprowadzane
dynamicznie).
Ustawienie wartości parametru (dla bieżacej
˛ instancji):
db2set parametr=wartość,
globalnie: db2set parametr=wartość -g.
Środowisko DB2. Plik konfiguracyjny menedżera bazy
Plik konfiguracyjny menedżera bazy danych zawiera parametry, które
wpływaja˛ na dana˛ instancj˛e i wszystkie bazy danych przez nia˛
zarzadzane.
˛
Dost˛ep z poziomu linii komend:
db2 get dbm cfg - pobiera informacje o konfiguracji menedżera bazy
danych;
db2 update dbm cfg using <nazwa_parametru> <wartość> modyfikacja wartości parametru.
Wiele parametrów jest dynamicznych (ich zmiany sa˛ widoczne
natychmiast), niektóre wymagaja˛ zatrzymania (db2stop) i
ponownego uruchomienia instancji (db2start).
(Konfigurowanie instancji można też przeprowadzić z poziomu IBM
Data Studio.)
Środowisko DB2. Plik konfiguracyjny bazy danych
Plik konfiguracyjny menedżera bazy danych zawiera parametry, które
wpływaja˛ na dana˛ baz˛e danych.
Dost˛ep z poziomu linii komend:
db2 get db cfg for <nazwa_bazy_danych> - pobiera informacje o
konfiguracji bazy danych (nie wymaga, aby użytkownik był
podłaczony
˛
do danej bazy);
db2 update db cfg using <nazwa_parametru> <wartość> modyfikacja wartości parametru.
(Konfigurowanie bazy danych można też przeprowadzić z poziomu
IBM Data Studio.)
Uwaga. nie wszystkie parametry w pliku konfiguracyjnym bazy moga˛
zostać zmienione - można zmieniać tylko te, które maja˛ określone
nazwy.
Architektura DB2 - model przechowywania danych
Podczas tworzenia bazy danych automatycznie tworzone sa˛ inne
obiekty: przestrzenie tablicowe, tabele, pula buforów i pliki logów.
Strona - najmniejsza jednostka przchowujaca
˛ dane w DB2. Rozmiar
strony może byc równy: 4KB, 8KB,16KB, 32KB.
Grupa stron stanowi ekstent (inaczej obszar). DB2 pracuje na całych
ekstentach, a nie na pojedynczych stronach.
Pula buforów - pami˛eć podr˛eczna dla danych (tablicowych i
indeksowych). Poprawia wydajność (zmniejsza ilość sekwencyjnych
operacji I/O, wykorzystuje asynchroniczne operacje czytania i zapisu
danych). DB2 przewiduje, które strony b˛eda˛ potrzebne i ładuje je z
dysku do puli buforów.
Powinna istnieć przynajmniej jedna pula buforów dla każdej bazy
danych oraz dla każdej wielkości strony przestrzeni tablicowej.
Architektura DB2 - model przechowywania danych
Przestrzenie tablicowe należy rozumieć jako logiczna˛ warstw˛e
pomi˛edzy logicznymi tabelami, a fizycznymi zasobami, takimi jak
np. dysk lub pami˛eć.
I
Przestrzeń tablicowa SYSCATSPACE zawiera tabele katalogu,
inaczej słownik danych. Zawieraja˛ informacje o systemie, które
nie powinny być modyfikowane lub usuwane. W przeciwnym
wypadku baza danych może nie działać poprawnie.
I
Przestrzeń tablicowa TEMPSPACE1 jest używana przez DB2,
kiedy zaistnieje potrzeba wykorzystania dodatkowego miejsca,
aby wykonać pewne czynności, np. sortowanie.
I
Przestrzeń tablicowa USERSPACE1 jest zwykle używana do
przechowywania tabel użytkownika (dla których użytkownik nie
określi przestrzeni tablicowej podczas tworzenia tabeli).
I
Można utworzyć własna˛ przestrzeń tablicowa˛ (polecenie
CREATE TABLESPACE).
W obr˛ebie utworzonej przestrzeni tablicowej można tworzyć kolejne
obiekty, jak tabele, widoki, indeksy.