powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Очистка временного dbspace
18 сообщений из 18, страница 1 из 1
Очистка временного dbspace
    #36525931
Alexey Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток!

Возникла поблема (IDS 9.30FC1/SPARC) с очисткой временного спейса, а именно он не очищается после закрытия сессий. В результате по onstat видно, что спейс забит, сессий нет. Приходится в этом случае рестартовать информикс.

Это баг или так должно быть?
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36525982
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey IvanovВ результате по onstat видно, что спейс забит, сессий нет.
Это само по себе не проблема. Ошибки и сообщения, что не хватило пространства получаете? Если нет -расслабляйтесь...

П.С.: Народ, может местный опрос проведём на тему"Какие версии в ходу"?
Модератор: Создана отдельная ветка http://sql.ru/forum/actualthread.aspx?tid=743801
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36526127
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Ivanov
Возникла поблема (IDS 9.30FC1/SPARC) с очисткой временного спейса, а именно он не очищается после закрытия сессий. В результате по onstat видно, что спейс забит, сессий нет.
Временные таблицы и файлы могут оставаться в нескольких случаях, один из наиболее типичных - некорректное завершение сессий.
Действия:
- проверьте, не является ли это временное пространство логируемым, т.е. dbspace создали с поддержкой транзакций
- какого типа (явно созданные приложениями или неявно, сортировочные файлы или таблицы) ?
Несколько топиков назад я давал запрос на получение списка всех темповых таблиц и файлов.
Дайте вывод этого запроса после нескольких часов работы и завершения всех сессий.
- какого типа приложение работает, на чем создано и как много пользоватлей ?

Alexey Ivanov
Приходится в этом случае рестартовать информикс.
Это баг или так должно быть?
Если перестарт помогает, то это не баг сервера. Скорее всего, баг приложения.
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36527472
Alexey Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vasilis
Временные таблицы и файлы могут оставаться в нескольких случаях, один из наиболее типичных - некорректное завершение сессий.
Действия:
- проверьте, не является ли это временное пространство логируемым, т.е. dbspace создали с поддержкой транзакций
- какого типа (явно созданные приложениями или неявно, сортировочные файлы или таблицы) ?
Несколько топиков назад я давал запрос на получение списка всех темповых таблиц и файлов.
Дайте вывод этого запроса после нескольких часов работы и завершения всех сессий.
- какого типа приложение работает, на чем создано и как много пользоватлей ?


Временный спейс создавался с ключем -t т.е. без транзакций
Временные таблицы создавались запросами типа select ... into temp temptable
Вывод запроса будет
Это веб-приложение (php4), пользователей одновременно до 20-30.
Есть одна особенность: часть веб-приложения активно работает с блобами. Когда ее ввели в продуктив начались эти проблемы. Другие части приложения тоже используют временные таблицы, но раньше таких проблем не было.
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36527631
zaiets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oncheck -pe <temp dbspace> в прблемный момент что показывает?
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36527847
Alexey Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вывод по временным таблицам:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
set isolation to dirty read;
select   tn.tabname[ 1 , 18 ] temp_table
        ,tn.dbsname[ 1 , 18 ] db_name
        ,tn.owner[ 1 , 8 ]  owner
        ,s.name[ 1 , 18 ]   dbspace
,substr(bitval(ti_flags, 32 ), 1 , 1 )  sys
        ,substr(bitval(ti_flags, 64 ), 1 , 1 ) log
        ,substr(bitval(ti_flags, 128 ), 1 , 2 ) srt
from systabnames tn,systabinfo ti,sysdbspaces s
where   tn.partnum = ti.ti_partnum 
        and s.dbsnum=partdbsnum(ti_partnum)         
        and (bitval(ti_flags, 32 )= 1  or bitval(ti_flags, 64 )= 1  or bitval(ti_flags, 128 )= 1 )
order by  3 , 2 , 1 , 4 


temp_table         db_name            owner    dbspace            sys log srt 

th_tmprun_1ff81411 SORTTEMP           informix tmpdbs              1     0     1  
таких 44 строки
Код: plaintext
1.
_temptable         journal            www      tmpdbs              1     0     0  
таких около 43000 строк
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
docm               journal            www      tmpdbs              1     0     0  
docm               journal            www      tmpdbs              1     0     0  
docm               journal            www      tmpdbs              1     0     0  
docm               journal            www      tmpdbs              1     0     0  
docm_edr0          journal            www      tmpdbs              1     0     0  
doct               journal            www      tmpdbs              1     0     0  
doct               journal            www      tmpdbs              1     0     0  
doct               journal            www      tmpdbs              1     0     0  
doct               journal            www      tmpdbs              1     0     0  
rub_access_tmp1    journal            www      tmpdbs              1     0     0  
rub_access_tmp1    journal            www      tmpdbs              1     0     0  
rub_access_tmp1    journal            www      tmpdbs              1     0     0  
rub_access_tmp1    journal            www      tmpdbs              1     0     0  
tmp_book           journal            www      tmpdbs              1     0     0  
tmp_book           journal            www      tmpdbs              1     0     0  
tmp_book           journal            www      tmpdbs              1     0     0  
tmp_book           journal            www      tmpdbs              1     0     0  
tmp_dep            journal            www      tmpdbs              1     0     0  
tmp_dep            journal            www      tmpdbs              1     0     0  
tmp_dep            journal            www      tmpdbs              1     0     0  
tmp_dep            journal            www      tmpdbs              1     0     0  

