русское описание
pg_repack — утилита и расширение для реорганизации таблиц
$ sudo apt-get update $ sudo apt-get install postgresql-10-repack
$ sudo su postgresДля каждой базы, в примере demo создать расширение:
$ psql -c "CREATE EXTENSION pg_repack" -d demo
CREATE EXTENSION
Сделать vacuum full всех баз в кластере (где установлены расширения)
$ pg_repack -na
для базы demo
$ time pg_repack -n -d demo
тоже с перестроением индексов в 4 потока
$ time pg_repack -d demo -n -j 4
postgres=# \c demo
Вы подключены к базе данных "demo" как пользователь "postgres".
demo=# select * from pg_available_extensions where installed_version is not null;
$ sudo nano /root/pg_repack.sh
#!/bin/sh -e
DB_BASE=`sudo /bin/su postgres -c "/usr/bin/psql -qAt -c 'SELECT * FROM pg_database;'| \
cut -d'|' -f1 | /bin/grep -v template | /bin/grep -v postgres"`
echo $DB_BASE
for DB_NAME in $DB_BASE
do
#echo $DB_NAME
sudo /bin/su postgres -c "/usr/bin/psql -c 'CREATE EXTENSION IF NOT EXISTS pg_repack'\
-d $DB_NAME"
sudo su postgres -c "pg_repack -d $DB_NAME -n"
done
Комментариев нет:
Отправить комментарий