Administracja, replikacja i tuning baz danych PostgreSQL
Wymagania zaliczenia
- Instalacja i wstępna konfiguracja klastra PostgreSQL
- Host serwera PostgreSQL
- Instalacja binariów
- Tworzenie klastra
- Konfiguracja na potrzeby systemctl
- Uruchamianie, zatrzymywanie i automatyczne startowanie usługi PostgreSQL
- Uruchamianie i zatrzymywanie za pomocą pg_ctl
- Uruchamianie i zatrzymywanie klastra za pomocą systemctl, autostart usługi
- Sprawdzanie statusu usługi
- Przeładowywanie konfiguracji
- Logi serwera
- logging_collector
- log_directory
- log_destination
- log_filename
- log_rotation_age
- log_min_messages
- log_line_prefix
- Ustawianie głównego hasła
- Dostęp do klastra z sieci, konfiguracja portu nasłuchu i podłączenie pgadmin4
- Korzystanie z psql
- Parametry klastra
- Sprawdzanie parametrów klastra
- Sprawdzanie dostępnych poziomów konfiguracji parametrów
- Zmiana parametrów klastra
- Zmiana i sprawdzenie parametrów na poziomie sesji
- Zmiana i sprawdzenie parametrów konfigurowanych na poziomie bazy danych
- Zmiana i sprawdzanie parametrów konfigurowanych na poziomie użytkownika
- Zmiana i sprawdzanie parametrów konfigurowanych na poziomie użytkownika w konkretnej bazie danych
- Sprawdzanie indywidualnych ustawień dla bazy danych, użytkownika i użytkownika w bazie danych
- Resetowanie ustawień dla bazy danych, użytkownika i użytkownika w bazie danych do domyślnych wartości
- Zmiana i sprawdzanie parametrów konfigurowanych na poziomie klastra
- Ustawianie strefy czasowej dla systemu i logów
- Ustawianie strefy czasowej dla aktualnego czasu
- Ustawianie strefy czasowej dla logów
- Logi w formacie CSV i ładowanie logu do tabeli
- Logowanie nawiązywanych połączeń
- Struktura fizyczna i logiczna klastra PostgreSQL
- Struktura fizyczna - katalogi i pliki
- Bazy danych
- Sprawdzanie informacji o dostępnych bazach danych
- Sprawdzanie wielkości baz danych
- Sprawdzanie przestrzeni tabel w której mieści się baza danych
- Sprawdzanie kto jest właścicielem bazy danych
- Sprawdzanie parametrów ustawionych indywidualnie dla bazy
- Tworzenie bazy danych
- Zmiana właściciela bazy danych
- Konfiguracja indywidualnych parametrów bazy danych
- Przenoszenie bazy danych pomiędzy przestrzeniami tabel
- Zmiana nazwy bazy danych
- Kasowanie bazy danych
- Przestrzenie tabel
- Sprawdzanie położenia przestrzeni tabel
- Sprawdzanie jakie bazy mieszczą się w jakich przestrzeniach tabel
- Sprawdzanie kto jest właścicielem przestrzeni tabel
- Sprawdzanie ustawień indywidualnych przestrzeni tabel
- Tworzenie przestrzeni tabel
- Umieszczanie obiektów w przestrzeni tabel
- Parametr default_tablespace
- Kasowanie przestrzeni tabel
- Przemieszczanie obiektów pomiędzy przestrzeniami table
- Zmiana nazwy przestrzeni tabel
- Zmiana właściciela przestrzeni tabel
- Zmiana parametrów przestrzeni tabel
- Przestrzeń danych tymczasowych
- Tajemnice pg_relation_filepath()
- Schematy
- Informacje podstawowe i schematy domyślne
- Sprawdzanie obiektów znajdujących się w schemacie
- Tworzenie schematu
- Tworzenie obiektów w schemacie
- Dostęp do obiektów w schemacie
- Parametr search_path
- Przenoszenie obiektów między schematami
- Schematy a indeksy
- Zmiana właściciela schematu
- Schematy a uprawnienia
- Zmiana nazwy schematu
- Kasowanie schematu
- Użytkownicy i uprawnienia
- Użytkownicy
- Sprawdzanie informacji o użytkownikach (rolach)
- Tworzenie użytkownika (roli) i jego własności
- Zmiana własności użytkownika (roli)
- Kasowanie użytkownika (roli)
- Uprawnienia
- Dostępne uprawnienia
- Przykłady nadawania uprawnień
- Uprawnienia a schematy
- Sprawdzanie uprawnień
- Odbieranie uprawnień
- Role grupowe i zbiorcze zarządzanie uprawnieniami
- Tworzenie ról grupowych, przydzielanie uprawnień i nadawanie ról grupowych użytkownikom
- Odbieranie ról grupowym użytkownikom
- Sprawdzanie przydzielonych ról grupowych
- Usuwanie ról grupowych
- Rozłączanie sesji
- Użytkownicy
- Transakcje i blokady
- Transakcje
- Blokady
- Jawne blokowanie wierszy
- Wykrywanie blokad
- Rejestrowanie blokad w logach
- Automatyczne zrywanie sesji po określonym czasie bezczynności w transakcji
- VACUUM i wewnętrzne mechanizmy transakcyjności
- Wewnętrzne mechanizmy transakcyjności
- Zwykły VACUUM
- Zmniejszanie plików danych - VACUUM FULL
- Automatyczny VACUUM - autovacuum
- Automatyczny vacuum a odświeżanie statystyk
- Indywidualne ustawianie parametrów autovacuum dla obiektów
- Monitorowanie działania VACUUM I AUTOVACUUM
- VACUUM a wydajność
- Checkpointy i pliki WAL
- W jaki sposób PostgreSQL zapisuje dane? Czym są pliki WAL i checkpoint?
- Kiedy następuje checkpoint?
- Parametry związane z checkpointem i plikami WAL
- max_wal_size
- checkpoint_timeout
- checkpoint_completion_target
- log_checkpoints i monitorowanie checkpointów
- Szacowanie potrzebnego "max_wal_size" na podstawie "checkpoint_timeout" i danych statystycznych
- Kopie zapasowe i awaryjne odtwarzanie klastra
- Backup logiczny za pomocą pg_dump i pg_dumpall oraz odtwarzanie
- Zimny backup na poziomie fizycznym i jego odtwarzanie
- Archiwizacja ciągła, gorące kopie zapasowe i ich odtwarzanie
- Włączanie archiwizacji ciągłej
- Wykonanie lokalnej kopii zapasowej za pomocą pg_basebackup
- Wykonanie zdalnej kopii zapasowej za pomocą pg_basebackup
- Użyteczne przełączniki pg_basebackup
- Czyszczenie niepotrzebnych zarchiwizowanych plików WAL
- Weryfikacja spójności kopii zapasowej
- Odtwarzanie klastra na podstawie kopii fizycznej i zarchiwizowanych plików WAL
- Odtwarzanie do punktu w czasie
- Odtwarzanie klastra a przestrzenie tabel w innych niż PGDATA lokalizacjach
- Upgrade klastra
- Weryfikacja możliwości wykonania upgrade
- Upgrade klastra z użyciem linkowania plików
- Upgrade klastra z użyciem kopiowania plików
- Replikacja fizyczna strumieniowa master-slave
- Rodzaje replikacji
- Czynności po stronie serwera master
- Duplikacja klastra
- Czynności po stronie serwera slave
- Monitoring replikacji
- Replikacja asynchroniczna
- Replikacja synchroniczna
- Tuning
- Parametr shared_buffers
- Parametr work_mem
- Odnajdywanie problematycznych zapytań
- Wychwytywanie tworzenia plików tymczasowych - log_temp_files
- Wykrywanie zapytań trwających dłużej niż X - log_min_duration_statement
- Rozszerzenie pg_stat_statements i wykrywanie problematycznych zapytań
- Analiza planów wykonania
- Polecenie explain plan
- Metody dostępu do danych
- Dane statystyczne w planach wykonania
- Skan sekwencyjny a dostęp poprzez indeks
- Skan równoległy
- Sortowanie i implikacje sortowania
- Inne elementy pojawiające się w planach
- Partycjonowanie tabel
- Zasada działania partycjonowania
- Partycjonowanie a klucz główny i indeksy
- Partycjonowanie zakresowe
- Partycjonowanie po wartości
- Partycjonowanie hash'owe
- Subpartycje
- Indeksy
- Zasada działania
- Indeksy jedno i wielokolumnowe
- Indeksy funkcyjne
- Indeksy unikalne
- Indeksy częściowe
- Klauzula concurrently
- Indeksy a DML
- Widoki zmaterializowane
- Zastosowanie widoków zmaterializowanych
- Tworzenie widoków zmaterializowanych
- Odświeżanie widoków zmaterializowanych
- Tabele nielogowane
- Tworzenie tabel logowanych i nielogowanych
- Tabele nielogowane a utrata danych i replikacja
- Przydatne słowniki
- pg_stat_all_tables
- pg_stat_user_tables
- pg_stat_sys_tables
- pg_statio_user_tables
- pg_statio_user_indexes
- pg_stat_database
- resetowanie słowników
- PgBench
- Inicjalizacja bazy testowej
- Uruchamianie testów na określony czas
- Testy wielosesyjne i wielowątkowe
- Testy DML+SELECT/SELECT
- Testy z użyciem własnych skryptów
Ostatnia modyfikacja: niedziela, 10 listopada 2024, 01:07