Kompleksowe szkolenie z administracja PostgreSQL przygotowuje administratorów baz danych do sprawnego zarządzania dużymi bazami danych i związanym z nimi wymaganiami bezpieczeństwa. Uczestnik szkolenia zostanie wprowadzony w zaawansowane zagadnienia związane z zarządzaniem bazą danych PostgreSQL. Po wprowadzeniu polegającym na przypomnieniu i usystematyzowaniu informacji dotyczących architektury systemu, Uczestnicy przejdą do zaawansowanego tuningu bazy danych oraz SQL’a. Po opanowaniu tych umiejętności Kursanci zapoznają się z koncepcją replikacji. Następnie, zgodnie z programem, przedstawione zostaną narzedzi PostgreSQL takie jak: BART, BARMAN, PGBACKREST, PGBADGER. Na zaawansowanym szkoleniu nie może zabrakać również przepracowania puli połączeń oraz kwestii związanych z bezpieczeństwem. Szczegółowe informacje znajdziesz w Programie szkolenia.
1. Wprowadzenie
- Wprowadzenie do systemu zarządzania relacyjnymi bazami danych
- - W ramach wprowadzenia do zagadnień omawianych w trakcie szkolenia w tym punkcie przypominamy teoretyczne podstawy rozwiazań RDBMS
- Paradygmat ACID
- - Kolejno podjętym zagadnieniem jest paradygmat ACID (atomicity, consistency, isolation, durability) i jego praktyczna implementacja w PostgreSQL
- Wprowadzenie do SQL
- - Administrator PostgreSQL w codziennej pracy wcześnień czy później zetknie się z językiem SQL. W tym punkcie przypominamy podstawowe pojęcia i konstrukcje tego języka
- Krótko o historii i przyszłości PostgreSQL
- - Omówienie historii jak i perspektyw rozwojowych PostgreSQL
- Powody dla których PostgreSQL jest uważany za najbardziej poszukiwaną bazę danych
- - Zalety PostgreSQL powodujące, iż z biegiem czasu akurat to rozwiązanie stało się najchętniej stosowaną open-source'ową technologią RDBPS w profesjonalnych zastosowaniach na rynku oprogramowania dla przedsiębiorstw
- Przegląd architektury bazy danych PostgreSQL
- - Wprowadzenie do architektury PostgreSQL
- Ograniczenia bazy danych
- - Ograniczenia zastosowań PostgreSQL na przykładach
-
2. Instalacja serwera PostgreSQL
- Pre-rekwizyty i wymagania dla użytkowników systemowych
- - Omówienie pre-rekwizytów niezbędnych do przeprowadzenia poprawnej instalacji serwera jak również wymagań dla użytkowników systemowych
- Jakie są dostępne opcje instalacji
- - Przedstawienie dostępnych obecnie opcji instalacji PostgreSQL wraz ze wskazaniem ich zalet i wad
- Instalacja PostgreSQL
- - Proces instalacji PostgreSQL na przykładzie
- Konfiguracja zmiennych środowiskowych
- - Konfiguracja minimalnego zestawu podstawowych zmiennych środowiskowych PostgreSQL
-
3. PostgreSQL - architektura systemu
- Architektura PostgreSQL
- - Ogólne omówienie architektury PostgreSQL. Bez dogłębnego zrozumienia architektury systemu nie ma mowy o świadomym zarządzaniu PostgreSQL w aspekcie konfiguracyjnym i wydajnościowym, stąd zagadnieniom architektonicznym poświęcamy znaczny fragment naszego Szkolenia
- Architektura fizyczna
- - Wprowadzenie do fizycznej architektury klastra PostgreSQL,
- Schemat folderów klastra
- - Rozszerzone omówienie struktury i organizacji katalogów danych oraz katalogu instalacyjnego
- Architektura Logiczna
- - Opis logicznej architektury PostgreSQL
- Architektura pamięci
- - Logiczna architektura PostgreSQL wiąże się nierozerwalnie z przyjętą w rozwiązaniu strukturą pamięci serwera. W tym punkcie omawiamy architekturę rozwiązania pod tym właśnie kątem
- Architektura procesu
- - Logiczna architektura systemu znajduje odzwierciedlenie w organizacji i funkcjonowaniu procesów serwera, co szczegółowo omawiamy w bieżącym punkcie Szkolenia
- Obsługa sesji użytkownika w PostgreSQL
- - W nawiązaniu do architektury procesowej poruszamy temat nawiązywania połączenia i dalszej obsługi sesji użytkownika zdalnego w PostgreSQL
-
4. Klaster bazy danych
- Czym jest klaster
- - Nawiązanie do przestawionych w poprzednim bloku koncepcji architektonicznych
- Tworzenie klastra bazy danych
- - Omówienie tworzenia nowego klastra
- Uruchamianie i zatrzymywanie serwera (pg_ctl)
- - Podstawowe operacje administracyjne z użyciem narzędzia pg_ctl
- Wprowadzenie do psql
- - Omówienie podstaw korzystania z psql, poczynając od łączenie się z serwerem przy użyciu psql aż po podstawowe polecenia i skróty dostępne w tym narzędziu
- Wprowadzenie do pgAdmin
- - Omówienie podstawowych cech i zastosowań PgAdmin
-
5. Architektura warstwy przechowywania danych - uzupełnienie
- Architektura składowania danych w PostgreSQL
- - Uzupełniające informacje architektoniczne odnoszące się do warstwy składowania danych
- Struktura strony w PostgreSQL
- - W tym punkcie omawiamy logiczną strukturę tabel i indeksów w PostgreSQL, co umożliwi nam w dalszej części szkolenia zrozumienie niskopoziomowych mechanizmów obsługi danych
- Model MVVC
- - Opis wykorzystywanego w PostgreSQL modelu transakcyjnego MVVC i jego powiązanie z architekturą składowania danych
- Architektura mechanizmu WAL
- - Omówienie mechanizmu zapisu logów z wyprzedzeniem wraz ze wskazaniem jego relacji z opisywanymi wyżej elementami architektury
- Zawartość katalogu podstawowego w tym _vm,_fsm i Toast Table
- - Uzupełniające informacje na temat fizycznej organizacji plików danych i plików pomocniczych
-
6. Konfiguracja
- Konfiguracja postgresql.conf & pg_hba.conf
- - Omówienie struktury i zawartości plików konfiguracyjnych PostgresSQL
- Znaczenie ważnych parametrów PostgreSQL
- - Wybrane, istotne parametry konfiguracyjne
- Zarządzanie log'ami
- - Dyskusja na temat podsystemu rejestracji zdarzeń PostgreSQL oraz jego konfiguracji wraz z przykładami przypadków użycia
-
7. Tworzenie i zarządzanie bazami danych
- Tworzenie baz danych
- - Definiowanie i podstawowe operacje administracyjne związane z tworzeniem baz danych
- Zarządzanie Użytkownikami i Grupami
- - Omówienie koncepcji Ról w PostgreSQL wraz z przedstawieniem podstawowych zagadnień związanych z zarządzeniem Użytkownikami i Grupami
- Schematy w PostgreSQL
- - Przedstawienie koncepcji schematu w PostgreSQL wraz z prezentacją podstawowych operacji administracyjnych możliwych do wykonania na schemacie
- Ścieżka wyszukiwania schematu
- - Koncepcja ścieżki wyszukiwania schematu oraz możliwości jej modyfikacji
-
8. Backup oraz Recovery & Point-in Time Recovery
- Planowanie
- - Omówienie przypadków użycia związanych z kopiami zapasowymi jako wprowadzenie do zasad planowania polityki Backup/Restore
- SQL Dump Backups - Logiczne kopie zapasowe
- - Logiczne kopie zapasowe i ich rodzaje w PostgreSQL
- Przywracanie SQL Dumps
- - Przywracanie logicznych kopii zapasowych
- Fizyczne backupy online i Archiwizacja Ciągła
- - Zagadnienia on-line backup'ów i archiwizacji ciągłej w PostgreSQL
- Koncepcje Point-In Time Recovery
- - Omówienie pojęcia Point-In Time Recovery wraz z przykładami
-
9. Utrzymanie / Maintenance
- Utrzymanie bazy danych
- - Podstawowe, codzienne czynności administracyjne w PostgreSQL
- Maintenance Tools
- - Omówienie natywnych dla PostgreSQL narzędzi wspierających administrację
- Statystyki Optymalizatora
- - Zagadnienia optymalizacji zapytań w kontekście utrzymywania aktualnych Statystyk Optymalizatora
- Fragmentacja danych
- - Zagadnienia fragmentacji danych w modelu MVVC
- Vacuuming
- - Omówienie zagadnień związanych z automatycznym i ręcznym odśmiecaniem
- Zjawisko Transaction ID Wraparound
- - Opis i rozwiązania dla zjawiska "zwijania identyfikatorów krotek" dla dużych, wysoko-transakcyjnych baz danych
- Vacuum Freeze
- - Omówienie pojęcia Vacuum Freeze i jego związek z Transaction ID Wraparound
- Monitoring bazy danych
- - Dyskusja na temat podstaw codziennego monitoringu w PostgreSQL wraz ze wskazaniami co i dlaczego warto monitorować w bieżącym trybie utrzymaniowym
-
10. Katalog danych
- Schemat katalogu systemu
- - Ogólne informacje na temat katalogu danych i tego, czym jest i jaką rolę pełni w PostgreSQL
- Tabele systemowe
- - Omówienie najistotniejszych tabel systemowych
-
11. Przenoszenie i migracja danych
- Ładowanie plików płaskich
- - Zagadnienia związane z ładowaniem danych z plików płaskich i eksportem do takich plików
- Import i export danych przy użyciu COPY
- - Oparta na przykładach dyskusja na temat importu i eksportu danych przy użyciu instrukcji COPY
- Przykłady użycia komendy COPY
- - Dodatkowe przypadki użycia polecenia COPY
-
12. Dobre praktyki podczas upgrade'u
- Zmiana wersji i upgrade
- - Omówienie zagadnień związanych z upgrade PostgreSQL
- Kiedy należy zrobić upgrade
- - Zalecenia odnośnie wykonywania upgrade pomiędzy wersjami
- Plan upgrade'u
- - Przygotowywanie planów upgrade wraz z dobrymi praktykami w tym zakresie
- Upgrade przy użyciu pg_upgrade
- - Przykładowa procedura upgrade przy użyciu pg_upgrade
- Najlepsze praktyki podczas upgrade'u
- - Dodatkowe wskazówki z zakresu przygotowania i realizacji upgrade
-
13. Monitoring bazy danych
- Systematyczność kluczem do sukcesu
- - Zagadnienia monitoringu bazy danych w kontekście systematyczności prac administracyjnych
- pgbadger
- - Zastosowanie narzędzia pgbagder do analizy logów PostgreSQL
- pgbench
- - Wykorzystanie narzędzia pgbench do gromadzenia statystyk jak również symulowania obciążenia bazy danych przy debugowaniu problemów
14. Zaawansowany tuning bazy danych
- Dostrajanie wydajności – przegląd
-- Monitorowanie wydajności za pomocą PEM
- Technika A-Tuning
- Sprzęt i System operacyjny
- Dostrajanie parametrów serwera
- Połączenia klienckie
- Zużycie zasobów
- Dostrajanie parametrów WAL
- Optymalizacja parametrów zapytań
- Raportowanie i logowanie
- Dostrajanie Autovacuum
-
15. Tuning SQL
Procesowanie zapytań
-- Plan wykonywania zapytań
-- Statystyki i zachowanie Optymalizatora
-- Restrukturyzacja instrukcji SQL
Generowanie planów zapytań
- - Generowanie planów zapytań za pomocą EXPLAIN
- - Analiza planów z wykorzystaniem EXPLAIN ANALYZE
Typowe problemy z wydajnością zapytań
Kolejne kroki w tuningu SQL
-- Identyfikacja zbyt wolnych zapytań
Rola indeksów w optymalizacji planów zapytań
- Rola indeksów w przyspieszaniu zapytań
- Przegląd rodzajów indeksów
- Optymalizacja indeksów
- Indeksy złożone
- Wyszukiwanie przybliżone
- Kiedy nie korzystać z indeksu?
-
16. Replikacja w PostgreSQL
Koncepcja replikacji
- Dlaczego w wypadku baz równoważenie obciążeń jest trudne?
- Przegląd dostępnych rozwiazań
Replikacja danych w PostgreSQL
- Kopia fizyczna a Replikacja
- Fizyczna kopia zapasowa bazy danych - przypomnienie
- Opcje Replikacji w PostgreSQL
Log-Shipping
- Architektura Log-Shipping
- Konfiguracja replikacji przy użyciu archiwum
- Przygotowanie serwera głównego
- Konfiguracja autentykacji
- Wykonanie pełnej kopii zapasowej serwera głównego
- Konfiguracja Standby Server
Hot Streaming
- Architektura Hot Streaming
- Konfiguracja replikacji strumieniowej
- Przygotowanie serwera głównego
- Konfiguracja synchronicznej replikacji strumieniowej
- Konfiguracja autentykacji
- Konfiguracja Standby Server
- Wykonanie pełnej kopii zapasowej serwera głównego
- Monitoring Hot Standby
- Replikacja synchroniczna
- Funkcje Recovery Control
Replikacja logiczna
- Architektura Replikacji logicznej
- Konfiguracja replikacji licznej
REPMGR
17. Narzędzia PostgreSQL
BART(konfiguracja oraz testy)
BARMAN (konfiguracja oraz testy)
PGBACKREST
PGBADGER