PostgreSQL 9 High Availability Cookbook

PostgreSQL 9 High Availability Cookbook
eBook: $26.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 15%!
Print + free eBook + free PacktLib access to the book: $71.98    Print cover: $44.99
save 6%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Create a PostgreSQL cluster that stays online even when disaster strikes
  • Avoid costly downtime and data loss that can ruin your business
  • Perform data replication and monitor your data with hands-on industry-driven recipes and detailed step-by-step explanations

Book Details

Language : English
Paperback : 398 pages [ 235mm x 191mm ]
Release Date : July 2014
ISBN : 1849516960
ISBN 13 : 9781849516969
Author(s) : Shaun M. Thomas
Topics and Technologies : All Books, Big Data and Business Intelligence, Cookbooks, Open Source

Table of Contents

Chapter 1: Hardware Planning
Chapter 2: Handling and Avoiding Downtime
Chapter 3: Pooling Resources
Chapter 4: Troubleshooting
Chapter 5: Monitoring
Chapter 6: Replication
Chapter 7: Replication Management Tools
Chapter 8: Advanced Stack
Chapter 9: Cluster Control
Chapter 10: Data Distribution
  • Chapter 1: Hardware Planning
    • Introduction
    • Planning for redundancy
    • Having enough IOPS
    • Sizing storage
    • Investing in a RAID
    • Picking a processor
    • Making the most of memory
    • Exploring nimble networking
    • Managing motherboards
    • Selecting a chassis
    • Saddling up to a SAN
    • Tallying up
    • Protecting your eggs
  • Chapter 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
  • Chapter 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
  • Chapter 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
  • Chapter 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
  • Chapter 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
  • Chapter 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
  • Chapter 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
  • Chapter 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
  • Chapter 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

Shaun M. Thomas

Shaun M. Thomas has been working with PostgreSQL since late 2000. He is a frequent contributor to the PostgreSQL Performance and General mailing lists, assisting other DBAs with the knowledge he's gained over the years. In 2011 and 2012, he gave presentations at the Postgres Open conference on topics such as handling extreme throughput, high availability, server redundancy, and failover techniques. Most recently, he has contributed the Shard Manager extension and the walctl WAL management suite.

Currently, he serves as the database architect at OptionsHouse, an online options brokerage with a PostgreSQL cluster that handles almost 2 billion queries per day. Many of the techniques used in this book were developed specifically for this extreme environment.

He believes that PostgreSQL has a stupendous future ahead, and he can't wait to see the advancements subsequent versions will bring.

Sorry, we don't have any reviews for this title yet.

Code Downloads

Download the code and support files for this book.

Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

Frequently bought together

PostgreSQL 9 High Availability Cookbook +    SSL VPN : Understanding, evaluating and planning secure, web-based remote access =
50% Off
the second eBook
Price for both: $28.50

Buy both these recommended eBooks together and get 50% off the cheapest eBook.

What you will learn from this book

  • 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

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.


A comprehensive series of dependable recipes to design, build, and implement a PostgreSQL server architecture free of common pitfalls that can operate for years to come. Each chapter is packed with instructions and examples to simplify even highly complex database operations.

Who this book is for

If you are a PostgreSQL DBA working on Linux systems who want a database that never gives up, this book is for you. If you've ever experienced a database outage, restored from a backup, spent hours trying to repair a malfunctioning cluster, or simply want to guarantee system stability, this book is definitely for you.

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software