PostgreSQL DBA Guide - Full Production Information
1. PostgreSQL Basics
- Introduction to PostgreSQL Architecture
- Installation and Configuration (OS-level + initdb)
- PostgreSQL Data Directory Structure (base/, pg_wal/, global/, etc.)
- Client Tools: psql, pgAdmin, DBeaver
- Creating and Managing Databases and Users
2. Access and Authentication
- pg_hba.conf and postgresql.conf settings
- Authentication Methods: MD5, SCRAM, Trust, Peer, GSSAPI
- Roles and Privileges: GRANT, REVOKE, role attributes
- Role Inheritance, Superusers, and security hardening
- Application-level security best practices (least privilege, app roles)
3. Performance Tuning
- Query Analysis with EXPLAIN and EXPLAIN ANALYZE
- Optimization Techniques: CTEs, joins, temp tables
- Indexing: B-Tree, GIN, GiST, BRIN, covering indexes
- Vacuum Tuning: autovacuum, freeze, cost_delay, threshold
- Monitoring: pg_stat_statements, pg_stat_activity, auto_explain
- Planner Cost Parameters: random_page_cost, effective_cache_size, work_mem
4. Backup & Recovery
- Logical Backups: pg_dump, pg_restore (per-table, schema-only, globals)
- Physical Backups: pg_basebackup for full binary backup
- PITR: Restore with recovery.conf or standby.signal + timeline
- WAL Archiving: archive_mode, archive_command, restore_command
- Tools: Barman, pgBackRest (retention, incremental, compression, encryption)
- Disaster Recovery: testing restores, DR environments, RTO/RPO planning
5. Replication & High Availability
- Streaming Replication: sync/async setup, failover handling
- Logical Replication: pub/sub model, per-table replication
- Failover/Switchover: pg_ctl promote, pg_rewind usage
- Monitoring Lag: pg_stat_replication, replay_lsn
- Tools: repmgr, Patroni (HA + etcd), EDB Failover Manager
- Load Balancing: Pgpool-II read routing, HAProxy integration
6. Monitoring & Maintenance
- Routine Maintenance: vacuuming, analyzing, indexing
- Monitoring: pg_stat_activity, pg_stat_user_tables, pg_stat_statements
- AutoVacuum tuning and status monitoring
- Table Bloat & Disk Usage: pgstattuple, pg_total_relation_size
- Alerting: Prometheus + Grafana, pgwatch2, check_postgres
- Proactive Checks: deadlocks, locks, growth trends, index health