четверг, 19 апреля 2012 г.

Зависшие Prepared Transaction в Postgres

Если в базе postgres не удаляется таблица (на запрос drop database сервер выдает ошибку database is being accessed by other users, хотя ни кто базу не использует) или в этой таблице невозможно изменить данные и перезагрузка сервера тоже не помогает, то следует обратить внимание на зависшие распределенные транзакции.
Выполняем запрос: select * from pg_prepared_xacts
Копируем значение поля gid.
Теперь выполняем запрос: ROLLBACK PREPARED 'gid'
где gid - скопированное значение.

Комментариев нет:

Отправить комментарий

Список таблиц/индексов и их размеров

SELECT relname AS "relation" , pg_size_pretty ( pg_relation_size ( C . oid )) AS "size" FROM pg_class C LEF...