Administrowanie PostgreSQL i tuning wydajnosći PostgreSQL

Poziom:

Średniozaawansowany

Data:

Na żądanie

Trwanie:

5 dni

Daty

Buenos Aires (Argentyna):

11.05. – 15.05. 2020

07.09. – 11.09.2020

 

Wiener Neustadt (Austria):

30.03. – 03.04.2020

 

Na życzenie szkolenia i warsztaty PostgreSQL mogą być również organizowane w Twojej lokalizacji – w dowolnym miejscu na świecie. Skontaktuj się z nami >>

Publiczność

Oprócz podstawowych zadań administracyjnych, zajmujemy się także strojeniem wydajności, monitorowaniem, replikacją i innymi ważnymi tematami w PostgreSQL.

Ten kurs jest szczególnie odpowiedni dla administratorów baz danych (Linux / Windows / Solaris / Mac OS X) i sysadminów. Zajmiemy się zagadnieniami, związanymi z administrowaniem i tuningiem wydajności.

Treść szkolenia

DZIEŃ 1:

Instalacja PostgreSQL

  • Instalacja PostgreSQL w systemie Windows (jeśli wymagana)
  • Instalacja PostgreSQL w systemie Linux
  • Uruchamianie PostgreSQL jako kontenera (Docker)
  • Tworzenie instancji bazy danych
  • Tworzenie i usuwanie baz danych
  • Kodowanie i zestawy znaków
  • Dostosowywanie parametrów jądra

 

Architektura PostgreSQL

  • Przegląd PostgreSQL
  • Poczmistrz i jego procesy potomne
  • Połączenia backendu
  • Korzystanie z pamięci współdzielonej
  • Kolektor statystyk
  • Podprocesy punktów kontrolnych

 

Indeksowanie i wydajność PostgreSQL

  • Rodzaje indeksów PostgreSQL
  • Rozumienie optymalizatora PostgreSQL
  • EXPLAIN i EXPLAIN ANALYZE
  • Czytanie planów wykonania
  • Wykrywanie powolnych zapytań
  • Znachodzenie brakujących indeksów
  • Wyszukiwanie pełnotekstowe
  • Indeksowanie GIS i wyszukiwanie geoprzestrzenne

 

DZIEŃ 2:

Transakcje i blokowanie

  • Model transakcyjny PostgreSQL
  • Rozumienie MVCC (MultiVersion Concurrency Control)
  • FOR UPDATE vs. FOR SHARE vs. LOCK TABLE
  • Zarządzanie integralnością transakcyjną
  • Korzystanie z blokad doradczych
  • Rozumienie blokad systemu
  • Wykorzystanie poziomów izolacji transakcji
  • Wykrywanie problemów z blokowaniem

 

Zarządzanie pamięcią masową

  • Korzystanie z obszarów tabel
  • VACUUM i VACUUM FULL
  • Rozumienie pg_squeeze
  • Zapobieganie wzdęciom tabel
  • Poprawa wydajności UPDATE
  • HOT-UPDATE i FILLFACTOR
  • Partycjonowanie PostgreSQL

 

Aktualizacja PostgreSQL

  • pg_upgrade w pracy

 

DZIEŃ 3:

WAL: Dziennik transakcji PostgreSQL

  • Jak PostgreSQL zapisuje dane na dysk
  • Poprawa wydajności punktu kontrolnego (postgresql.conf)
  • Przyspieszenie ładunków masowych
  • Asynchroniczny COMMIT
  • Niezalogowane tabele

Zarządzanie pamięcią

  • Dostosowywanie shared_buffers
  • Ulepszanie work_mem and maintenance_work_mem
  • Zrozumienie dodatkowych parametrów pamięci

Replikacja PostgreSQL

  • Konfigurowanie replikacji strumieniowej
  • Replikacja synchroniczna vs. asynchroniczna
  • Zautomatyzowane przełączanie awaryjne (Patroni)
  • Usługa zarządzania IPs
  • Obsługa konfliktów replikacji
  • Używanie pg_rewind ręcznie
  • Replikacja logiczna

Kopie zapasowe bazy danych

  • Wykorzystanie pg_dump i pg_restore
  • Binarne kopie zapasowe (pg_basebackups)
  • Point-In-Time-Recovery (PITR)
  • Narzędzia do tworzenia kopii zapasowych (pgbackrest)

 

DZIEŃ 4:

Bezpieczeństwo PostgreSQL

  • Gniazda TCP a UNIX
  • Zarządzanie pg_hba.conf
  • Centralne uwierzytelnianie
  • Szyfrowane połączenia z bazą danych
  • Tworzenie użytkowników / ról
  • Uprawnienia dostępu (GRANT / REVOKE)
  • Definiowanie domyślnych uprawnień
  • PostgreSQL na szyfrowanie dysku
  • Row Level Security (RLS)
  • Bariera bezpieczeństwa, funkcje szczelne itp

 

Monitorowanie i rejestrowanie PostgreSQL

  • Zarządzanie plikami rejestra
  • Obsługa rotacji rejestrów
  • Rozumienie tabel systemowych PostgreSQL
  • Korzystanie z pg_stat_statements
  • Sprawdzenie najważniejszych części wydajności
  • Sprawdzanie wydajności procedury składowanej
  • Korzystanie z monitorowania pgwatch2

 

DZIEŃ 5:

Równoległe zapytania

  • Konfigurowanie równoległych zapytań
  • Jak optymalizator radzi sobie z równoległością
  • Uwagi dotyczące wydajności

 

Kod po stronie serwera

  • Optymalizacja procedur PL / pgSQL
  • Znajdowanie wąskich gardeł w kodzie po stronie serwera
  • Procedury monitorowania
  • Wdrażanie rozszerzeń PostgreSQL

Foreign Data Wrappers

  • Dostęp do danych zdalnych
  • Łączenie z Oracle
  • Łączenie z PostgreSQL
  • Migracja danych do PostgreSQL
  • Implikacje dla optymalizatora