powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / При db2stop долго рос размер БД. Чтобы это могло быть ?
12 сообщений из 12, страница 1 из 1
При db2stop долго рос размер БД. Чтобы это могло быть ?
    #35615550
dealko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Описание длинное. Хочется разобраться что бы это могло быть.

DB2 9.1.2 под CentOS 5 на виртуальной машине с очень медленным вводом-выводом.

Сегодня в четыре наступил коллапс. Все стало работать ужасно медленно. Кое как получалось работать только от рута. Результат любых команд к DB2, даже db2 list applications дождаться было невозможно. Поэтому не удалось ничего помониторить кроме того что записалось в db2diag.log

С причиной разобрались быстро - активный ввод-вывод.

Остановили все сервера приложений.
Отрубили на уровне операционной системы все обращения к серверу.
СУБД по прежнему висит.

Первая мысль - логи какие-то бакапит. Посмотрели db2diag.log - пытался архивировать логи базы для которой не существует пути LOGARCHMETH1 (восстановлена с другого сервера). Путь создали. Один лог заархивировался. Больше не требовалось. Сервер такой же мертвый.

В db2diag.log больше ничего нового не пишет.

Начали стопать db2stop force.

Висит. Ввод-вывод по прежнему бешеный. Увеличивается объем одной базы (PBMAX, не та где логи пытались архивироваться). C 7Гб выросла до 8,3Гб. Потом директория уменьшилась до копеек. DB2 остановился и наступило счастие. Полчаса с момента стопа прошло где-то. После запуска все работает нормально. Позже определили что после запуска db2stop росла по объему директория с временным табличным пространством.

Чтобы это могло быть? SA сделал предположение (пока DB2 не остановился) что у DB2 сьехала крыша и он в цикле сам добавляет данные. Ведь все коннекты обрублены :-)

На базе логи транзакций циклические.

Диаг-лог весь не выложить. Там почти все забито попытками архивировать логи.

В db2diag.log накопал из стоящего такие вещи.
Несколько раз в разное время с 12 часов. Последний раз в 15-58:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 2008 - 10 - 24 - 15 . 58 . 06 . 507949 + 240  I377112893E484     LEVEL: Error
PID     :  17138                 TID  : 47467532903632PROC : db2agent (PBMAX)
INSTANCE: db2inst1             NODE :  000          DB   : PBMAX
APPHDL  :  0 - 985                 APPID:  10 . 0 . 3 . 58 . 59908 . 081024114911 
AUTHID  : PAN
FUNCTION: DB2 UDB, common communication, sqlcctcptest, probe: 11 
MESSAGE : Detected client termination
DATA # 1  : Hexdump,  2  bytes
0x00007FFFCD6D32C8 :  3600             

и еще

Код: plaintext
 2008 - 10 - 24 - 16 . 01 . 10 . 288052 + 240  The self tuning memory manager is shutting down due to an unexpected error.
...

Насчет коллапса ко мне обратился SA в 16-09.

Судя по данным БД в 16-03 была запущена и закрыта последняя сессия.

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

Транзакции все короткие. На несколько гигов никак не тянут.

С этой базой тренировались запускать нового робота которые добавляет в базу информацию. Это так на всякий случай.

На уровне логов системы ничего интересного нет.

Что с базой нужно делать чтобы так получилось ?
...
Рейтинг: 0 / 0
При db2stop долго рос размер БД. Чтобы это могло быть ?
    #35615670
