powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / ERROR: could not open file "base/830972/t...": No such file or directory 58P01 temporary
12 сообщений из 12, страница 1 из 1
ERROR: could not open file "base/830972/t...": No such file or directory 58P01 temporary
    #39368201
ZiB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZiB
Гость
Здравствуйте,
стала часто выскакивать ошибка в функциях на создании temporary table

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
NOTICE:  table "tmp" does not exist, skipping
CONTEXT:  SQL statement "drop table if exists tmp"
PL/pgSQL function "f"(integer) line 20 at SQL statement
ERROR:  could not open file "base/830972/t27_3187681": No such file or directory
CONTEXT:  SQL statement "create temporary table tmp(
...
     )"
PL/pgSQL function "f"(integer) line 21 at SQL statement

********** Ошибка **********

ERROR: could not open file "base/830972/t27_3187681": No such file or directory
SQL-состояние: 58P01
Контекст: SQL statement "create temporary table tmp(
...
     )"
PL/pgSQL function "f"(integer) line 21 at SQL statement



Функция следующая:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE OR REPLACE FUNCTION "f"(IN f integer)
  RETURNS TABLE(f integer) AS
$BODY$
 begin
     drop table if exists tmp;
     create temporary table tmp(
...
     );
...
    return query select * from tmp;
 end;
 $BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100
  ROWS 1000;



Работала раньше и работала.
Неделю назад вдруг стала появляться... изредка.
Сейчас воспроизводится почти каждый раз при запуске функции.

При запуске из PgAdmin в одной сессии может постоянно возникать ошибка, во второй сессии (окне SQL) не повторяется.

Что это за ошибка? Куда хотя бы копать?

Windows Server 2008 R2 Enterprise Service Pack 1 (х64)
ОЗУ 192 ГБ
Версия PostgreSQL 9.2.6

postgresql.conf:
max_connections = 500
shared_buffers = 30GB
temp_buffers = 64MB
work_mem =32MB
maintenance_work_mem = 1GB
effective_cache_size = 30GB
...
Рейтинг: 0 / 0
ERROR: could not open file "base/830972/t...": No such file or directory 58P01 temporary
    #39368202
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZiB,

9.2.6 мягко говоря устарела, года 4 багфиксов отсутствуют.
Для начала надо обновиться, потом дальше смотреть.

И это, в следующем году поддержка на 9.2 кончится, я бы рекомендовал подумать об апгрейде.
...
Рейтинг: 0 / 0
ERROR: could not open file "base/830972/t...": No such file or directory 58P01 temporary
    #39368227
ZiB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZiB
Гость
vyegorov,

планируем переходить на 9.6, но это неизвестно когда будет.
А пользователям работать надо сейчас.
...
Рейтинг: 0 / 0
ERROR: could not open file "base/830972/t...": No such file or directory 58P01 temporary
    #39368295
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZiB,

vyegorov вам говорит обновится до 9.2.19 для начала.
...
Рейтинг: 0 / 0
ERROR: could not open file "base/830972/t...": No such file or directory 58P01 temporary
    #39368651
ZiB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZiB
Гость
Lonepsycho,

сейчас нет ни какой возможности обновится.
...
Рейтинг: 0 / 0
ERROR: could not open file "base/830972/t...": No such file or directory 58P01 temporary
    #39369187
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZiB,

не уверен что вам мешает. обновление на минорную (багфикс) версию много времени не отнимает. для этого не нужны dump - restore. всё обновление занимает минут пять, точно не больше.
...
Рейтинг: 0 / 0
ERROR: could not open file "base/830972/t...": No such file or directory 58P01 temporary
    #39369269
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обычно всего 30-60 секунд downtime требуется, если правильно делать. такое почти любой проект может себе позволить.
...
Рейтинг: 0 / 0
ERROR: could not open file "base/830972/t...": No such file or directory 58P01 temporary
    #39369270
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexius,

хотя как это правильно делать в windows - не знаю, может и больше времени надо.
...
Рейтинг: 0 / 0
ERROR: could not open file "base/830972/t...": No such file or directory 58P01 temporary
    #39369460
ZiB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZiB
Гость
А что можно сделать с ошибкой?
Я могу переписать функции убрав оттуда использование временных таблиц,
но это займет очень много времени.

Отчего вообще эта ошибка появилась?
Ничего не меняли, до этого все работало.

При этом у нас система развернута в двух экземплярах,
друг с другом ни как не связаны.
Сначала ошибка начала появляться в одной системе,
потом через неделю в другой... за эту неделю
ошибка в первой системе учащалась,
сначала 1 раз в день, под конец каждый раз при использовании функции.
...
Рейтинг: 0 / 0
ERROR: could not open file "base/830972/t...": No such file or directory 58P01 temporary
    #39369483
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexius,

Под виндовс тоже самое, хотя зависит от того как делается обновление. Более частый случай, используя гуи инсталятор, тогда по дольше, а если распаковывая бинарики из архива, тогда быстрее.
...
Рейтинг: 0 / 0
ERROR: could not open file "base/830972/t...": No such file or directory 58P01 temporary
    #39369484
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZiB,

С ошибкой vyegorov вам уже предлагал с чего начинать. Может вы упираетесь на давно исправленную ошибку. За одно можно поглядеть в лог ОС, может там будет ответ почему нет файла.
...
Рейтинг: 0 / 0
ERROR: could not open file "base/830972/t...": No such file or directory 58P01 temporary
    #39371282
ZiB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZiB
Гость
Нашел решение проблемы!!!
В постгр используемые временные таблицы были,
но их фалов не было.
Выполнил следующий скрипт:

Код: sql
1.
2.
3.
4.
select 'drop table ' || nspname || '."' || relname || '";'
from pg_class c
join pg_namespace n on n.oid = c.relnamespace
where relkind = 'r' and c.relpersistence = 't'



(можно не боятся его выполнять,
используемые в соседних сессия таблицы постгр не даст удалить).
Каждая такая команда давала именно такую ошибку.
Я предварительно создавал такой же пустой файл
и команда выполнялась на ура.
Теперь ошибка не повторяется.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / ERROR: could not open file "base/830972/t...": No such file or directory 58P01 temporary
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]