PostgreSQL Administration and Performance Tuning
Audience
This course is especially suitable for database administrators (Linux / Windows / Solaris / Mac OS X) and sysadmis. We will deal with administration and performance tuning related topics.
COURSE CONTENT
DAY 1:
Installing PostgreSQL
- Installing PostgreSQL on Windows (if required)
- Installing PostgreSQL on Linux
- Running PostgreSQL as container (Docker)
- Creating database instances
- Creating and dropping databases
- Encoding and character sets
- Adjusting kernel parameters
The PostgreSQL architecture
- Overview of PostgreSQL
- Postmaster and its child processes
- Backend connections
- Using shared memory
- Stats collector
- Checkpoint subprocesses
PostgreSQL indexing and performance
- Types of PostgreSQL indexes
- Understanding the PostgreSQL optimizer
- EXPLAIN and EXPLAIN ANALYZE
- Reading execution plans
- Detecting slow queries
- Find missing indexes
- Full text search
- GIS indexing and geospatial search
DAY 2:
Transactions and locking
- The PostgreSQL transactional model
- Understanding MVCC (MultiVersion Concurrency Control)
- FOR UPDATE vs. FOR SHARE vs. LOCK TABLE
- Managing transactional integrity
- Using advisory locks
- Understanding deadlocks
- Making use of transaction isolation levels
- Detecting locking problems
Storage management
- Using tablespaces
- VACUUM and VACUUM FULL
- Understanding pg_squeeze
- Preventing table bloat
- Improving UPDATE performance
- HOT-UPDATE and FILLFACTOR
- PostgreSQL partitioning
Upgrading PostgreSQL
- pg_upgrade at work
DAY 3:
WAL: The PostgreSQL transaction log
- How PostgreSQL writes data to disk
- Improving checkpoint performance (postgresql.conf)
- Speeding up bulk loads
- Asynchronous COMMIT
- Unlogged tables
Memory management
- Adjusting shared_buffers
- Improving work_mem and maintenance_work_mem
- Understanding additional memory parameters
PostgreSQL replication
- Setting up streaming replication
- Synchronous vs. asynchronous replication
- Automated failover (Patroni)
- Managing service IPs
- Handling replication conflicts
- Using pg_rewind manually
- Logical replication
Database backups
- Utilizing pg_dump and pg_restore
- Binary backups (pg_basebackups)
- Point-In-Time-Recovery (PITR)
- Backup tools (pgbackrest)
DAY 4:
PostgreSQL security
- TCP vs. UNIX sockets
- Managing pg_hba.conf
- Central authentication
- Encrypted database connections
- Creating users / roles
- Access permissions (GRANT / REVOKE)
- Defining default priviledges
- PostgreSQL on disk encryption
- Row Level Security (RLS)
- Security barrier, leakproof functions, etc
PostgreSQL monitoring and logging
- Managing log files
- Handling log rotation
- Understanding PostgreSQL system tables
- Using pg_stat_statements
- Inspecting performance vitals
- Checking stored procedure performance
- Making use of pgwatch2 monitoring
DAY 5:
Parallel queries
- Configuring parallel queries
- How the optimizer handles parallelism
- Performance considerations
Server side code
- Optimizing PL/pgSQL procedures
- Finding bottlenecks in serverside code
- Monitoring procedures
- Deploying PostgreSQL extensions
Foreign Data Wrappers
- Accessing remote data
- Connecting to Oracle
- Connecting to PostgreSQL
- Migrating data to PostgreSQL
- Implications for the optimizer
Other courses that might interest you
We offer these services
High availability with Patroni
Patroni – Protects your database Patroni is an Open Source Cluster-Technology, which takes care of automatic failover and high availability of your PostgreSQL database. Furthermore, Patroni is simple – the Patroni-Clusters are very easy to set up and to use. Ensure high availability of your database with Patroni! Cybertec’s Patroni-Extension “vipmanager” ensures an automatic IP […]
PostgreSQL Product- and 3rd Level Support
Are you using PostgreSQL as database backend for your product? Then we have the ideal solution to save you and your customers from database problems. PostgreSQL is increasingly being used as database for software and hardware solutions. Once they are sold to the customer, you are often left with the question how to offer a […]
PostgreSQL performance tuning
Is your PostgreSQL database slow? Do you see high latency, many slow query entries and are customers already complaining? If you are looking for a performance tuning because you simply want a fast, reliable database, you are on the right website. PostgreSQL Storage Tuning One part of performance tuning is storage tuning. A good storage […]
