bazy danych - ciągłość działania, spójność danych...

Post on 01-Mar-2019

223 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Bazy danych - ciągłość działania, spójność danych i disaster recovery

Daniel Polek-PawlakJarosław Zdebik

Plan Prezentacji

● Wprowadzenie - podstawy.● Co oznacza utrata danych dla niedużego sklepu. ● Czy dostępność danych i baz danych to to samo.● Jak zagwarantować dostępność danych dla dla portalu z ponad

miliardem odsłon miesięcznie. ● Jak nad tym wszystkim panować.

Wprowadzenie - Backup na poziomie FSBackup na poziomie file systemu:

- Cyklicznie wykonywany jest backup

- Całkowity / Przyrostowy

- Backup wysyłany jest na inny serwer / do chmury

- Baza danych to ciągle modyfikowany plik (kilka

plików + pamięć)

- Nie jesteśmy w stanie zagwarantować konsystencji

danych odtworzonych z backupu

-

- Zatrzymanie maszyny :(

- Dump bazy :)

- Dump bazy obciąża bazę - wpływa na wydajność

- Synchronizacja Backupu bazy i FS

-

Wirtualizacja - rozwiązuje wszystkie problemy?Backup na poziomie maszyny wirtualnej:

- Robimy snapshot całej maszyny

- Cyklicznie

- Wysyłany na zdalny serwer / do chmury

- Zakładamy, że mamy zrobione to dobrze ;)

- HV wysyła instrukcje do OS VS

- FS Freeze / chwilowe zatrzymanie maszyny

- Baza danych jest konsystentna *

- Użytkownicy mogą być wylogowani. (AWS)

- Snapshot jest stosunkowo duży

- Możemy “przemycić” błędy na file systemie

Średni sklep - sprzedaż

Koszyk (avg v) = 160 zł

L. zamówien = 30

Dzienny obrót = 4 800 ZŁ

Marża = 960 zł

20 - 22B

RPO - Punkt w czasie do którego mamy przywrócić dane (ile danych stracimy)

RTO - Czas w jakim mamy przywrócić dane (Ile czasu zajmie nam przywrócenie danych)

Czas kopiowania danych z backupu a RTO

Koszyk (avg v) = 160 zł

L. zamówien = 30

Dzienny obrót = 4 800 ZŁ

Marża = 960 zł

GB 1 Gbps 100 mbps minimalne straty

5 40 sekund 7 minut ~

50 7 minut 1 godzina 10 minut 200 zł

100 14 minut 2 godziny 20 minut 400 zł

200 28 minut 4 godziny 40 minut 1 000 zł

500 1 godzina 7 minut 11 godzin 7 minut 2 200 zł

Co oznacza dostępność danych dla portalu

A. MySQL (400)B. PostgreSQL (100)C. Oracle (11)D. NoSQL (100): redis, mongoDB, Couchbase E. BigData (1,7 PT HDD, 2064 CPU Cores, 9 TB RAM)

Środowisko rośnie ...

Odporność na awarie, Odporność na błędy ludzkie, Dostępność (wydajność), Odporność na Ataki, Spójność danych - pomiędzy bazami.

ArchitekturaBaz

Skala Ruchu

45000 queries/sec

600000 rows/sec

Ilość danych w jednej bazie niejednokrotnie przekracza 1000 GB

Przykład dla jednej wybranej bazy

Bezpieczeństwo Danych (Replikacja)● chroni przed awariami sprzętu nie błędami ludzkimi● monitorowanie opóźnień replikacji ● ruch modyfikujący trafia do mastera

Bezpieczeństwo Danych (Backup i Recovery)

● Backupy należy wykonywać dedykowanymi narzędziami (sprawdzanie błędów, konsystencja danych, backup online, kompresja)

● Backupy należy BEZWZGLĘDNIE testowo odtwarzać cyklicznie!● Codziennie wykonujemy pełny backup plus archivelogi (RPO)● Archivelogi wysyłane co 15 minut na zdalny serwer● Backupy wykonywane i na M (noc) i na S (12h później w dzień)● Jeden backup trzymany na lokalnym serwerze (M i S), dodatkowo wysyłany

na zdalne serwery● Polityka trzymania backupów

Bezpieczeństwo Danych (Backup i Recovery)

● Ustawienie wagi dla baz (SLA/OLA) - którą bazę odtwarzamy jako pierwszą w chwili awarii?

● Lvm snapshot na bazach z myisam (mylvmbackup)● Dbtool (backup, odtworzenie, przepięcie M-S) - wsparcie NOC

Monitoring (24 godziny na dobę)● Icinga - ponad 30 checków (długie transakcje, obciążenie, opóźnień replikacji

ale też: zmiany obiektów na bazie, zmiany konfiguracji, co urosło w bazie)● Statystyki - ponad 500 metryk (użycie indeksów, buforów, tabel

tymczasowych ...)● Baza centralna - monitoring innych baz● NOC

Środowiska Bazodanowe● Dev - do testów/zabawy, można psuć do woli (po to są)● Itg - integracja kodu wielu developerów● Staging - testy wydajnościowe● Pre-Prod/RC/ UAT - testy użytkowe, import danych produkcyjnych ● Prod - nie dotykamy, świadoma polityka wdrożeń

Wydajność i Bezpieczeństwo Danych

● Proxy dla baz - proxy chroniące bazy● Hermes - konsystencja danych pomiędzy bazami● Baza centralna - monitoring wszystkich zmian

DBPROXY (ochrona baz)

A. Pula połączeń do bazB. Cachowanie (mcrouter - pomocne w razie awarii)C. Agregacja zapytańD. Master/slave/shardingE. Security (sql injection trudne do wykonania), własny protokółF. Kto się może łączyćG. Transakcje globalneH. Wsparcie dla różnych baz MySQL, Oracle, PostgreSQL

HERMES

A. JavaB. Równoległe przetwarzanie

komunikatówC. Przenosi dane między bazami

HERMES

Baza Centralna

Monitoruje zmiany na bazach, stan bazy i replikacji

Bazę centralną dodatkowo sprawdza niezależny system monitoringu

Jak nad tym wszystkim zapanować

● Rozproszone środowiska● Automatyzacja ● Wirtualizacja● Autorskie narzędzia / skrypty automatyzujące ● Standaryzacja (Sprzęt, Os, Software)

Jak nad tym wszystkim zapanować

DZIĘKUJEMY ZA UWAGĘ

top related