Фотография Абсолют
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень интересно. Жду Марка, он профи.
...
Рейтинг: 0 / 0
При db2stop долго рос размер БД. Чтобы это могло быть ?
    #35617279
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dealko...
Результат любых команд к DB2, даже db2 list applications дождаться было невозможно.
...
С причиной разобрались быстро - активный ввод-вывод.
...
Позже определили что после запуска db2stop росла по объему директория с временным табличным пространством.
...
Что с базой нужно делать чтобы так получилось ?Не видя этого самому, трудно сказать.
Можно было запустить
db2pd -everything -file some_file.txt
и там посмотреть.
Системное табичное пространство (если именно оно, а не пользовательское временное пространство у вас росло) может использоваться, например, при сортировках, хеш-соединениях, если они в sortheap не влезают.
Я видел такой рост системного временного пространства, когда оптимизатор выбирал неправильный план. Причем в одном случае в несложном запросе причина была в отсутствии статистики на маленькую справочную таблицу.
В вашем случае, если это пространство с file system caching, то у вас мог к тому же еще и начаться интенсивный свопинг. Часто это и приводит к тому, что система "замирает"...

P.S.: Никогда не слышал о том, чтобы db2 в состоянии "съехавшей крыши" в цикле сама начинала добавлять данные. :)
...
Рейтинг: 0 / 0
При db2stop долго рос размер БД. Чтобы это могло быть ?
    #35617656
dealko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Марк, табличное пространство системное временное.

А рост временного системного табличного простраства при сортировках, хеш-соединениях возможен после запуска db2stop force ?

Свопа точно не было - смотрели.
...
Рейтинг: 0 / 0
При db2stop долго рос размер БД. Чтобы это могло быть ?
    #35619778
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
force applications (надо думать, db2stop force делает то же самое) ведь асинхронная команда. Когда вы её выполнили, это не означает, что коннекты убиты немедленно. Нет, запросы всё ещё могут выполняться в течение какого-то времени.
...
Рейтинг: 0 / 0
При db2stop долго рос размер БД. Чтобы это могло быть ?
    #35620526
dealko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По опыту заметил, что запросы выполняются несколько секунд после force. Ну может минут.
А вот десятки минут и часы после force занимают только жизненно важные для целостности данных операции с точки зрения DB2. Например:
1. Бакап архивных логов.
2. Попытка сделать бакап логов если не готово устройство (ждет пока вставят новый картридж например).
3. Rollback для длинной транзакции.
4. Commit для длинной транзакции. Не совсем уверен что DB2 будет завершать транзакцию. Скорее всего откатит.

Виктор, я правильно понимаю, что Select на пару часов с большими сортировками не будет выполняться до конца при db2 force ?

При наших условиях с короткими транзакциями, маленькими файлами журналов не могу придумать где найти "великие" запросы которые будут сортировать данные занимая при этом гигабайты во временном табличном пространстве.

Из всех вариантов наиболее правдоподобным кажется списание проблемы на неверный план доступа, выбранный DB2. Минус ситуации в том что такая болезнь не лечится...
Хотя официально можно заявить что лечится сбором статистики. Но у меня сбор статистики настроен автоматический и проблем быть не должно. Это скорее риторика...

Достоверного объяснения проблеме пока нет. А значит не ясно как избежать такой проблемы в дальнейшем. Но это уже скорее риторика.
...
Рейтинг: 0 / 0
При db2stop долго рос размер БД. Чтобы это могло быть ?
    #35622493
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dealko
Виктор, я правильно понимаю, что Select на пару часов с большими сортировками не будет выполняться до конца при db2 force ?

Ну, у меня такого не было. Надо как-нибудь попробовать.
[quot]
Из всех вариантов наиболее правдоподобным кажется списание проблемы на неверный план доступа, выбранный DB2. Минус ситуации в том что такая болезнь не лечится...
[/quot]
Почему же не лечится? Бывают и средства помимо хинтов. К примеру, индексирование, секционирование (MDC и VIEW с Union all), физическая реорганизация с переупорядочиванием.
[quot]
Хотя официально можно заявить что лечится сбором статистики. Но у меня сбор статистики настроен автоматический и проблем быть не должно. [/quot]
Ну как же не должно? Оптимизатор, пользуясь статистикой, рассчитывает на "средний" случай, а ваш случай может быть крайний. (Да и детальность статистики бывает разная).
...
Рейтинг: 0 / 0
При db2stop долго рос размер БД. Чтобы это могло быть ?
    #35623673
