System zarządzania 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ępna na stronie IBM.
Krótka historia IBM DB2 1970 - IBM opracowuje model relacyjnych baz danych (System-R) 1974 - powstaje język SEQUEL (późniejszy SQL) system na platformy mainframe, jak Virtual Machine (VM), Virtual Storage Extended (VSE) i Multiple Virtual Storage (MVS). 1983 - DATABASE 2 (DB2) (wersja na platformę Multiple Virtual Storage (MVS)) 1987 - DB2 jako pierwsza relacyjna baza danych przeznaczona na platformę otwartą (dla systemu OS/2) lata 90-te - powstają wersje DB2 dla innych systemów operacyjnych (Linux, Unix, Windows) 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ępny dla systemów: AIX, Solaris, HP-UX, Windows (32 bit i 64 bit) Linux, iseries, zseries
Edycje DB2
Edycje DB2 Advanced Enterprise Server Edition i Enterprise Server Edition Advanced Workgroup Server Edition Workgroup Server Edition Express Edition Express-C Developer Edition
Edycje DB2 Advanced Enterprise Server Edition i Enterprise Server Edition Serwer danych dla dużych i średnich przedsiębiorstw. Można go wdrożyć na serwerze Linux, UNIX lub Windows dowolnej wielkości. Dla wysokowydajnych, stabilnych rozwiązań klasy korporacyjnej (rozwiązania biznesowe do przetwarzania dużych ilości transakcji, rozwiązania z interfejsem WWW, inteligentna analiza danych, zarządzanie treścią, handel elektroniczny, planowanie zasobów przedsiębiorstwa (ERP), hurtownie danych) Advanced Workgroup Server Edition Workgroup Server Edition Express Edition Express-C Developer Edition
Edycje DB2 Advanced Enterprise Server Edition i Enterprise Server Edition Serwer danych dla dużych i średnich przedsiębiorstw. Można go wdrożyć na serwerze Linux, UNIX lub Windows dowolnej wielkości. Dla wysokowydajnych, stabilnych rozwiązań klasy korporacyjnej (rozwiązania biznesowe do przetwarzania dużych ilości transakcji, rozwiązania z interfejsem WWW, inteligentna analiza danych, zarządzanie treścią, handel elektroniczny, planowanie zasobów przedsiębiorstwa (ERP), hurtownie danych) Advanced Workgroup Server Edition Oferuje podobną funkcjonalność jak edycja Enterprise, ale nakłada ograniczenia na liczbę procesorów, ilość pamięci i wielkość baz danych. Workgroup Server Edition Express Edition Express-C Developer Edition
Edycje DB2 Advanced Enterprise Server Edition i Enterprise Server Edition Serwer danych dla dużych i średnich przedsiębiorstw. Można go wdrożyć na serwerze Linux, UNIX lub Windows dowolnej wielkości. Dla wysokowydajnych, stabilnych rozwiązań klasy korporacyjnej (rozwiązania biznesowe do przetwarzania dużych ilości transakcji, rozwiązania z interfejsem WWW, inteligentna analiza danych, zarządzanie treścią, handel elektroniczny, planowanie zasobów przedsiębiorstwa (ERP), hurtownie danych) Advanced Workgroup Server Edition Oferuje podobną funkcjonalność jak edycja Enterprise, ale nakłada ograniczenia na liczbę procesorów, ilość pamięci i wielkość baz danych. Workgroup Server Edition Edycja dla środowisk biznesowych obejmujących pojedyncze działy lub zespoły albo dla średnich firm. Express Edition Express-C
Edycje DB2 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ębiorstw. Express-C Developer Edition
Edycje DB2 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ębiorstw. 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 zarządzania i wszystkie podstawowe możliwości produktów DB2 dla systemów Linux, UNIX i Windows, takie jak purexml. Developer Edition
Edycje DB2 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ębiorstw. 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 zarządzania 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żliwiający projektowanie, kompilowanie i tworzenie prototypów aplikacji.
Skad wziać dalsze informacje? Strona główna produktu http://www-01.ibm.com/software/data/db2/ Centrum informacyjne IBM http://www-01.ibm.com/support/knowledgecenter/ SSEPGG/welcome 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ę 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 pomocą: pliku setup.exe w katalogu EXPC. Wybieramy opcję zainstaluj nowy produkt. Na kolejnych ekranach kreatora, wybieramy ustawienia domyślne: typ instalacji (typowa) wprowadzamy nazwę użytkownika systemu, który będzie zarządzał instancją i innymi usługami (można wybrać istniejące konto użytkownika lokalnego systemu, ale lepiej jest stworzyć osobne konto użytkownika, domyślna nazwa db2admin) po zakończeniu instalacji warto zrestartować system!
Co zostało zrobione podczas instalacji? Instalacja oprogramowania Utworzony użytkownik - administrator DB2. Utworzone usługi: Instancja DB2 - DB2COPY1 Serwer administracyjny DB2DAS - DB2DAS00 dodatkowe usługi (DB2 Governor, DB2 Licence Server,...)
Co zostało zrobione podczas instalacji? Instalacja oprogramowania Utworzony użytkownik - administrator DB2. Utworzone usługi: 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: db2level wyświetla informacje o zainstalowanym produkcie (wersja, pakiety poprawek, katalog, itp.) db2licm -l informacje o licencji db2val walidacja instalacji - sprawdza poprawność podstawowych funkcji serwera DB2.
Łaczenie się z baza Dostępne narzędzia: Pierwsze kroki w programie DB2: umożliwia szybkie instalowanie i konfigurowanie produktu, udostępnia odsyłacze do przydatnych materiałów referencyjnych, typowych zadań i narzędzi, 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ędzia graficzne: IBM Data Studio - rozbudowane narzędzie, bazujące na Eclipsie, umożliwia administrację bazami danych, wspomaga tworzenie skryptów SQL, XQuery, procedur zapamiętanych,...
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. Polecenia administracyjne db2 list applications db2 force application all db2 create database baza1... Narzędzia systemowe db2start db2stop Polecenia języka SQL db2 connect to SAMPLE db2 connect reset db2 select * from employee...
Jak sprawdzić, kto jest podłączony do DB2? db2 list applications Jak rozłączyć wszystkich użytkowników od bazy? db2 force application all Jak sprawdzić listę dostępnych poleceń? db2? jak sprawdzić składnię polecenia, np. backup? db2? backup Jak podłączyć się do bazy? db2 connect to nazwa_bazy Jak podłączyć sie do bazy jako inny użytkownik? db2 connect to nazwa_bazy user login using hasło Jak odłączyć się od bazy? db2 connect reset Jakiego użytkownika użyłem przy połączeniu? db2 values current user Do jakiej bazy jestem podłączony? db2 get connection state
Wersja DB2: db2level Informacje o licencji: db2licm -l Uruchomienie bieżącej instancji: db2start Zatrzymanie bieżącej instancji: db2stop Instancja nie zostanie zatrzymana, jeżeli są aktywne połączenia, aby wymusić zatrzymanie instancji (i zamknięcie wszystkich połączeń) należy użyć polecenia 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ę 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łuchująca na porcie 50000. Instancja jest to niezależne środowisko, w którym mogą być uruchamiane aplikacje oraz tworzone bazy danych.
Środowsko DB2 Podstawowe środowisko serwera DB2 składa się 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łuchująca na porcie 50000. Instancja jest to niezależne środowisko, w którym mogą 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 są niezależne (czynności wykonywane na jednej instancji nie wpływają 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ę 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łuchująca na porcie 50000. Instancja jest to niezależne środowisko, w którym mogą być uruchamiane aplikacje oraz tworzone bazy danych. W obrębie każdej z dostępnych instancji możemy utworzyć wiele baz danych. Baza danych jest kolekcją 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ębie każdej utworzono bazy danych
Środowsko DB2 Podstawowe środowisko serwera DB2 składa się z instancji, bazy danych oraz zwiazanych z nimi plików konfiguracyjnych. Serwer DB2 może być skonfigurowany na czterech różnych poziomach: zmienne środowiskowe; rejestr profilu DB2; plik konfiguracyjny menedżera bazy danych (dbm cfg); plik konfiguracyjny bazy danych (db cfg).
Środowsko DB2 Rysunek: Parametry konfiguracyjne DB2
Środowsko DB2 Zmienne środowiskowe są 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 mogą dotyczyć serwera lub instancji.
Środowsko DB2 Zmienne środowiskowe są zmiennymi ustawianymi na poziomie systemu operacyjnego serwera. Zmienne te, to np. DB2INSTANCE - wskazuje na bieżącą (aktywną) instancję, na której pracuje użytkownik i na rzecz której są wykonywane polecenia DB2. Uwaga. może być tylko jedna bieżąca instancja. DB2PATH - wskazuje ścieżkę do plików wykonywalnych DB2. Odczytanie bieżącej instancji: db2 get instance (odczyta wartość zmiennej DB2INSTANCE). Ustawienie bieżącej instancji: db2 set dbinstance=nazwainstancji.
Środowisko DB2 Rejestr profilu DB2 określa parametry konfiguracyjne, które mogą dotyczyć serwera lub instancji. Znaczna część środowiska DB2 jest kontrolowana z tego poziomu. Rejestr profilu DB2 pełni rolę głównego repozytorium dla kluczowych czynników kontrolnych, które wpływają na serwer DB2 poza instancją oraz dla ustawień konfiguracyjnych bazy danych. Z tego poziomu można ustawiać np. protokoły komunikacyjne, sposób przydzielania pamięci, definiować, jak system ma się zachować w określonych sytuacjach. Rejestr profilu składa się z czterech części: zmienne defniowane na poziomie instancji (Instance Level); globalnie (Global Level); na poziomie węzł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 są możliwe zmienne: db2set -lr. Aby odczytać, jakie zmienne są aktualnie ustawione dla środowiska: db2set -all.
Środowisko DB2. Rejestr profilu DB2 Zmienne określone na poziomie instancji są 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ę dokonywać za pomocą polecenia db2set. Wówczas nie zachodzi konieczność restartowania serwera, aby zmiany te zostały uwzględnione (są wprowadzane dynamicznie). Ustawienie wartości parametru (dla bieżącej 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ływają na daną instancję i wszystkie bazy danych przez nią zarządzane. Dostęp 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 są widoczne natychmiast), niektóre wymagają 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ływają na daną bazę danych. Dostęp 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łączony 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 mogą zostać zmienione - można zmieniać tylko te, które mają określone nazwy.
Architektura DB2 - model przechowywania danych Podczas tworzenia bazy danych automatycznie tworzone są inne obiekty: przestrzenie tablicowe, tabele, pula buforów i pliki logów. Strona - najmniejsza jednostka przchowująca 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ęć podręczna 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ędą 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ę pomiędzy logicznymi tabelami, a fizycznymi zasobami, takimi jak np. dysk lub pamięć. Przestrzeń tablicowa SYSCATSPACE zawiera tabele katalogu, inaczej słownik danych. Zawierają informacje o systemie, które nie powinny być modyfikowane lub usuwane. W przeciwnym wypadku baza danych może nie działać poprawnie. Przestrzeń tablicowa TEMPSPACE1 jest używana przez DB2, kiedy zaistnieje potrzeba wykorzystania dodatkowego miejsca, aby wykonać pewne czynności, np. sortowanie. 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). Można utworzyć własną przestrzeń tablicową (polecenie CREATE TABLESPACE). W obrębie utworzonej przestrzeni tablicowej można tworzyć kolejne obiekty, jak tabele, widoki, indeksy.