The intent of this guide is to give you an idea about the DBA landscape and to help guide your learning if you are confused. The roadmap is highly opinionated — neither, knowing everything listed in the roadmap, nor the order of items given in the roadmap is required to be followed in order to be a DBA.
Learn basic RDBMS terms and conceptsGet basic understanding of Postgres key terms and basic RDBMS concepts.
Object model : data types, columns, rows, tables, schemas, databases, queries.Relational model : domains, attributes, tuples, relations, constraints, NULL.Databases high-level concepts : ACID, MVCC, transactions, write-ahead log, query processing.Links :Postgres Glossary SQL and Relational Theory - Christopher J. Date, 2009 Database Design and Relational Theory - Christopher J. Date, 2012 Learn how to install and run PostgreSQLGet practical skills of how to set up and run Postgres to get a working environment for further learning.
Using package managers (APT, YUM, etc.) Using docker. Managing Postgres service using systemd (start, stop, restart, reload). Managing Postgres service using pg_ctl, or OS-specific tools (like pg_ctlcluster). Connect to Postgres using psql. Deploy database service in cloud environment (AWS, GCE, Azure, Heroku, DigitalOcean, etc...). Links : Learn SQL conceptsGet practical skills of how to create and manipulate database objects and how to execute queries using psql client.
Understand basic data types. DML queries : querying data, modifying data, filtering data, joining tables.Advanced topics : transactions, CTE, subqueries, lateral join, grouping, set operations.DDL queries : managing tables and schemas (create, alter, drop).Import and export data using COPY. Links : Learn how to configure PostgresGet understanding of the main aspects of how Postgres could be configured. Deep understanding of Postgres internals is not yet necessary here.
postgresql.conf:Resources usage Write-ahead Log Checkpoints and Background Writer Cost-based vacuum and auto-vacuum Replication Query planner Reporting, logging and statistics Adding extra extensions ...keep exploring other configuration options Links : Learn Postgres security conceptsGet understanding about basic security concepts and common ways of how to deploy secure configurations.
Authentication models, roles, pg_hba.conf, SSL settings. Objects privileges : grant/revoke, default privileges.Advanced topics - row-level security, selinux.Links : Develop infrastructure DBA skillsGet practical skills of how to deploy, extend, maintain and support Postgres installations and 3rd-party Postgres ecosystem software.
Replication : streaming replication, logical replicationBackup/recovery tools :Built-in: pg_dump, pg_dumpall, pg_restore, pg_basebackup 3rd-party: barman, pgbackrest, pg_probackup, WAL-G Backup validation procedures Upgrading procedures Minor and major upgrades using pg_upgrade Upgrades using logical replication Connection pooling :PgbouncerAlternatives: Pgpool-II, Odyssey, Pgagroal Infrastructure monitoring : Prometheus, Zabbix, other favourite monitoring solutionHigh availability and cluster management tools :PatroniAlternatives : Repmgr, Stolon, pg_auto_failover, PAFApplications Load Balancing and Service Discovery : Haproxy, Keepalived, Consul, EtcdDeploy Postgres on Kubernetes : Simple StatefulSet setup, HELM, operatorsResource usage and provisioning, capacity planning Learn how to automate routinesGet practical skills, learn automation tools and automate existing routine tasks.
Automation using shell scripts or any other favourite language (Bash, Python, Perl, etc) Configuration management: Ansible, Salt, Chef, Puppet Develop application DBA skillsLearn theory and get practical skills of how applications should work with Postgres
Migrations :practical patterns and antipatterns tools: liquibase, sqitch, language-specific tools Data import/export, bulk loading and processing Queues :practical patterns and anti-patterns Skytools PGQData partitioning and sharding patterns. Database normalization and normal forms. Books:The Art of PostgreSQL - Dimitri Fontaine, 2020 Learn Postgres advanced topicsHere is important to continuously extend and develop existing knowledge about Postgres.
Low level internals :Fine-grained tuning :Per-user, per-database settings Storage parameters Workload-dependant tuning: OLTP, OLAP, HTAP Advanced SQL topics :PL/pgSQL, procedures and functions, triggers Aggregate and window functions Recursive CTE Links : Learn Postgres troubleshooting techniquesGet basic understanding about troubleshooting tools and get practical skills of how to detect and resolve problems.
Operating system tools top (htop, atop)sysstatiotopPostgres system views pg_stat_activitypg_stat_statementsPostgres tools pgcenter - personal recommendation Query analyzing :EXPLAIN Depesz online EXPLAIN visualization toolPEV online EXPLAIN visualization toolTensor online EXPLAIN visualization tool, RU language onlyLog analyzing :pgBadgerAd-hoc analyzing using grep, awk, sed, etc. External tracing/profiling tools : gdb, strace, perf-tools, ebpf, core dumpsTroubleshooting methods : USE, RED, Golden signalsLinks : Learn SQL optimization technicsGet understanding and practical skills of how to optimize SQL queries.
Indexes, and their use cases : B-tree, Hash, GiST, SP-GiST, GIN, BRINSQL queries patterns and anti-patterns SQL schema design patterns and anti-patterns Links :Books :SQL Antipatterns: Avoiding the Pitfalls of Database Programming - Bill Karwin, 2010 Develop architect skillsGet deeper understanding of Postgres use cases and where Postgres is suitable and where is not.
Postgres forks and extensions : Greenplum, Timescaledb, Citus, Postgres-XL, etc.RDBMS in general, benefits and limitations Differences between Postgres and other RDBMS and NoSQL databases Develop Postgres hacker skillsGet involved to Postgres community and contribute to Postgres; be a useful member of Postgres, and the open source community; use personal experience to help other people.
Daily reading and answering in mailing lists pgsql-general pgsql-admin pgsql-performance pgsql-hackers pgsql-bugs Reviewing patches Writing patches, attending in Commitfests