Ćwiczenia 1 IBM DB2 UDB 9.x Express Edition Temat: Bezpieczeństwo serwera baz danych, kopie i odtwarzanie baz danych, przenoszenie danych pomiędzy serwerami, instancjami 1. Serwer DAS ( 10 minut ) a) Serwer DAS (Database Administration Server) wymagany jest do administracji serwerem DB2 poprzez zdalny interfejs administracyjny (środowisko GUI) b) Start serwera - db2admin start c) Zatrzymanie serwera - db2admin stop d) Usunięcie serwera DAS (system Windows) - db2admin drop e) Utworzenie serwera DAS (system Windows) - db2admin create f) Wyświetlenie pliku konfiguracyjnego - db2 get admin cfg g) Uaktualnienie pliku konfiguracyjnego - db2 update admin cfg h) Przywrócenie wartości domyślnych - db2 reset admin cfg Studenci: a) wyświetlenie pliku konfiguracyjnego - db2 get admin cfg b) zmiana parametru konfiguracyjnego DIAGLEVEL nowa wartość 4 db2 update admin cfg using diaglevel 4 c) zatrzymanie serwer DAS db2admin stop d) start serwera DAS db2admin start e) kontrola pliku konfiguracyjnego serwera DAS db2 get admin cfg f) kontrola zmiennych środowiskowych serwera DAS db2set all g) zatrzymanie serwera DAS h) usunięcie serwera DAS db2admin drop i) utworzenie serwera DAS db2admin create 2. Tworzenie kopii baz danych i odtwarzanie a) Prezentacja tworzenia całkowitej kopii bazy danych przy użyciu narzędzia graficznego Control Center możliwe tworzenie kopii przyrostowych, częściowych bazy danych podgląd polecenia SQL wykorzystanego do tworzenia kopii bazy danych. Możliwość tworzenia kopii off-line i on-line. Zagadnienia o których należy pamiętać przy kopiach on-line. b) Prezentacja odtworzenia z kopii usuniętej bazy danych przy pomocy narzędzia graficznego Control Center - podgląd utworzonego polecenia SQL Studenci: a) wyłączyć serwer DAS b) tworzymy katalog c:\kopie_baz_danych c) w narzędziu CC podświetlamy bazę danych sample i z menu (prawy przycisk myszy) wybieramy opcję backup d) wybieramy następną zakładkę Image i staramy się znaleźć katalog w którym zapiszemy kopię bazy danych brak możliwości wyboru katalogu e) włączamy serwer DAS f) powtarzamy punkt d) i wybieramy nasz katalog z punktu b) Strona 1
g) przechodzimy przez pozostałe zakładki i zatrzymujemy się na ostatniej Sumary podglądamy polecenie SQL show command h) wykonujemy backup bazy i) sprawdzamy zawartość katalogu c:\kopie_baz_danych j) budowa pliku kopii bazy danych SAMPLE.0.DB2.NODE0000.CATN0000.20071124151911.001 l) w narzędziu CC usuwamy z bazy danych sample dowolne tablice m) w narzędziu CC podświetlamy bazę danych sample i z menu wybieramy opcję restore, następnie podświetlamy naszą kopię i odtwarzamy bazę danych n) w narzędziu CC usuwamy bazę danych sample o) w narzędziu CC podświetlamy databases wybieramy opcję nowa baza danych, tworzenie z kopii bazy danych, wprowadzamy odpowiednią nazwę bazy danych w kopii sample, także tworzymy nową bazę danych sample, wybieramy katalog z nasza kopią bazy, wprowadzamy poprawną datę i czas z identyfikatora pliku kopii c) Przenoszenie danych pomiędzy serwerami d) W ramach tego punktu poznamy metody przenoszenia danych pomiędzy bazami danych. Typy plików do przenoszenia danych: DEL, ASC (starsze wersje), PC/IXF, arkusz WSF i kursor. e) Format DEL plik typu ASCII z ograniczeniem kolumny, np. przecinek, łańcuchy znakowe w cudzysłowach f) Format ASC plik pozycyjny typu ACSII o stałej długości wiersza, kazda kolumna ma swoją długość. g) Format PC/IXF standard IBM wykorzystywany do przenoszenia danych pomiędzy bazami DB2. Zawiera oprócz danych informacje o typach i strukturach tabel, dzięki czemu można je wykorzystać do tworzenia bazy danych i ładowania do nich danych. h) Format WSF plik w standardzie arkusza kalkulacyjnego Lotus 1-2-3 i Symphony. Akceptowane wszystkie rozszerzenia WSK, WK1, WRK, WR1 i WJS. Plik wykorzystywane do przenoszenia danych pomiędzy bazą danych a arkuszami kalkulacyjnymi. i) Narzędzie export służy do eksportu danych z tabel i umieszczenia ich w pliku. Uprawnienia wymagane do wykonania polecenia to jedno z listy: SYSADM, DBADM, CONTROL lub SELECT do obiektów które są eksportowane. j) Przykładowe użycie z linii poleceń interpretera DB2 lub edytora poleceń (GUI), można także sprawdzić wykorzystując menu (prawy przycisk na tabeli): ixf - export to empdata.ixf of ixf selekt * from employee del - export to empdata.del of del selekt * from employee modyfikacja ogranicznika w formacie del z przecinka na średnik export to deptmgr.del of del modified by coldel; (uwaga nowy znak zaraz po coldel) select deptano, deptname, firstname, lastname, salary from employee, departament where emino=marno modyfikacja strony kodowej export to deptmgr.del of del modified by coldel; codepage=1208 select deptano, deptname, firstname, lastname, salary Strona 2
from employee, departament where emino=marno zmiana nazw atrybutów w tabeli wynikowej export to newsalary.ixf of ixf metod n ( EMPLOYEENO, FIRSTNAME, LASTNAME ) select empno, firstname, lastname from employee k) Pobieranie danych do bazy odbywa się przy pomocy narzędzia import. Narzędzie pobiera dane z plików otrzymanych w czasie eksportu. Dane z pliku mogą być następująco przetwarzane: i. insert importowane dane są dodawane do istniejących, nie modyfikują ich, tabela musi istnieć ii. insert-update importowane dane SA dodawane do tabeli, ale jeżeli wartość klucza wstawianego wiersza jest zgodna z In=stniejącym w bazie, dane aktualizowane. Tabela docelowa istnieje, zdefiniowany jest też klucz główny iii. create tworzy tabelę, definiuje indeksy i wstawia wiersze. Plik wejściowy musi być w formacie IXF, gdyż tylko on posiada odpowiednie informacje. iv. replace usuwa dane z tabeli i wstawia nowe dane. Tabela istnieje. v. replace-create jeżeli tabela istnieje wykonywana jest opcja replace, w przeciwnym przypadku create. Plik musi być w formacie IXF. l) Przykładowe użycie polecenia import import from employee.del of del messages empsalary.out warningcount 10 insert into empsalary (salary, bonus, comm) utworzenie tabeli ( format IXF) import from epmloyee.ixf of ixf messages employee.out rowcount 1000 replace_create into newemployee m) Kolejnym narzędziem jest load. W tym przypadku tabela końcowa powinna istnieć. Polecenie można uruchomić w Centrum Sterowania. Studenci: a) Tworzymy nową bazę danych mydata b) Przy pomocy polecenia export pobieramy dane z tabeli employee z bazy danyh sample : export to employee_data.ixf of ixf select * from employee ; c) Tworzymy tabelę i wstawiamy do niej dane przy pomocy polecenia export z pliku danych employee_data.ixf format pliku IXF. import from employee_data.ixf of ixf messages employee.out create into employee ; d) Usuwamy z tabeli employee w bazie danych mydata następujące rekordy: delete from employee where workdept='d11' ; e) Eksportujemy dane z tabeli employee bazy sample przy pomocy polecenia: export to employee_data.del of del select * from employee ; Strona 3
f) Importujemy do tabeli employee w bazie danych mydata przy pomocy polecenia: import from employee_data.del of del messages employee.out replace into employee; g) Import danych można wykonać przy pomocy polecenia load. W przeciwieństwie do polecenia import polcenie to nie wykorzystuje polecenia SQL insert. Polecenie to działa znacznie szybciej, zmiany nie są zapisywane w dzienniku transakcji, nie są też weryfikowane ograniczenia integralności. Polecenie to wczytuje dane, formatuje strony danych i zapisuje bezpośrednio w bazie danych. Przykładowe polecenie: load from employee_data.del of del messages employee.out replace into employee; 3. Tworzenie klonu bazy danych do nowej instancji (15 minut ) Zadania dla studentów: a) Wykorzystujemy kopię bazy danych sample wykonaną w instancji DB2 i. Tworzymy kopię bazy sample w instancji DB2 ii. Tworzymy nową instancję MYDATA1 iii. Wykorzystując narzędzie restore tworzymy bazę danych sample alias sample1 w instancji MYDATA1 b) Wykorzystujemy polecenie db2look do utworzenia skryptu zawierającego obiekty DDL, a następnie odtworzenie struktury bazy w nowej instancji. i. Tworzymy skrypt zawierający opis obiektów DDL db2look d sample e o db2sample.sql ii. Tworzymy nową instancję MYDATA2 iii. Tworzymy bazę danych sample alias sample2 wykorzystując db2 create database iv. Tworzymy strukture bazy danych wykorzystując skrypt db2sample.sql i polecenie db2 tvf db2sample.sql 4. Narzędzia kontroli stanu baz danych a) Prezentacja narzędzi do kontroli stanu bazy danych b) db2dart używamy gdy do bazy danych nie ma podłączonych żadnych użytkowników. Po sprawdzeniu użytkownik otrzymuje informację o poprawności bazy danych. W przypadku uszkodzonych stron baz danych należy odtworzyć bazę z kopii zapasowej. W przypadku uszkodzonych stron indeksów można je naprawić nie wykorzystując kopii bazy danych. Indeks można odtworzyć poleceniem db2dart lub może to wykonać sama baza danych db2 w zależności od parametru INDEXREC. Jeżeli wartość parametru wynosi ACCESS system DB2 sam przebuduje indeks po pierwszej próbie uzyskania do niego dostępu, w przypadku wartości RESTART baza danych przebuduje indeks po restarcie bazy danych, natomiast w przypadku System w zależności jak zdefiniowano w menadżerze baz danych. c) Polecenie kontrolujące bazę danych db2dart <nazwa_bazy_danych> Strona 4
d) Drugim narzędziem kontrolującym stan bazy danych jest INSPECT uruchomiany gdy baza działa. Tworzony jest plik binarny, który należy przetworzyć przy pomocy aplikacji d2inspf Studenci: a) zatrzymujemy bazę danych sample i z linii poleceń uruchamiamy program db2dart sample > sample_dart.txt b) sprawdzamy jaka jest wartość parametru INDEXREC w parametrach instancji DB2; narzędzie graficzne CC i z linii poleceń odpowiednie polecenie CLP c) uruchamiamy polecenie db2, logujemy się do bazy danych sample i wykonujemy polecenie inspect check database results keep inspect.out d) znajdujemy plik w katalogu c:\program FILES\IBM\SQLLIB\DB2 (plik znajduje się w katalogu w którym zapisywany jest plik db2diag.log) i przy użyciu narzędzia db2inspf konwertujemy do pliku tekstowego db2inspf inspect.out sample_inspect.txt e) Bezpieczeństwo bazy danych f) Uwierzytelnienie na poziomie instancji parametry pliku konfiguracyjnego: i. Serwer ii. Klient iii. Szyfrowanie serwera (hasło jest przesyłane w postaci zaszyfrowanej) iv. Kerberos v. Szyfrowanie Kerberos vi. Wtyczka GSS (Generic Security Service) vii. Szyfrowanie serwera GSS viii. Szyfrowanie danych ix. Szyfrowanie danych cmp g) Uwierzytelnienie na poziomie baz danych h) Użytkownicy i grupy w bazie danych i) Autoryzacja (uprawnienia) do obiektów bazy danych Strona 5
Strona 6
Strona 7
Strona 8