Необходимо отказаться от 900+ схем постгрейса, но он хочет, чтобы я сначала вакуумировал

У меня есть 900 + postgres schemas (которые в совокупности содержат 40 000 таблиц), которые я бы хотел сбросить. Тем не менее, похоже, что он хочет, чтобы я сначала вакуумировал все, потому что я получаю это, когда пытаюсь отказаться от схемы.

ERROR:  database is not accepting commands to avoid wraparound data loss in database 

Есть ли способ отказаться от большого количества схем, не пытаясь сначала вакуумировать?

postgresql,postgresql-9.3,

1

Ответов: 3


Есть ли какая-то проблема при запуске команды вакуума. Это похоже на сборку мусора для базы данных. Я использую postgre базу данных, и я использую эту команду, прежде чем выполнять какую-либо важную работу, например, резервное копирование или создание sql-скриптов всей базы данных.

VACUUM восстанавливает память, занятую мертвыми кортежами. В обычной операции PostgreSQL кортежи, которые были удалены или устарели обновлением, физически не удаляются из их таблицы; они остаются присутствующими до тех пор, пока не будет выполнен ВАКУУМ. Поэтому необходимо периодически делать ВАКУУМ, особенно на часто обновляемых таблицах.


0

У вас есть два варианта. Сделайте вакуум или выбросите всю базу данных. xid wrap-around следует избегать.

https://blog.sentry.io/2015/07/23/transaction-id-wraparound-in-postgres


0

Вы не можете многое сделать, кроме VACUUM или отбрасывания базы данных.

Кроме того, если вы не используете VACUUM, база данных не будет работать ни на что, а не только на схемы, которые вы хотите удалить.

PostgreSQL, PostgreSQL-9,3,
Похожие вопросы