sprawozdanie - Marek Lewandowski
Transkrypt
sprawozdanie - Marek Lewandowski
Replikacja kolejkowa (Q-replication) w IBM DB2 Paweł Kędziora, Maciej Krysiuk, Marek Lewandowski Politechnika Poznańska [email protected], [email protected], [email protected] SPIS TREŚCI 1 Wstęp.................................................................................................................................. 3 1.1 Replikacja kolejkowa ................................................................................................. 3 1.2 Wymagane produkty .................................................................................................. 3 2 Instalacja i przygotowanie środowiska .............................................................................. 5 2.1 Konfiguracja baz danych............................................................................................ 5 2.2 Konfiguracja WebSphere MQ.................................................................................... 6 2.2.1 Utworzenie menedżera kolejek .......................................................................... 6 2.2.2 Utworzenie kolejek źródłowych......................................................................... 7 2.2.3 Utworzenie kolejek docelowych ........................................................................ 8 2.2.4 Kanały WebSphere MQ ..................................................................................... 8 2.2.4.1 Kanały kolejek źródłowych............................................................................ 9 2.2.4.2 Kanały kolejek docelowych ........................................................................... 9 2.3 Tabele kontrolne replikacji......................................................................................... 9 2.3.1 Tabele kontrolne programu Q Capture............................................................. 10 2.3.2 Tabele kontrolne programu Q Apply ............................................................... 11 2.4 Mapy kolejek replikacji............................................................................................ 12 2.5 Subskrypcje .............................................................................................................. 13 3 Replikacja......................................................................................................................... 14 3.1 Uruchomienie kanałów i listenerów......................................................................... 14 3.2 Uruchomienie programu Q Capture i Q Apply ........................................................ 15 3.3 Rezultat replikacji. ................................................................................................... 17 4 Literatura .......................................................................................................................... 18 2 1 Wstęp 1.1 Replikacja kolejkowa Replikacja kolejkowa jest bardzo wydajnym, szybkim, niezawodnym i minimalizującym obciążenie sieci komputerowej mechanizmem replikacji danych. Rozwiązanie te wykorzystuje kolejki komunikatów w celu asynchronicznego przesyłania transakcji pomiędzy źródłową a docelową bazą danych. 1.2 Wymagane produkty W celu wykonania replikacji należy zainstalować (zarówno na komputerze stanowiącym źródło jak i cel danych) następujące produkty: • • • Baza danych IBM DB2 8.2 WebSphere MQ 5.3 (lub wyższe) WebSphere Information Integrator 6 (lub wyższe) WebSphere MQ jest warstwą umożliwiającą aplikacjom wymienianie się komunikatami i stanowi swego rodzaju interfejs udostępniający połączenie poszczególnych kolejek. Rys 1.1: Komponenty replikacji kolejkowej. 3 Rys. 1.2 WebSphere MQ i jego rola pośrednicząca. 4 2 Instalacja i przygotowanie środowiska 2.1 Konfiguracja baz danych Po zainstalowaniu wszystkich wymaganych produktów należy utworzyć bazy danych: źródłową i docelową. W przeprowadzonym eksperymencie tabela źródłowa nazwana została SAMPLE_K, a tabela docelowa KUBA_TGT. Rys. 2.1: Widok okna Centrum Sterowania z widocznymi bazami: źródłową i docelową. 5 Należy utworzyć kopię zapasową źródłowej bazy danych, a następnie stworzyć dla niej log. Rys. 2.2: Konfiguracja bazy danych – tworzenie logu. 2.2 Konfiguracja WebSphere MQ 2.2.1 Utworzenie menedżera kolejek W celu utworzenia menedżera kolejek należy w konsoli systemu operacyjnego wpisać następujące polecenia: crtmqm SRC_QM crtmqm TGT_QM strmqm SRC_QM strmqm TGT_QM 6 Rys. 2.3: Widok konsoli systemu operacyjnego z poleceniami utworzenia menedżerów kolejek. 2.2.2 Utworzenie kolejek źródłowych Kolejka jest strukturą danych wykorzystywaną do przechowywania wiadomości. Właścicielem kolejek jest menedżer kolejki (patrz 2.2.1 oraz Rys. 1.2). Dla menedżera SRC_QM należy zdefiniować cztery kolejki: • SENDQ – zdalna kolejka nadawcza, która jest używana do przekazywania wiadomości zawierających replikowane dane. Wiadomości te są przekazywane do kolejki odbiorczej w docelowej bazie danych. • TGT_QM – lokalna kolejka transmisyjna przechowująca wiadomości przed umieszczeniem ich w kanale. • ADMINQ – lokalna kolejka administracyjna, za pomocą której program Q Capture otrzymuje komunikaty od programu Q Apply. • RESTARTQ – lokalna kolejka restartu Aby utworzyć powyższe kolejki należy w konsoli systemu operacyjnego wpisać następujące polecenia: 7 runmqsc SRC_QM DEFINE QLOCAL ('ADMINQ') DEFPSIST(YES) DEFINE QLOCAL ('RESTARTQ') DEFPSIST(YES) DEFINE QLOCAL('TGT_QM') USAGE(XMITQ) DEFPSIST(YES) DEFINE QREMOTE('SENDQ') RNAME('RECVQ') RQMNAME('TGT_QM') XMITQ('TGT_QM') DEFPSIST(YES) End 2.2.3 Utworzenie kolejek docelowych Dla menedżera TGT_QM należy zdefiniować następujące kolejki: • RECVQ – lokalna kolejka odbierająca wiadomości z programu Q Capture • ADMINQ – zdalna kolejka administracyjna • SPILLQ – dzięki kolejce typu SPILL możliwe jest jednoczesne wprowadzanie danych podczas replikacji. • SRC_QM – lokalna kolejka transmisyjna. Aby utworzyć powyższe kolejki należy w konsoli systemu operacyjnego wpisać następujące polecenia: runmqsc TGT_QM DEFINE QLOCAL('RECVQ') DEFPSIST(YES) DEFINE QLOCAL('SRC_QM') USAGE(XMITQ) DEFPSIST(YES) DEFINE QREMOTE('ADMINQ') RNAME('ADMINQ') RQMNAME('SRC_QM') XMITQ('SRC_QM') DEFPSIST(YES) DEFINE QMODEL('IBMQREP.SPILL.MODELQ') DEFSOPT(SHARED) MSGDLVSQ(FIFO) DEFTYPE(PERMDYN) End 2.2.4 Kanały WebSphere MQ Kanały WebSphere MQ używane są do przesyłania wiadomości między menedżerami kolejek. 8 2.2.4.1 Kanały kolejek źródłowych Aby utworzyć powyższe kolejki należy w konsoli systemu operacyjnego wpisać następujące polecenia: runmqsc SRC_QM DEFINE CHL ('SRC_QM.TO.TGT_QM') CHLTYPE(SDR) TRPTYPE(TCP) CONNAME ('150.254.32.240(1450)') XMITQ('TGT_QM') DISCINT(0) DEFINE CHL ('TGT_QM.TO.SRC_QM') CHLTYPE(RCVR) TRPTYPE(TCP) End gdzie atrybutem parametru CONNAME adres IP i jeden z portów komputera na którym znajduje się WebSphere. 2.2.4.2 Kanały kolejek docelowych Aby utworzyć powyższe kolejki należy w konsoli systemu operacyjnego wpisać następujące polecenia: runmqsc TGT_QM DEFINE CHL ('TGT_QM.TO.SRC_QM') CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('150.254.32.240(1451)') XMITQ('SRC_QM') DISCINT(0) DEFINE CHL ('SRC_QM.TO.TGT_QM') CHLTYPE(RCVR) TRPTYPE(TCP) End gdzie atrybutem parametru CONNAME adres IP i jeden z portów (różny od wykorzystanego w punkcie 2.2.4.1!) komputera na którym znajduje się WebSphere. 2.3 Tabele kontrolne replikacji Tabele kontrolne zawierają m.in. informacje na temat tabel z których i do których dokonywana jest replikacja danych. Wszystkie poniższe działania wykonuje się za pomocą Repliaction Center. 9 2.3.1 Tabele kontrolne programu Q Capture Rys. 2.4: Tabele sterujące programu Q Capture. Rys. 2.5: Wartości, którymi należy wypełnić tabele sterujące programu Q Capture. 10 2.3.2 Tabele kontrolne programu Q Apply Rys. 2.6: Tworzenie tabeli sterującej programu Q Apply. Rys. 2.7: Zawartość tabeli sterującej programu Q Apply 11 2.4 Mapy kolejek replikacji Mapy kolejek replikacji służą do powiązania ze sobą kolejki nadawczej źródła danych i kolejki odbiorczej docelowej bazy danych. Rys. 2.8: Tworzenie mapy kolejkowej Rys. 2.9: Parametry tworzenia mapy kolejkowej. 12 2.5 Subskrypcje Subskrypcje służą do mapowania tabeli źródłowej na jej kopię w docelowej bazie danych. Tworzenie subskrypcji wymaga znajomości nazwy kolejki, która będzie wykorzystywana do transmisji danych oraz podania tabeli źródłowej i docelowej a także wskazania mapowania, które ma zostać wykorzystane. Rys. 2.10: Tworzenie subskrypcji Rys. 2.11: Stworzona subskrypcja 13 3 Replikacja 3.1 Uruchomienie kanałów i listenerów Aby uruchomić kanały, należy najpierw uaktywnić menedżerów kolejek. Można to wykonać wprowadzając w konsoli systemu operacyjnego następujące polecenia: strmqm SRC_QM strmqm TGT_QM Następnie za pomocą poniższego polecenia należy uruchomić listener odbiorcy na kolejce źródłowej: runmqlsr -t tcp -m SRC_QM -p 1451 Następnie należy zainicjować nową sesję (w oknie nowej konsoli) menedżera SRC_QM: runmqsc SRC_QM Uruchomienie kanału: start channel (SRC_QM.TO.TGT_QM) end Uruchomienie listenera dla menedżera TGT_QM: runmqlsr -t tcp -m TGT_QM -p 1450 Następnie należy zainicjować nową sesję (w oknie nowej konsoli) menedżera TGT_QM: runmqsc TGT_QM Uruchomienie kanału: start channel (TGT_QM.TO.SRC_QM) end Poprawność działania kanałów można sprawdzić zarówno wykonując polecenia: DISPLAY CHSTATUS (SRC_QM.TO.TGT_QM) DISPLAY CHSTATUS (TGT_QM.TO.SRC_QM) 14 jak i korzystając z Replication Center: Rys. 3.1: Poprawność działania kanałów 3.2 Uruchomienie programu Q Capture i Q Apply Rys. 3.2 Uruchomienie programu Q Capture. Program Q Capture uruchamiany jest dla źródłowej bazy danych. Parametr KATALOG wskazuje ścieżkę na dysku lokalnym dla serwera Q Capture, gdzie znajdują się pliki z hasłami (umożliwiającymi dostęp do docelowej i lokalnej bazy danych) 15 oraz gdzie będą składowane pliki logu z wszystkimi komunikatami generowanymi przez program Q Capture podczas przeprowadzania procesu replikacji. Pliki z hasłami są tworzone i szyfrowane przez dostarczony wraz z systemem program asnpwd: Rys. 3.3: Tworzenie pliku asnpwd.aut z hasłami dostępu. Po wykonaniu wygenerowanego przez system skryptu program Q Capture jest uruchomiony. Rys. 3.4: Rezultat poprawnego uruchomienia programu Q Capture. Program Q Apply uruchamiany jest dla docelowej bazy danych. Uruchomienie programu Q Apply następuje z użyciem menu kontekstowego docelowej bazy danych w oknie Centrum Replikacji. System generuje skrypt, którego wykonanie powoduje uruchomienie programu Q Apply i w konsekwencji replikację danych. 16 Rys. 3.5 Rezultat poprawnego uruchomienia programu Q Apply 3.3 Rezultat replikacji. Wynikiem poprawnej replikacji jest uzyskanie repliki tabeli źródłowej w docelowym schemacie bazy danych. Rys. 3.6: Zawartość tabeli źródłowej. Rys. 3.7: Zawartość tabeli docelowej. 17 4 Literatura 1. „WebSphere Information Integrator Q Replication: Fast Track Implementation Scenarios” – Nagraj Allur, Rich Briddell, Donna Kelsey, Naoko Takaya – Seria REDBOOKS. 2. Dokumentacja techniczna IBM DB2 18