Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/55: Рейтинг темы: голосов - 55, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 6

Сообщение в логе postgresql - autovacuum: found orphan temp table in database

10.09.2013, 14:23. Показов 11527. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
После того как экстренно (по определенным обстоятельствам) был остановлен, а затем заново запущен postgresql, в логах стали появляться подобные сообщения:
autovacuum: found orphan temp table "pg_temp_xx"."ttxx" in database "xxx".
Postgresql версии 9.1, количество баз 10 количество одновременных пользователей около 100
В результате "гугления" :-) была найдена следующая информация - можно сделать так:
DROP SCHEMA pg_temp_xxx CASCADE
но по вышеуказанным причинам у меня схем (которые xxx) около 100 и примерно половина из них сейчас явно используются.... поэтому вручную грохать их как то не с руки.
После дальнейшего "гугления" был обнаружен следующий код в исходнике autovacuum.c (официальный код postgresql):
/*
* We found an orphan temp table (which was probably left behind by a crashed backend). If it's so old as to need vacuum for wraparound, forcibly drop it. Otherwise just log a complaint.
*/
if (wraparound)
{
ereport(LOG, (errmsg("autovacuum: dropping orphan temp table \"%s\".\"%s\" in database \"%s\"",
****некий код****
}
else
{
ereport(LOG, (errmsg("autovacuum: found orphan temp table \"%s\".\"%s\" in database \"%s\"",
****некий код****
}
Что говорит о следующем (дословно): после полного оборота autovacuum грохнет эти таблицы сам, но когда он пройдет этот оборот..... уже второй день, а в лог все еще без перерыва сыплются эти сообщения, в результате лог набегает на 200м в день, да и столько ошибок это явно совсем не хорошо.....
Вопрос: как ускорить этот полный оборот autovacuum и как без потерь разрешить данную ситуацию (извиняюсь за многоинформации)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.09.2013, 14:23
Ответы с готовыми решениями:

CDbCommand failed to execute the SQL statement: SQLSTATE[42S02]: Base table or view not found: 1146 Table doesn't exist
CDbException CDbCommand failed to execute the SQL statement: SQLSTATE: Base table or view not found: 1146 Table 'auto.mashin_att'...

Database error , PostgreSQL 9.3
Товарищи практики , подскажите ...., практически можно изменить ( исправить ошибку в БД ) . Буду признателен если подскажите способ решения...

Error or missing database (no such table: users)
Здравствуйте! Вот часть моего кода: import java.sql.*; class SQLClient { private static Connection connection; ...

5
1263 / 977 / 384
Регистрация: 02.09.2012
Сообщений: 3,020
10.09.2013, 15:52
Небось это 1С так мусорит? (без обид).
Не надо дропать всю схему, дропните таблицу (грепом выбрать из логов имена схема, имена таблиц...)
скорее всего эти таблицы были созданы через CREATE TEMPORARY TABLE для построения каких-то временных отчетов и они врядли жестко связаны с основной схемой данных. То есть вы с большой веростяностью ничего не порушите.
Если я угадал и это 1С, то дело серьезное. И все же лучше не надеяться на вероятность и перед дропом дождаться (или сделать вручную, если не настроено автоматически) полного бакапа данных (ночного?!).

Также должно помочь VACUUM FULL, хотя я не попадал в такую ситуацию и не знаю, удалит ли сборщик мусора "осиротвешие" таблицы. Но VACUUM FULL требует эксклюзивного доступа к таблицам. Соответственно полную вакуумизацию нужно делать, когда никто не работает.
0
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 6
11.09.2013, 09:30  [ТС]
Естественно 1С, и извиняться тут не за что :- ))))) 1С действительно д-мо но без него далеко не убежишь.... А теперь по делу, grep-ом не вариант как я говорил их больше 50.... отобрать их все не так уж и легко, да и мне бы хотелось, чтобы postgres их сам грохнул - что судя по найденной мною информации заложено в программу, а не я вручную во избежании еще худших последствий чем сейчас....
За vacuum full спасибо ;-) но не помогло :-(
0
1263 / 977 / 384
Регистрация: 02.09.2012
Сообщений: 3,020
11.09.2013, 18:16
можно попытаться уменьшить параметр freeze_max_age, это уменьшит время до wraparound'а и соответственно, когда он случится, выполнится условие, о котором вы написали выше и таблицы должны дропнуться при автовакуумизации.
0
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 6
12.09.2013, 10:34  [ТС]
Да, спасибо, где-то видел про это информацию, наверное в докумментации postgresql - здесь
23.1.3. Preventing Transaction ID Wraparound Failures
только там есть еще указание:
WARNING: database "mydb" must be vacuumed within 177009986 transactions
HINT: To avoid a database shutdown, execute a full-database VACUUM in "mydb".

If these warnings are ignored, the system will shut down and refuse to execute any new transactions once there are fewer than 1 million transactions left until wraparound:

ERROR: database is not accepting commands to avoid wraparound data loss in database "mydb"
HINT: Stop the postmaster and use a standalone backend to VACUUM in "mydb".

к сожалению не смог однозначно понять что бы это значило, поэтому боюсь что то предпринимать в этом направлении, ибо если postmaster встанет - это в моей ситуации каснется всех 10 баз, деятельность фирмы тоже нагнется :-))) а потом скорее всего нагнусь я :-(
grgdvo - не подскажете, есть ли тут чего опасаться?
я попробовал бы на тестовом сервере но пока не удалось смоделировать ситуацию
0
1263 / 977 / 384
Регистрация: 02.09.2012
Сообщений: 3,020
14.09.2013, 01:20
За простую вакуумизацию я бы не опасался.
Тем более, что это в приницпе полезная вещь и она должна делаться наряду с бакапами.
But since transaction IDs have limited size (32 bits) a cluster that runs for a long time (more than 4 billion transactions) would suffer transaction ID wraparound: the XID counter wraps around to zero, and all of a sudden transactions that were in the past appear to be in the future — which means their output become invisible. In short, catastrophic data loss. (Actually the data is still there, but that's cold comfort if you cannot get at it.) To avoid this, it is necessary to vacuum every table in every database at least once every two billion transactions.
В худшем случае, что произойдет - это база встанет и откажется вносить данные до тех пор пока вы под суперпользователем вручную не сделаете вакуумизацию (1 миллион транзакций до перескока через 0).

Там же в разделе приведены запросы, посмотрите на ваши счетчики транзакий, засеките с какой скоростью они растут. Если Вам хватит счетчиков еще на 100 лет вперед, то играться с параметрами возраста думаю бессмысленно, проще взять и дропнуть "осиротевшие" таблицы... ну или мириться с мусором в логах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.09.2013, 01:20
Помогаю со студенческими работами здесь

vi: No terminal database found
Приветствую, у меня возникла проблема на сервере, выдаёт вот такую ошибку: vi: No terminal database found При попытке открыть любой...

Можно ли использовать совместно WPF, NHibernate[database-first], PostgreSQL
Здравствуйте, Мне необходимо сделать курсовую по программированию. Думаю использовать вот эти технологии WPF + NHibernate +...

File Not Found Or Not A Notes Database
Подскажите, пожалуйста, в чем может быть проблема Пользователь был удален, его нет в АК, база была удалена, в админ реквест тоже уже...

Ошибка: No database adapter was found in the static registry
пытаюсь интегрировать в уи модуль зф2 "Node". подключил алиасы ...

Malwarebytes' Anti-Malware сообщение о логе
Здравствуйте, после сканирования получил следующие результаты, помещенные в txt-файл Прошу помочь, а то работать просто невозможно........


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru