Klastrowanie bazy IBM DB2 Adam Duszeńko
Typy klastrów Wydajnościowe Skalowalność Równoległość Obliczeń Składowania Wiele punktów dostępu Niezawodnościowe Bezpieczeństwo Zwielokrotnienie Danych Operacji Przełączanie przy awarii
Klaster niezawodnościowy Bezpieczeństwo Zwielokrotnienie Danych Operacji Przełączanie przy awarii
High Availability Disaster Recovery (HADR) Serwer główny i serwer zapasowy Utrzymywanie spójności na podstawie logów
HADR
Awaria serwera głównego
Powstanie serwera głównego
Konfiguracja HADR HADR_LOCAL_HOST HADR_LOCAL_SVC HADR_REMOTE_HOST HADR_REMOTE_SVC HADR_REMOTE_INST HADR_TIMEOUT HADR_SYNCMODE HADR_DB_ROLE
HADR_SYNCMODE SYNC (Synchronous) NEARSYNC (Near Synchronous) ASYNC (Asynchronous)
Tryb SYNC
Tryb NEARSYNC
Tryb ASYNC
Przygotowanie serwera standby Wykonać kopię bezpieczeństwa bazy serwera głównego Odtworzenie bazy z kopii na serwerze zapasowym Uruchomienie bazy zapasowej w stanie roll forward pending Uruchomienie bazy głównej
Kopia bazy i jej przeniesienie Kopia backup db <baza> to <katalog> np.: backup db sample to e:\backup Odtworzenie list db directory restore db <baza> from <catalog> replace history file np.: list db directory restore db sample from e:\backup replace history file
Uaktualnić przekierowywanie TAKEOVER NA PRIMARY: update alternate server for database <baza> using hostname <maszyna_secondary> port <port_instancji_db2_na_maszynie_secondary> terminate np.: update alternate server for database sample using hostname 1.1.1.2 port 50000 terminate NA SECONDARY: update alternate server for database <baza> using hostname <maszyna_primary> port <port_instancji_db2_na_maszynie_primary> terminate np.: update alternate server for database sample using hostname 1.1.1.1 port 50000 terminate
Uruchomienie bazy Startujemy HADR: SECONDARY: np.: start hadr on database <baza> as standby start hadr on database sample as standby Startujemy HADR: PRIMARY: np.: start hadr on database <baza> as primary start hadr on database sample as primary
Klaster wydajnościowy Równoległa realizacja Przetwarzania Składowania danych Baza widoczna z każdego węzła w klastrze
Database Partitioning Feature (DPF) Dostępne w DB2 UDB Enterprise Server Edition (ESE) Umożliwia partycjonowanie na poziomie Wielu komputerów Dużego systemu SMP Wymagana tylko stosowna licencja Przeźroczyste dla użytkownika
Partycja bazy danych Samodzielna część bazy danych Tworzona na niezależnych komputerach lub w ramach systemu SMP Posiada własne dane, pliki konf., indeksy, dziennik transakcji
Możliwości podziału bazy na partycje Na poszczególne komputery Na partycje w ramach dużego systemu SMP
Pojedyncza partycja na system
Wiele partycji na system
Wiele partycji na system
Podstawowe wymagania Węzły pracujące pod kontrolą tego samego SO Te same wersje serwera DB2 Szybkie połączenie TCP/IP pomiędzy węzłami
Konfiguracja TCP/IP Rezerwacja portów do komunikacji pomiędzy partycjami /etc/services DB2_db2inst1 DB2_db2inst1_1 DB2_db2inst1_2 DB2_db2inst1_END db2c_db2inst1 60000/tcp 60001/tcp 60002/tcp 60003/tcp 50000/tcp
Konfiguracja partycji
Tworzenie instancji Partycjonowaniu podlega baza danych a nie instancja Niezależnie od ilości węzłów i partycji instancja tworzona jest tylko raz na serwerze NFS Każdy z węzłów musi posiadać identycznych użytkowników ze wspólnym katalogiem domowym
Lokalizacja instancji
Tworzenie bazy danych CREATE DATABASE mydb2 /home /myinst /NODE0000 /SQL00001 /NODE0001 /SQL00001 /NODE0002 /SQL00001
Partycjonowanie bazy danych CREATE DATABASE mydb2 on /data /data/instance_name/ NODExxxx/SQLyyyyy
Zpartycjonowana baza danych
Działanie DPF Zapytania dekomponowane do podzapytań realizowanych równolegle na podzbiorach danych na poszczególnych partycjach Koordynator zbiera podwyniki interpartition parallelism oraz intrapartition parallelism
SMP (shared-everything)
Arch. Shared-nothing