Audit RDS PostgreSQL parameters for drift and compliance.
Project description
PostgreSQL RDS Parameters Sync
Compare PostgreSQL settings between two databases to detect drift.
Features
Audit particular settings
Example:
$ pgrdsparamsync audit --parameters=max_wal_size
It will get all the databases in the account and region and display their max_wal_size
value.
Since this can be an expensive operation, a local 1 hour cache is used for each parameter group.
If only a subset of databases is of interest, --db-name-like
can be used to filter based on the database name.
Example:
$ pgrdsparamsync audit --parameters=max_wal_size,min_wal_size --db-name-like=production
It will audit only the databases that contain the string "production" in their name and display max_wal_size
and min_wal_size
.
For reporting, we can also print out the above table in CSV format.
Example:
$ pgrdsparamsync audit --parameters=max_wal_size,min_wal_size --fmt=csv
Compare a database to another or a parameter group
Example:
$ pgrdsparamsync rds-compare --target-db="users-production" --other-db="orders-production"
It will print all the settings that differ between the two databases.
If the goal is to set a standard against the entire database fleet, it is possible to compare a database to a parameter group that represents that standard.
Example:
$ pgrdsparamsync rds-compare --target-db="users-production" --parameter-group="pg-11-standard"
It will print all the settings that differ between the target database and the parameter group.
Compare two databases directly
Example:
$ pgrdsparamsync pg-compare \
--target-db-url="postgres://user:password@users-production.rds.awsamazon.com" \
--other-db-url="postgres://user:password@orders-production.rds.awsamazom.com"
RDS parameter groups use formulas to calculate certain settings (e.g. shared_buffers
, effective_cache_size
, etc.) by default. Sometimes, it is useful to know the actual value. This will connect to the databases directly, query pg_settings
, and print the settings that differ.
Caching
Fetching parameter groups for 100s of databases is long and expensive. We added a local cache with a 1h TTL. It's stored in /tmp/pgrdsparamsync
. The first run of the application will be slow, but subsequent runs will be much faster. To increase the TTL or bust the cache, add an environment variable CACHE_TTL
with a value that's not 1h, for example $ export CACHE_TTL=7200
which will set the TTL to 2 hours (7200 seconds).
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
File details
Details for the file pg-rds-params-sync-0.2a2.tar.gz
.
File metadata
- Download URL: pg-rds-params-sync-0.2a2.tar.gz
- Upload date:
- Size: 7.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f40e9c8e4e12629b43cc55a1cd4736b89de1ec0327f182ff4c44cd75b1aed91 |
|
MD5 | 1c85314ab6874951ce9e284a8a9f00b3 |
|
BLAKE2b-256 | c7bfca0106cc1b021b3460e96731c55ec5148daf31e0e5d57d271a97be8eb645 |
File details
Details for the file pg_rds_params_sync-0.2a2-py3-none-any.whl
.
File metadata
- Download URL: pg_rds_params_sync-0.2a2-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71a6e1ff93a938f4791a503aaa802f0d449c7ce651a8d3f324186464be179db4 |
|
MD5 | 3be6b044c033d488f069f39dda235e06 |
|
BLAKE2b-256 | ff994388f4f655ed021768aa6d0b915cf53547694a57154ab6fb08021acca0da |