Run a few sanity checks on your logical PostgreSQL replica to make sure its the same as the primary.
Project description
pg-replica-auditor
Features
Assumptions
These tests assume that id
and updated_at
columns exist and have indexes for efficient querying and that the table exists on both databases.
Row comparison
Runs row comparisons between primary and replica using two methods:
- select 8128 rows (or number of rows given to
--rows
) at random betweenMIN(id)
andMAX(id)
- select all rows between
MAX(id)
andMAX(id) - 1000
.
Replica lag
Checks for "replica lag" by comparing MAX(updated_at)
on the given table on both databases.
Requirements
- Python 3
- Postgres development files (required by psycopg2). On Mac OS, use
brew install postgresql
. On Ubuntu, installlibpq-dev
.
Installation
Development
Using virtualenv, pip install -r requirements.txt
Production
Using Pypi, pip install pgreplicaauditor
.
Usage
This script requires three arguments:
--primary
, any acceptable Postgres connection string (incl. DSN),--replica
, same as--primary
but for the replica database,--table
, the table to check.
Optionally, if you want to see which queries it runs, you can set the --debug
option.
Example:
$ pgreplicaauditor --primary=postgres://primary-db.amazonaws.com:5432/my_db --replica=postgres://replica-db.amazonaws.com:5432/my_db --table=immutable_items
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for pg_replica_auditor-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e30627297cf111dca1be5d4b4cda1dcd958658dfa1194dcd0aae4ed94eabab70 |
|
MD5 | be8bca5e2b0aecbe0f6bced337ce503f |
|
BLAKE2b-256 | 6e62aa99dfd75917088770b2acbc0e0e9e1a9cd6e196d139778a36b5ef3327c2 |