Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pg-rds-params-sync-0.2a2.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

pg_rds_params_sync-0.2a2-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

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

Hashes for pg-rds-params-sync-0.2a2.tar.gz
Algorithm Hash digest
SHA256 9f40e9c8e4e12629b43cc55a1cd4736b89de1ec0327f182ff4c44cd75b1aed91
MD5 1c85314ab6874951ce9e284a8a9f00b3
BLAKE2b-256 c7bfca0106cc1b021b3460e96731c55ec5148daf31e0e5d57d271a97be8eb645

See more details on using hashes here.

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

Hashes for pg_rds_params_sync-0.2a2-py3-none-any.whl
Algorithm Hash digest
SHA256 71a6e1ff93a938f4791a503aaa802f0d449c7ce651a8d3f324186464be179db4
MD5 3be6b044c033d488f069f39dda235e06
BLAKE2b-256 ff994388f4f655ed021768aa6d0b915cf53547694a57154ab6fb08021acca0da

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page