LINUX.ORG.RU
решено ФорумAdmin

Знатокам postgresql

 


0

1

Имеется сервер с postgresql, на котором периодически (и кстати все чаще) возникает хрень вида: psql: FATAL: database is not accepting commands to avoid wraparound data loss in database «template1»

такие матюки на каждую базу. лечится остановкой сервера, и проделыванием шаманства из мануала:

[root@server ~]# /etc/init.d/postgresql stop
[root@server ~]# su postgres
[postgres@server ~]$ touch /tmp/fix.sql
[postgres@server ~]$ echo "VACUUM FULL;" > /tmp/fix.sql
[postgres@server ~]$ postgres -D /var/lib/pgsql/data YOUR_DATABASE_NAME < /tmp/fix.sql

Но я так считаю, что это поведение ненормальное же? Кто что посоветует? Опыта работы с pg до этого не имел, с мускулем подобных проблем тоже не наблюдал. По крайней мере если побилась какая-то из таблиц в мускуле - сам демон стартует ок. А тут не стартует даже сам демон postgresql, пока это шаманство не проделать. Короче как бороться-то с напастью?

★★★★★

А в целом,

1) Надо иногда делать VACUUM. Для этого есть команда vacuumdb, но в свежих версиях оно само должно себя вакуумить - там есть autovacuum. Если этого не происходит то надо разбираться почему.

2) VACUUM FULL не требуется, достаточно простого VACUUM'а. Оно сильно быстрее.

3) VACUUM можно делать не останавливая БД (конечно, еще пока не наступила выше указанная ошибка).

maxcom ★★★★★
()
Ответ на: комментарий от Komintern

В 8.1 нету autovacuum, это ж древность археологическая. Если очень хочется им пользоваться (зачем только не понятно), то добавь в cron хотябы раз в день vacuumdb

maxcom ★★★★★
()
Ответ на: комментарий от maxcom

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

Komintern ★★★★★
() автор топика
Ответ на: комментарий от Komintern

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

В 9 (или 9.1) добавили upgradedb.

AnDoR ★★★★★
()
Ответ на: комментарий от AnDoR

При миграции с 8.1 оно вряд ли поможет. После 8.1 может понадобится и хранимки править, если они есть.

ventilator ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.