dealko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Виктор, в моей ситуации размер системного временного тейблспейса в десятки раз превысил размер БД.

Таблички маленькие, выполнялись короткие транзакции, которые помещаются в журнал размером 4Мб.

В этом контексте говорить о реорганизации данных, индексировании, MDC смысла нет.

Оптимизатор выбирает не "средний" план доступа а в соответствии с указанным классом оптимизации. Хотя это тоже не важно в данном случае.

Марк говорит о сбое СУБД:
Mark Barinstein Я видел такой рост системного временного пространства, когда оптимизатор выбирал неправильный план. Причем в одном случае в несложном запросе причина была в отсутствии статистики на маленькую справочную таблицу.

Я со своей стороны хочу понять насколько часто мне рассчитывать на такие "сюрпризы". За пять лет работы с DB2 беспричинных аварий типа вышеописанной у меня не было ни разу. Причина всегда находилась и было ясно что сделать чтобы авария не повторялась.

Сейчас причина непонятна. Объяснения аварии нет. А это есть плохо.
...
Рейтинг: 0 / 0
При db2stop долго рос размер БД. Чтобы это могло быть ?
    #35625972
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
аналогичная ситуация была у нас на v.7
OS WinSx32 с большим буфером размещенным в верхней памяти AWE.

при длинных транзакциях на удаление данных и общей нагрузке в виде
коротких запросов. В db2diag были рекомендации на увеличение IO_CLEANERS
хотя их и так было предостаточно.

я полагаю, что это был свопинг "грязных" страниц из буфер пула на диск
ничего другого придумать не могу ((((.
поправь, те кто знает верна ли моя теория???

и еще, почемуто, уверен, что у Вас была длинная транзакция, которая
явно не влезала в Ваш объем логов (кол-во активных логов * размер файла лога)
...
Рейтинг: 0 / 0
При db2stop долго рос размер БД. Чтобы это могло быть ?
    #35626147
dealko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подобное поведение DB2 при длинных транзакциях у меня было.

Оно легко объясняется - целостность данных превыше всего. Поэтому при попытке остановить DB2 начинается длинный Rollback.

Мои первые мысли были как раз про длинную транзакцию, но..

У меня как и было по дефолту для базы 3 архивных лога по 4 метра.
По опыту знаю что длинная транзакция забьет такие логи очень быстро. И так же быстро откатится с ошибкой что в логи не поместилась.

Тут что-то другое...
...
Рейтинг: 0 / 0
При db2stop долго рос размер БД. Чтобы это могло быть ?
    #35626230
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я немного в кучу все свалил........... )))))

может кто нибудь подскажет,
1. делает ли DB2 своп "грязных" страниц на диск при заполненном буф.пуле
2. если делает в какое таб.пространство он делает для вер. 9.1

что касается авторСвопа точно не было - смотрели. то Вы наверное
говорите про своп операционки.
...
Рейтинг: 0 / 0
При db2stop долго рос размер БД. Чтобы это могло быть ?
    #35626432
xz321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор1. делает ли DB2 своп "грязных" страниц на диск при заполненном буф.пуле

В таком случае возникает ситуация Dirty Page Steal, ее можно увидеть в мониторе.

1) BP full
2) Необходимо подгрузить с диска страницу #1 для продолжения обработки транзакции
3) DB2 ищет по критериям ищет грязную страницу #2 (victim page)
4) Данная грязная страница используя sync write записывается на диск
5) Cтраница #1 читается с диска и перезаписывает в BP страницу #2

Данная ситуация очень негативно влияет на производительность. Играться нужно с параметрами
NUM_IOCLEANERS
chngpgs_thresh

http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/r0001252.htm


Поскольку страница принадлежит Таблице, а таблица принадлежит табличному пространству, то
записывает грязная страница туда откуда была прочитана
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / При db2stop долго рос размер БД. Чтобы это могло быть ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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