Hi everyone,
I am happy to announce a new release of PgToolkit
https://github.com/grayhemp/pgtoolkit.
# PgToolkit - tools for PostgreSQL maintenance
Currently the package contains the only tool `pgcompact`, we are
planning to add much more in the future. Stay tuned.
## Changes
### 2014-02-07 - PgToolkit v1.0.1
- Fixed the dependency check leading to the inability to re-index some
primary keys
- Turned off statement timeouts for `pgcompact`'s sessions
- Increased the `psql` response timeout to 10 hours
- Removed the necessity to set `PERL5LIB` (thanks to Hubert "depesz"
Lubaczewski)
- Fixed the completion check leading to unfinished processing in some
cases
- Made the re-indexation process more lock-friendly by getting rid of
long waiting for exclusive locks
- Added usage examples to the `--help` output
- Got rid of hard-coded connection parameters (thanks to Hubert
"depesz" Lubaczewski)
- Allowed processing of the `postgres` and `template1` databases
- Resolved the several simultaneously running instances collisions
issue (thanks to Gonzalo Gil)
## pgcompact
A tool to reduce bloat for tables and indexes without heavy locks and
full table rebuilding.
If [pgstattuple] is installed `pgcompact` uses it to get a better
statistics. It is highly recommended to be for `TOAST`ed tables and
indexes.
### Usage examples
Shows user manual.
pgcompact --man
Compacts all the bloated tables in all the databases in the cluster
plus their bloated indexes. Prints additional progress information.
pgcompact --all --reindex --verbose info
Compacts all the bloated tables in the billing database and their
bloated indexes excepts ones that are in the `pgq` schema.
pgcompact --dbname billing --exclude-schema pgq --reindex
### Features
- Requires no dependencies except `Perl >=5.8.8`, so it can just be
copied to server and run
- Works with `DBD::Pg`, `DBD::PgPP` or even using `psql` if there are
no former ones, detects and chooses the best option automatically
- Can process specified tables, schemes, databases or the whole
cluster
- Has an ability to exclude tables, schemes or databases from
processing
- Bloat percentage analysis and processing of those tables that need
it only, we recommend to install [pgstattuple] for more precise
estimations
- Indexes bloat analysis and non blocking reindex of those that need
it
- Analysis and rebuilding of bloated unique constraints and primary
keys where possible
- Incremental processing, in other words one can stop the process and
continue it at any time later
- Dynamic adjustment to current load of database to not affect its
performance
- Instructs administrators, supplying them with ready to use DDL, to
manually rebuild database objects that can not be rebuilt
automatically
--
Kind regards,
Sergey Konoplev
PostgreSQL Consultant and DBA
http://www.linkedin.com/in/grayhemp
+1 (415) 867-9984, +7 (901) 903-0499, +7 (988) 888-1979
gray.ru@gmail.com