--------------------- когда нужно снести
select * from pg_stat_activity where datname='......' \gx
select pg_terminate_backend(pid) from pg_stat_activity where datname='.......';
select pid,query from pg_stat_activity where usename='v.koversunov' ;
select pg_terminate_backend(pid) from pg_stat_activity where usename='v.koversunov' ;
pg_cancel_backend(pid)
: Terminate a query but keep the connection alivepg_terminate_backend(pid)
: Terminate a query and kill the connection
select 'REASSIGN OWNED BY "'||usename||'" TO postgres;' from pg_user order by usename;
select 'DROP OWNED BY "'||usename||'";' from pg_user order by usename;
select 'DROP user "'||usename||'";' from pg_user order by usename;
postgres=# DROP user acc_data;
ERROR: role "acc_data" cannot be dropped because some objects depend on it
DETAIL: privileges for function pg_stat_statements_reset()
1. Before going to solution, list all privileges of a role (grantee)
Если таблиц стала занимать много места на диске, первым дело стоит проверить работу процесса autovacuum.
Проверить обрабатывал ли данную таблицу autovacuum:
SELECT schemaname, relname, n_live_tup, n_dead_tup, last_autovacuum
FROM
pg_stat_all_tables ORDER BY n_dead_tup/ (n_live_tup * current_setting('autovacuum_vacuum_scale_factor')::float8 + current_setting('autovacuum_vacuum_threshold')::float8);
postgres=# show archive_mode;
archive_mode
--------------
off
(1 row)
postgres=# show archive_command;;
archive_command
-----------------
(disabled)
(1 row)
--Let’s create directories for backups and archives (login as root USER):
--------------------------------------- кто нуждается в вакууме
SELECT schemaname, relname, n_tup_ins as "inserts",n_tup_upd as "updates",n_tup_del as "deletes", n_live_tup as "live_tuples", n_dead_tup as "dead_tuples"
FROM pg_stat_user_tables
--WHERE schemaname = 'scott' and relname = 'employee';
order by n_dead_tup desc;