- 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.
- Postgres Glossary
- SQL and Relational Theory - Christopher J. Date, 2009
- Database Design and Relational Theory - Christopher J. Date, 2012
- Using package managers (APT, YUM, etc.)
- Using docker.
- Using kubernetes operators
- 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...).
- 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. 1, 2
- postgresql.conf
- pg_hba.conf
- Resources usage 1,
- Performance Parameters
- Write-ahead Log
- Checkpoints and Background Writer
- Cost-based vacuum and auto-vacuum
- Replication
- Query planner
- Reporting, logging and statistics
Temel güvenlik kavramları ve güvenli yapılandırmaları kullanmanın yöntemleri
- Authentication models, roles, pg_hba.conf, SSL settings.
- Objects privileges: grant/revoke, default privileges.
- Advanced topics - row-level security, selinux.
Postgres kurulumlarının ve 3. taraf Postgres ekosistem yazılımının nasıl kullanılacağını öğrenin.
- 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
- Built-in:
- Upgrading procedures
- Minor and major upgrades using
pg_upgrade
- Upgrades using logical replication
- Minor and major upgrades using
- 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
: SimpleStatefulSet
setup,HELM
, operators - Resource usage and provisioning, capacity planning
Pratik beceriler edinin, otomasyon araçlarını öğrenin ve mevcut rutin görevleri otomatikleştirin.
- Automation using shell scripts or any other favourite language (
Bash
,Python
,Perl
, etc) - Configuration management:
Ansible
,Salt
,Chef
,Puppet
Uygulamaların Postgres ile nasıl çalışması gerektiğine dair teori öğrenin ve pratik beceriler edinin
- 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
- Data partitioning and sharding patterns.
- Database normalization and normal forms.
- The Art of PostgreSQL - Dimitri Fontaine, 2020
Postgres hakkında mevcut bilgileri sürekli olarak genişletmek ve geliştirmek burada önemlidir.
- Low level internals:
- Processes and memory architecture
- Vacuum processing
- Buffer management
- Lock management
- Physical storage and file layout
- System catalog
- 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
- The Internals of PostgreSQL for database administrators and system developers
- PL/pgSQL Guide
Sorun giderme araçları hakkında temel bilgiler edinin ve sorunların nasıl tespit edilip çözüleceğine ilişkin pratik beceriler edinin.
- Operating system tools
-
top
(htop
,atop
) -
sysstat
-
iotop
-
- Postgres system views
-
pg_stat_activity
-
pg_stat_statements
-
- Postgres tools
-
pgcenter
- personal recommendation
-
- Query analyzing:
- 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
- Linux Performance by Brendan Gregg
- USE Method
SQL sorgularının nasıl optimize edileceğine dair anlayış ve pratik beceriler edinin.
- 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:
- Use the Index, Luke - a Guide to Database Performance for Developers
- SQL Antipatterns: Avoiding the Pitfalls of Database Programming - Bill Karwin, 2010
Postgres kullanım durumlarını ve Postgres'in uygun olup olmadığını daha iyi anlayın.
- 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
Postgres topluluğuna katılın ve Postgres'e katkıda bulunun; Postgres'in ve açık kaynak topluluğunun faydalı bir üyesi olmak; diğer insanlara yardım etmek için kişisel deneyiminizi kullanın.
- Daily reading and answering in mailing lists
- pgsql-general
- pgsql-admin
- pgsql-performance
- pgsql-hackers
- pgsql-bugs
- Reviewing patches
- Writing patches, attending in Commitfests