Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
колбасит tempdb-резкое увеличение в размерах- help!
|
|||
|---|---|---|---|
|
#18+
Выполнил поиск 'tempdb' на форуме- резалтов не нашел- создаю новую тему;) Сегодня сижу на работе, ни кого не трогаю, RTFM к своему Sybase 11.9.2.6 EFB 1409 (ebf на вскидку)@Windows 2000 advanced server. Основная база данных- 50 ГБ (39 ГБ данных и 12 Гб под лог) Tempdb- 3 ГБ (1 - лог, 2- данные) Идут совершенно плановые операции, всё как обычно, без эксцессов, авральных тысячестраничных отчетов и прочей лабуды. Вдруг вылетает что-то вроде "transaction log on tempdb is full" и так далее. Дивлюсь (размер tempdb 1GB log, 2GB- data, галочка Truncate log on checkpoint пробита), но, делать нефиг (все зависли)- создаю девайс (ещё 2 ГБ под лог), добавляю, вроде нормально. Через часок- едрён батон, опять то же самое. Ещё девайс на 2 Гб под лог. Смотрю в централе на лог-сегмент в tempdb и начинаю делать в тапки- лог растёт со скоростью мегов по 50 в минуту. Чешу репу, надо что-то делать, решаю сделать ему truncate (dump transaction tempdb with no_log или как там). Сбрасываю галку "truncate log on checkpoint", делаю задуманное. Не помогает. Растёт, сабака, как на дрожжах. Думаю, ладно, сделаю полноценный dump transact tempdb. Делаю. Получаю файлик на 6,5 ГБ и.... НИФИГА. Лог растёт, не обрезается. Через 10 минут после всё САМО_СОБОЙ возвращается в нормальное состояние, как и положено (штатный режим)- log- 20 mb, data- 13 mb. В результате имею афигительно раздутую до 7 GB tempdb (пересоздам, конечно) и кучу неразрешенных вопросов. Господа знатоки, внимание, вопросы: 1. Це шо такое було? Кто-нибудь такое видел? 2. Как работает галка "truncate on checkpoint" на tempdb? Подумайте, вопрос не простой. Наблюдаю в централе ( в течении 5-ух минут), как ДАЖЕ БЕЗ НЕЁ происходит "обрезка" лога в сегменте лога. Т.е. 0:00 - лог 60 мб, 2:30 - лог 10 мб и так далее. Логсегмент хоть и на одном девайсе с данными, но в segmap'ах твёрдая 4-ка и никаких 7-рок... 3. Как бы грамотнее, быстрее и лучше пересоздать tempdb? (чур, мастера не предлагать пересоздавать, ну только на крайняк). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2005, 01:21 |
|
||
|
колбасит tempdb-резкое увеличение в размерах- help!
|
|||
|---|---|---|---|
|
#18+
griniland1. Це шо такое було? Кто-нибудь такое видел? Скорее всего, кто-то забыл закрыть транзакцию, и она длилась, и длилась, и длилась, а потом - бах и закончилась. griniland 2. Как работает галка "truncate on checkpoint" на tempdb? Подумайте, вопрос не простой. Наблюдаю в централе ( в течении 5-ух минут), как ДАЖЕ БЕЗ НЕЁ происходит "обрезка" лога в сегменте лога. Т.е. 0:00 - лог 60 мб, 2:30 - лог 10 мб и так далее. Я бы рекомендовал помимо truncate on checkpoint выставлять еще галку abort transaction on full log на tempdb. Тогда транзакция просто грохнется. Что на счет "truncate on checkpoint" , то надо иметь в виду два момента. Удаляться из лога могут только неактивные (завершившиеся или откатившиеся) транзакции. В вашем случае она могла просто еще длиться. При truncate on checkpoint лог обрезается не на всяком checkpoint, а на специальном checkpoint, коротый делает специальный системный процесс -- Housekeeper. Т.е. если просто сделать в tempdb checkpoint , ничего не обрежется. griniland 3. Как бы грамотнее, быстрее и лучше пересоздать tempdb? . Перегрузить сервер. Единственный способ пересоздать tempdb. Правда, в 12.5. есть множественные tempdb, но это ж не 11.9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2005, 19:36 |
|
||
|
колбасит tempdb-резкое увеличение в размерах- help!
|
|||
|---|---|---|---|
|
#18+
MasterZiv griniland1. Це шо такое було? Кто-нибудь такое видел? Скорее всего, кто-то забыл закрыть транзакцию, и она длилась, и длилась, и длилась, а потом - бах и закончилась. либо кто-то "не попал" в запросе ... взял какую-нить большую табличку несколько раз и непопал в условии джойна (либо случайно забыл условие) - и получили умножение таблицы ;) MasterZiv griniland 2. Как работает галка "truncate on checkpoint" на tempdb? Подумайте, вопрос не простой. Наблюдаю в централе ( в течении 5-ух минут), как ДАЖЕ БЕЗ НЕЁ происходит "обрезка" лога в сегменте лога. Т.е. 0:00 - лог 60 мб, 2:30 - лог 10 мб и так далее. Я бы рекомендовал помимо truncate on checkpoint выставлять еще галку abort transaction on full log на tempdb. Тогда транзакция просто грохнется. Что на счет "truncate on checkpoint" , то надо иметь в виду два момента. Удаляться из лога могут только неактивные (завершившиеся или откатившиеся) транзакции. В вашем случае она могла просто еще длиться. При truncate on checkpoint лог обрезается не на всяком checkpoint, а на специальном checkpoint, коротый делает специальный системный процесс -- Housekeeper. Т.е. если просто сделать в tempdb checkpoint , ничего не обрежется. MasterZiv [quot griniland] 3. Как бы грамотнее, быстрее и лучше пересоздать tempdb? . Перегрузить сервер. Единственный способ пересоздать tempdb. Правда, в 12.5. есть множественные tempdb, но это ж не 11.9. после перезапуска база tempdb создается по образу и подобию БД model (содержание) ... а размер остается тот же ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 10:41 |
|
||
|
колбасит tempdb-резкое увеличение в размерах- help!
|
|||
|---|---|---|---|
|
#18+
Откат транзакции при abort transaction on full log в некоторых случаях может длится ооочень долго... (по-крайней мере на 12.0) Не знаю, есть ли на 11.9 трешхолды, но если есть - рекомендую повесить на заполнение половины logsegment процедуру оповещения DBA, а на достижение критического размера - написать процедуру-убивалку давно открытых транзакций с большим IO (точно определить виновника не просто, но иногда лучше убить невиновного, чем допустить простой сервера). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 15:00 |
|
||
|
колбасит tempdb-резкое увеличение в размерах- help!
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. Знаю так: Есть параметр настройки сервера: recovery interval in minutes Если в логе много незаписанных на диск транзакций то recovery interval увеличивается и Сheckpoint вызывается системой, что бы 'recovery interval in minutes' остался верен себе. При большой активности на сервере Сheckpoint чаще . При низкой активности на сервере Сheckpoint реже. .. trunc log on chkpt усекает журнал транзакций, если он содержит 50 или более строк на момент выполнения автоматической контрольной точки. Процесс обрезки лога просто привязывается к Сheckpoint. Системный процесс -- Housekeeper может чаво нибудь системное проделать во время простоя сервера Например собрать грязные страницы, что уменшит пиковую нагрузку при Сheckpoint ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 13:12 |
|
||
|
колбасит tempdb-резкое увеличение в размерах- help!
|
|||
|---|---|---|---|
|
#18+
ок, всем спасибо, более-менее ясно, окромя того, какая козлина мне такую подставу сделала=). Чего не ясно- ПОЧЕМУ он всё-таки не резалсо по dump transaction tempdb to "xxx". Вы себе представляете транзакцию длинною в 6 Гигабайт(это не опечатка!!??!)=) Второй момент, почему в tempdb и без галки truncate on checkpoint происходит отсечение лога? (ну это даже хорошо, но зачем на ней тогда эта галка, если и без неё все также рабит) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2005, 01:51 |
|
||
|
колбасит tempdb-резкое увеличение в размерах- help!
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. Но весь лог в 6 гб может держать транзакция в 10 байт У вас периодически запускается длинная транзакция и при высокой активности на сервере переполняеться лог. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2005, 09:55 |
|
||
|
колбасит tempdb-резкое увеличение в размерах- help!
|
|||
|---|---|---|---|
|
#18+
козлина мне такую подставу сделала=). Ваше приложение Чего не ясно- ПОЧЕМУ он всё-таки не резалсо по dump transaction tempdb to "xxx". Вы себе представляете транзакцию длинною в 6 Гигабайт(это не опечатка!!??!)=) Да, представляю. Я могу пересказать известную хохму, которую рассказывал , кажется, Rob Verschoor про склад с On-line отслеживанием перемещений товаров, которые они запустили уже в промышленную эксплуатацию, потратив кучу времени на заполнение начальных данных (склад при этом несколько дней стоял, я полагаю). Утром они запустили это дело, и все работало хорошо, но ... только до обеда, пока не переполнился лог транзакций. После переполнения лога все транзакции ( а на самом деле она была одна !!!) откатились обратно. Кто-то забыл где-то сказать commit. Второй момент, почему в tempdb и без галки truncate on checkpoint происходит отсечение лога? Нет, без галки не происходит. Вы что-то перепутали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2005, 09:58 |
|
||
|
колбасит tempdb-резкое увеличение в размерах- help!
|
|||
|---|---|---|---|
|
#18+
MasterZiv...почему в tempdb и без галки truncate on checkpoint происходит отсечение лога? Нет, без галки не происходит. Вы что-то перепутали. А я где-то прочитал, что режим truncate on checkpoint в tempdb включен всегда, независимо от состояния галочки. Или может в новых версиях это уже не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2005, 11:01 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=33330269&tid=2013316]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
82ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 441ms |

| 0 / 0 |
