Book description
Over 100 recipes to design and implement a highly available server with the advanced features of PostgreSQL
In Detail
PostgreSQL, often known as simply "Postgres", is an object-relational database management system (ORDBMS) with an emphasis on extensibility and standards-compliance.
From hardware selection to software stacks and horizontal scalability, this book will help you build a versatile PostgreSQL cluster that will survive crashes, resist data corruption, and grow smoothly with customer demand. We start with selecting the necessary hardware to handle multiple failure scenarios with redundancy. Then, we discuss how to automate and visualize these checks with Nagios, check_mk, and Graphite. We'll finally round off by tackling the complex problem of data scalability.
What You Will Learn
- Protect your data with PostgreSQL replication and management tools such as Slony, Bucardo, and Londiste
- Choose the correct hardware for redundancy and scale
- Prepare for catastrophes and prevent them before they happen
- Reduce database resource contention with connection pooling
- Automate monitoring and alerts to visualize cluster activity using Nagios and collectd
- Construct a robust software stack that can detect and fix outages
- Design a scalable schema architecture to handle billions of queries
Table of contents
-
PostgreSQL 9 High Availability Cookbook
- Table of Contents
- PostgreSQL 9 High Availability Cookbook
- Credits
- About the Author
- About the Reviewers
- www.PacktPub.com
- Preface
- 1. Hardware Planning
-
2. Handling and Avoiding Downtime
- Introduction
- Determining acceptable losses
- Configuration – getting it right the first time
- Configuration – managing scary settings
- Identifying important tables
- Defusing cache poisoning
- Exploring the magic of virtual IPs
- Terminating rogue connections
- Reducing contention with concurrent indexes
- Managing system migrations
- Managing software upgrades
- Mitigating the impact of hardware failure
- Applying bonus kernel tweaks
-
3. Pooling Resources
- Introduction
- Determining connection costs and limits
- Installing PgBouncer
- Configuring PgBouncer safely
- Connecting to PgBouncer
- Listing PgBouncer server connections
- Listing PgBouncer client connections
- Evaluating PgBouncer pool health
- Installing pgpool
- Configuring pgpool for master/slave mode
- Testing a write query on pgpool
- Swapping active nodes with pgpool
- Combining the power of PgBouncer and pgpool
-
4. Troubleshooting
- Introduction
- Performing triage
- Installing common statistics packages
- Evaluating the current disk performance with iostat
- Tracking I/O-heavy processes with iotop
- Viewing past performance with sar
- Correlating performance with dstat
- Interpreting /proc/meminfo
- Examining /proc/net/bonding/bond0
- Checking the pg_stat_activity view
- Checking the pg_stat_statements view
- Debugging with strace
- Logging checkpoints properly
-
5. Monitoring
- Introduction
- Figuring out what to monitor
- Installing and configuring Nagios
- Configuring Nagios to monitor a database host
- Enhancing Nagios with check_mk
- Getting to know check_postgres
- Installing and configuring collectd
- Adding a custom PostgreSQL monitor to collectd
- Installing and configuring Graphite
- Adding collectd data to Graphite
- Building a graph in Graphite
- Customizing a Graphite graph
- Creating a Graphite dashboard
-
6. Replication
- Introduction
- Deciding what to copy
- Securing the WAL stream
- Setting up a hot standby
- Upgrading to asynchronous replication
- Bulletproofing with synchronous replication
- Faking replication with pg_receivexlog
- Setting up Slony
- Copying a few tables with Slony
- Setting up Bucardo
- Copying a few tables with Bucardo
- Setting up Londiste
- Copying a few tables with Londiste
-
7. Replication Management Tools
- Introduction
- Deciding when to use third-party tools
- Installing and configuring Barman
- Backing up a database with Barman
- Restoring a database with Barman
- Installing and configuring OmniPITR
- Managing WAL files with OmniPITR
- Installing and configuring repmgr
- Cloning a database with repmgr
- Swapping active nodes with repmgr
- Installing and configuring walctl
- Cloning a database with walctl
- Managing WAL files with walctl
-
8. Advanced Stack
- Introduction
- Preparing systems for the stack
- Getting started with the Linux Volume Manager
- Adding block-level replication
- Incorporating the second LVM layer
- Verifying a DRBD filesystem
- Correcting a DRBD split brain
- Formatting an XFS filesystem
- Tweaking XFS performance
- Maintaining an XFS filesystem
- Using LVM snapshots
- Switching live stack systems
- Detaching a problematic node
-
9. Cluster Control
- Introduction
- Installing the components
- Configuring Corosync
- Preparing startup services
- Starting with base options
- Adding DRBD to cluster management
- Adding LVM to cluster management
- Adding XFS to cluster management
- Adding PostgreSQL to cluster management
- Adding a virtual IP to hide the cluster
- Adding an e-mail alert
- Grouping associated resources
- Combining and ordering related actions
- Performing a managed resource migration
- Using an outage to test migration
-
10. Data Distribution
- Introduction
- Identifying horizontal candidates
- Setting up a foreign PostgreSQL server
- Mapping a remote user
- Creating a foreign table
- Using a foreign table in a query
- Optimizing foreign table access
- Transforming foreign tables into local tables
- Creating a scalable nextval replacement
- Building a sharding API
- Talking to the right shard
- Moving a shard to another server
- Index
Product information
- Title: PostgreSQL 9 High Availability Cookbook
- Author(s):
- Release date: July 2014
- Publisher(s): Packt Publishing
- ISBN: 9781849516969
You might also like
book
PostgreSQL 10 Administration Cookbook
A practical guide to administer, monitor and replicate your PostgreSQL 10 databaseAbout This Book Get to …
book
PostgreSQL 9 Administration Cookbook - Second Edition
Over 150 recipes to help you run an efficient PostgreSQL database in the cloud In Detail …
book
PostgreSQL High Availability Cookbook - Second Edition
Master over 100 recipes to design and implement a highly available server with the advanced features …
book
PostgreSQL 9.0 High Performance
If you’re an intermediate to advanced database administrator, this book is the shortcut to optimizing and …