На момент запуска было 4 открытых сессии от пользователя www
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36527944
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Ivanov
Временный спейс создавался с ключем -t т.е. без транзакций

На всякий случай: лучше это проверять не по памяти, а по выводу onstat -d...

Alexey Ivanov
Временные таблицы создавались запросами типа select ... into temp temptable

Может таки select ... into temp temptable WITH NO LOG ?

Alexey Ivanov
Есть одна особенность: часть веб-приложения активно работает с блобами.

С блобами именно во временных таблицах?
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36528039
Alexey Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zaietsoncheck -pe <temp dbspace> в прблемный момент что показывает?

Во время переполнения спейса вываливается 244 ошибка

ончек показывает (кусок):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 (0x40ab16) journal:'www'._temptable                              409445          8 
 (0x40ab18) journal:'www'._temptable                              409453          8 
 (0x40ab17) journal:'www'._temptable                              409461          8 
 (0x40ab04) journal:'www'._temptable                              409469          8 
 (0x40ab19) journal:'www'._temptable                              409477          8 
 (0x40ab1a) journal:'www'._temptable                              409485          8 
 (0x40ab1b) journal:'www'._temptable                              409493          8 
 (0x40ab1c) journal:'www'._temptable                              409501          8 
 (0x40ab1d) journal:'www'._temptable                              409509          8 
 (0x40ab1e) journal:'www'._temptable                              409517          8 
 (0x40ab1f) journal:'www'._temptable                              409525          8 
 (0x40ab20) journal:'www'._temptable                              409533          8 
 (0x40ab21) journal:'www'._temptable                              409541          8 
 (0x40ab22) journal:'www'._temptable                              409549          8 
 (0x40ab23) journal:'www'._temptable                              409557          8 

...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36528040
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойAlexey Ivanov
Временный спейс создавался с ключем -t т.е. без транзакций

На всякий случай: лучше это проверять не по памяти, а по выводу onstat -d...
Alexey Ivanov
Временные таблицы создавались запросами типа select ... into temp temptable

Может таки select ... into temp temptable WITH NO LOG ?
Вот-вот. Абсолютно верно. Проверьте, все таки, фактическое состояние дел и непосредственно в приложении как написано.

АнатоЛойAlexey Ivanov
Есть одна особенность: часть веб-приложения активно работает с блобами.

С блобами именно во временных таблицах?
При работе с блобами, насколько я помню, темповые пространства используются очень интенсивно.
Похоже, что основная причина именно в них. Нужно см. доку и приложение на предмет правильной работы с ними
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36528064
Alexey Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛой
На всякий случай: лучше это проверять не по памяти, а по выводу onstat -d...


Он действительно темповый

АнатоЛой
Может таки select ... into temp temptable WITH NO LOG ?


Без with no log точно.

АнатоЛой
С блобами именно во временных таблицах?


с ними в т.ч.
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36528085
Alexey Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зачем добавлять with no log если спейс темповый и не логируется?
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36528550
zaiets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Ivanovzaietsoncheck -pe <temp dbspace> в прблемный момент что показывает?

Во время переполнения спейса вываливается 244 ошибка

ончек показывает (кусок):

Код: plaintext
1.
2.
3.
 (0x40ab16) journal:'www'._temptable                              409445          8 
 (0x40ab18) journal:'www'._temptable                              409453          8 
....


The _temptable is an Internal temp table

Если у вас все проостранство забито _temptable, то нужно искать запросы, которые приводят к этому и как-то с ними бороться.

Если вы подозреваете на блобы, то соответственно нужно промоделировать ситуацию ипосмотреть какие именно операции приводят к подобной ситуации.
Посмотреть планы запросов - если ли там автоиндексы и т.п.
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36528646
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey IvanovЗачем добавлять with no log если спейс темповый и не логируется?
IDS 11.5 - Guide to SQL: Syntax
Use the WITH NO LOG option to reduce the overhead of transaction logging. If you specify WITH NO LOG, operations on the temporary table are not included in the transaction-log operations. The WITH NO LOG option is required on all temporary tables that you create in temporary dbspaces.
Если не указывать, то таблица участвует в транзакционном процессе, а значит и в общем процессе отката/доката транзакций на сервере, а значит должна сохранятся какое-то время, а не только на время коннекта пользователя. Кстати, если пользователь у вас один от сервера приложений (web), то временные таблицы, созданные разными реальными пользователями, будут сохранятся до завершения работы сервера приложений и закрытия БД (если все работают в рамках одного соединения).
Правда, таблицы созданные без WITH NO LOG должны располагаться в другом, логируемом, спейсе, но входящем в список DBSPACETEMP. Если таких нет, то есть некий порядок выбора пространств.
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36528806
zaiets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vasilisAlexey IvanovЗачем добавлять with no log если спейс темповый и не логируется?

