bazy danych - ciągłość działania, spójność danych...
TRANSCRIPT
![Page 1: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/1.jpg)
Bazy danych - ciągłość działania, spójność danych i disaster recovery
Daniel Polek-PawlakJarosław Zdebik
![Page 2: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/2.jpg)
![Page 3: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/3.jpg)
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ć.
![Page 4: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/4.jpg)
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
-
![Page 5: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/5.jpg)
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
![Page 6: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/6.jpg)
Ś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)
![Page 7: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/7.jpg)
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ł
![Page 8: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/8.jpg)
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.
![Page 9: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/9.jpg)
ArchitekturaBaz
![Page 10: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/10.jpg)
Skala Ruchu
45000 queries/sec
600000 rows/sec
Ilość danych w jednej bazie niejednokrotnie przekracza 1000 GB
Przykład dla jednej wybranej bazy
![Page 11: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/11.jpg)
Bezpieczeństwo Danych (Replikacja)● chroni przed awariami sprzętu nie błędami ludzkimi● monitorowanie opóźnień replikacji ● ruch modyfikujący trafia do mastera
![Page 12: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/12.jpg)
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
![Page 13: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/13.jpg)
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
![Page 14: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/14.jpg)
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
![Page 15: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/15.jpg)
Ś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ń
![Page 16: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/16.jpg)
Wydajność i Bezpieczeństwo Danych
● Proxy dla baz - proxy chroniące bazy● Hermes - konsystencja danych pomiędzy bazami● Baza centralna - monitoring wszystkich zmian
![Page 17: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/17.jpg)
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
![Page 18: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/18.jpg)
HERMES
A. JavaB. Równoległe przetwarzanie
komunikatówC. Przenosi dane między bazami
![Page 19: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/19.jpg)
HERMES
![Page 20: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/20.jpg)
Baza Centralna
Monitoruje zmiany na bazach, stan bazy i replikacji
Bazę centralną dodatkowo sprawdza niezależny system monitoringu
![Page 21: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/21.jpg)
Jak nad tym wszystkim zapanować
● Rozproszone środowiska● Automatyzacja ● Wirtualizacja● Autorskie narzędzia / skrypty automatyzujące ● Standaryzacja (Sprzęt, Os, Software)
![Page 22: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/22.jpg)
Jak nad tym wszystkim zapanować
![Page 23: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c7888b809d3f200208b7478/html5/thumbnails/23.jpg)
DZIĘKUJEMY ZA UWAGĘ