Files
developer-roadmap/src/data/roadmaps/postgresql-dba/postgresql-dba.md
T

9.9 KiB

jsonUrl, pdfUrl, renderer, order, briefTitle, briefDescription, title, description, hasTopics, dimensions, seo, relatedRoadmaps, sitemap, tags
jsonUrl pdfUrl renderer order briefTitle briefDescription title description hasTopics dimensions seo relatedRoadmaps sitemap tags
/jsons/roadmaps/postgresql-dba.json /pdfs/roadmaps/postgresql-dba.pdf editor 5 PostgreSQL Step by step guide to become a PostgreSQL DBA in 2024 PostgreSQL DBA Step by step guide to becoming a modern PostgreSQL DB Administrator in 2024 true
width height
969 3675
title description keywords
DBA Roadmap: Learn to become a database administrator with PostgreSQL Community driven, articles, resources, guides, interview questions, quizzes for DevOps. Learn to become a modern DevOps engineer by following the steps, skills, resources and guides listed in this roadmap.
guide to becoming a database administrator
guide to becoming a DBA
dba roadmap
db administrator roadmap
database administrator roadmap
postgresql roadmap
dba skills
db administrator skills
become dba
postgresql skills
modern dba skills
dba skills test
skills for dba
skills for database administrator
learn dba
what is dba
database administrator quiz
dba interview questions
mongodb
backend
devops
priority changefreq
1 monthly
roadmap
main-sitemap
role-roadmap

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 concepts

Get 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 PostgreSQL

Get 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 concepts

Get 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 Postgres

Get 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 concepts

Get understanding about basic security concepts and common ways of how to deploy secure configurations.

Develop infrastructure DBA skills

Get practical skills of how to deploy, extend, maintain and support Postgres installations and 3rd-party Postgres ecosystem software.

  • Replication: streaming replication, logical replication
  • Backup/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:
    • Pgbouncer
    • Alternatives: Pgpool-II, Odyssey, Pgagroal
  • Infrastructure monitoring: Prometheus, Zabbix, other favourite monitoring solution
  • High availability and cluster management tools:
    • Patroni
    • Alternatives: Repmgr, Stolon, pg_auto_failover, PAF
  • Applications Load Balancing and Service Discovery: Haproxy, Keepalived, Consul, Etcd
  • Deploy Postgres on Kubernetes: Simple StatefulSet setup, HELM, operators
  • Resource usage and provisioning, capacity planning

Learn how to automate routines

Get 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 skills

Learn theory and get practical skills of how applications should work with Postgres

  • Migrations:
    • practical patterns and antipatterns
    • tools: liquibase, sqitch, Bytebase, language-specific tools
  • Data import/export, bulk loading and processing
  • Queues:
    • practical patterns and anti-patterns
    • Skytools PGQ
  • Data partitioning and sharding patterns.
  • Database normalization and normal forms.
  • Books:
    • The Art of PostgreSQL - Dimitri Fontaine, 2020

Learn Postgres advanced topics

Here is important to continuously extend and develop existing knowledge about Postgres.

Learn Postgres troubleshooting techniques

Get basic understanding about troubleshooting tools and get practical skills of how to detect and resolve problems.

  • Operating system tools
    • top (htop, atop)
    • sysstat
    • iotop
  • Postgres system views
    • pg_stat_activity
    • pg_stat_statements
  • Postgres tools
    • pgcenter - personal recommendation
  • Query analyzing:
    • EXPLAIN
    • Depesz online EXPLAIN visualization tool
    • PEV online EXPLAIN visualization tool
    • Tensor online EXPLAIN visualization tool, RU language only
  • Log analyzing:
    • pgBadger
    • Ad-hoc analyzing using grep, awk, sed, etc.
  • External tracing/profiling tools: gdb, strace, perf-tools, ebpf, core dumps
  • Troubleshooting methods: USE, RED, Golden signals
  • Links:

Learn SQL optimization techniques

Get understanding and practical skills of how to optimize SQL queries.

  • Indexes, and their use cases: B-tree, Hash, GiST, SP-GiST, GIN, BRIN
  • SQL 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 skills

Get deeper understanding of Postgres use cases and where Postgres is suitable and where is not.

  • Postgres forks and extensions: Greenplum, Timescaledb, Citus, Postgres-XL, PostGIS etc.
  • RDBMS in general, benefits and limitations
  • Differences between Postgres and other RDBMS and NoSQL databases

Develop Postgres hacker skills

Get 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