Правда, таблицы созданные без WITH NO LOG должны располагаться в другом, логируемом, спейсе, но входящем в список DBSPACETEMP. Если таких нет, то есть некий порядок выбора пространств.

Иногда, такой подход может приводить к проблемам производительности.
Как по мне лучше уж логгируемые таблицы создаются в пространстве, где создана БД.
Сам в свое время еще на 9.21 прописывал обычное пространство в DBSPACETEMP.
Но после ряда проблем производительности и ошибок связанных с работой
временных таблиц отказался.
Точных подробностей, к сожалению, не помню. Что-то связанное с тем, что временные объекты создавались не только во временном пространстве но и в простом + периодически были проблемв с созданием индексов для временных таблиц.
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36529108
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zaiets
Сам в свое время еще на 9.21 прописывал обычное пространство в DBSPACETEMP.

Мы боролись чуть по другому: выделяли обычное пространство именно под нужды временных логируемых таблиц (с ярким названием templog_dbs ), и прописывали его в DBSPACETEMP вместе с временными (нелогируемыми) пространствами...

А уже потом устроили рефакторинг исходников (потому как производительность прижала): попрописывали практически везде WITH NO LOG...

Параметр конфигурации сервера TEMPTAB_NOLOG (все временные создавать нелогируемыми, даже если разработчик не указал WITH NO LOG, вроде появился в 11.10) ситуацию не изменил: для той части разработчиков, которым нужна временная, но таки логируемая таблица, IBM клаузу WITH LOG не предложил :(.

Посему и возникают вопросы: как это так у ТП получилось забавно - и без WITH NO LOG, и в нелогируемом пространстве... Баг?

Хотя кто его знает, этот 9.3 да ещё и FC1....
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36529624
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey IvanovВывод по временным таблицам:

th_tmprun_1ff81411 SORTTEMP informix tmpdbs 1 0 1
таких 44 строки

_temptable journal www tmpdbs 1 0 0
таких около 43000 строк

На момент запуска было 4 открытых сессии от пользователя www
Хотелось бы все же увидеть картинку, о которой вы говорили вначале - т.е. после закрытия ВСЕХ сессий. Т.к. даже одна незавершенная сессия может давать огромное число временных таблиц и файлов.
Кстати, при такой активной работе с темпами вам бы очень не помешало распараллелить эти операции. т.е. сделать два или три временных пространства.
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36529657
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Ivanov
Есть одна особенность: часть веб-приложения активно работает с блобами. Когда ее ввели в продуктив начались эти проблемы. Другие части приложения тоже используют временные таблицы, но раньше таких проблем не было.
Потрусите девелоперов этого приложения - могут некорректно завершать соединения, оставлять курсоры незакрытыми, много тонокостей в работе с блобами - т.е. наехать на них и заставить их почитать доки и сделать рефакторинг. Можно просто попросить их сделать совсем простенькое тестовое приложение, использующее те же приемы работы, что и в продакшен, и проверить результат. Будут доказательства их криворукости.
Как выход сейчас - сделать еще один стандартный темповый dbspace и добавить еще один с логированием.
...
Рейтинг: 0 / 0
Очистка временного dbspace
    #36529671
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой
Мы боролись чуть по другому: выделяли обычное пространство именно под нужды временных логируемых таблиц (с ярким названием templog_dbs ), и прописывали его в DBSPACETEMP вместе с временными (нелогируемыми) пространствами...
А уже потом устроили рефакторинг исходников (потому как производительность прижала): попрописывали практически везде WITH NO LOG...

Хм, удивительно, что именно так я поступал еще лет 6-8 назад, вплоть до названия спейса :)
После 2-3-х летней борьбы с девелоперами практически все научились писать WITH NO LOG в нужных местах и необходимость в таком пространстве отпала почти во всех прикладухах, тем не менее, во многих инструкциях у заказчика (или в их головах) это требование (создавать templog_dbs хотя бы небольшого размера) так и осталось, что я периодически и видел.

Как правильно заметил zaiets, кроме положительных моментов были и небольшие проблемы с этим логируемым спейсом, о которых я тоже смутно помню, т.к. вылазили они только на одной системе, которая стояла в единичном экземпляре у заказчика. Но связано это было с тем, что сервер там часто падал, после рестарта сервер автоматически чистил темповые пространства, а откат/докат транзакций уже не мог нормально работать из-за отсутсвия некоторых логируемых таблиц....что-то такого плана.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Очистка временного dbspace
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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