powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Защититься от роста базы
25 сообщений из 50, страница 2 из 2
Защититься от роста базы
    #38954667
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Сисдба Мастеркеевич!
You wrote on 8 мая 2015 г. 14:36:26:

Сисдба Мастеркеевич> I/O error during "WriteFile" operation for file "D:\TEMP\FB_TABLE_3YWUTM"
> Error while trying to write to file
> Недостаточно места на диске.
TEMP на том же диске что и база?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38954675
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисдба МастеркеевичI/O error during "WriteFile" operation for file
"D:\TEMP\FB_TABLE_3YWUTM"
Error while trying to write to file
Недостаточно места на диске.
А кто-то тут утверждал, что диск не один и временные файлы лежат совсем отдельно...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38954691
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Сисдба Мастеркеевич!
You wrote on 8 мая 2015 г. 14:47:04:

Сисдба Мастеркеевич> Файл базы ведь не подрежешь, и к диску место не пришьешь.
касаемо "пришивания места к диску" ты глубоко заблуждаешься.
даже на win, не говоря уж про linux.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38954759
Сисдба Мастеркеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийHello, Сисдба Мастеркеевич!
You wrote on 8 мая 2015 г. 14:36:26:

Сисдба Мастеркеевич> I/O error during "WriteFile" operation for file "D:\TEMP\FB_TABLE_3YWUTM"
> Error while trying to write to file
> Недостаточно места на диске.
TEMP на том же диске что и база?
Физических дисков на сервере 8 штук. Из 6 сделан RAID-10, 2 - не в райде, для системы, резервных копий и прочего. База и темпы на райде, ибо он типа быстрый и умный.

Dimitry SibiryakovСисдба МастеркеевичI/O error during "WriteFile" operation for file
"D:\TEMP\FB_TABLE_3YWUTM"
Error while trying to write to file
Недостаточно места на диске.
А кто-то тут утверждал, что диск не один и временные файлы лежат совсем отдельно...
Я говорил о том, что это можно сделать.

МимопроходящийHello, Сисдба Мастеркеевич!
You wrote on 8 мая 2015 г. 14:47:04:

Сисдба Мастеркеевич> Файл базы ведь не подрежешь, и к диску место не пришьешь.
касаемо "пришивания места к диску" ты глубоко заблуждаешься.
даже на win, не говоря уж про linux.
В теории возможно многое.
На практике, в нашем случае, чтобы прирастить место, надо было:
1. Договориться с провайдером о физическом доступе к серверу (несколько часов)
2. Быстро найти дополнительные диски (хорошо, пусть они есть заранее запасенные)
3. Найти, куда засунуть эти диски на сервере. Хорошо, меняем полностью набор дисков в массиве.
4. Построить новый массив, скопировать туда (откуда-то) проблемную базу и еще 2 базы, которые там же были, тоже >100 Гб каждая. Базы эти мало используются, туда только заливаются данные, но они тоже нужны в работе.
5. Запустить всё в работу.

В итоге это всё выльется в целый рабочий день и не гарантирует неповторения ситуации.

К тому же, 170 Гб мусора в базе - не айс, он ведь и в копии попадает, их тоже где-то надо хранить.
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38954786
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисдба МастеркеевичЯ говорил о том, что это можно сделать.
Это нужно сделать. Вне зависимости от. А в твоём случае остаётся только повторить,
что временные блобы во временных файлах на том же диске - не помогут.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38954814
Сисдба Мастеркеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovСисдба МастеркеевичЯ говорил о том, что это можно сделать.
Это нужно сделать. Вне зависимости от. А в твоём случае остаётся только повторить,
что временные блобы во временных файлах на том же диске - не помогут.
Смотри.
Есть дисковое пространство ~800 Гб.
1 вариант: создаем один раздел на всё пространство, в нем живут и темпы, и база. Темпы - меняются, они могут как прирастать в объеме, так и уменьшаться. База - может только прирастать. Таким образом, мы имеем потенциальную возможность роста базы до ~800 Гб, с уменьшением места для темпов, что не сильно критично для работы (у нас нет больших сортировок и не пишем много во временные таблицы).
2 вариант: создаем 2 раздела, один для темпов, скажем, 100 Гб, второй - для базы, 700 Гб. Теперь мы имеем потенциальную возможность роста базы до ~700 Гб, с постоянным объемом места для темпов.

Во втором варианте мы искусственно уменьшаем предел роста базы за счет увеличения свободы для относительно малозначимых темп-файлов.

Теперь посмотрим, что было бы в моем случае, если бы временные блобы жили в темп-файлах: база бы не увеличилась до предела, а всё место заняли бы темпы. В таком случае кривой запрос просто обломится, коннект отвалится, темпы убьются, место освободится - вуаля, можно продолжать работать дальше.

Тот пользователь, у кого обломился запрос, прибежит к программисту жаловаться, что у него что-то там не открывается. Программист попробует воспроизвести и сразу увидит причину.
А сейчас пришлось за неимением времени и места на дисках убить распухшую базу, потратить немало времени на восстановление работоспособности сервера и проводить следствие по логам, чтобы понять, что же произошло.

ИМХО, хранение временных блобов в базе - это уязвимость сервера, существенная, хоть и редко встречающаяся на практике. Да и хранить в базе мусор, который нужен только на время запроса и более не потребуется никому и никогда - это расточительно.

Я понимаю, что сейчас в сервере с временными блобами ничего не изменить, можно не обвинять меня в том, что я чего-то требую :) Я хочу понять, как не допустить в будущем подобной ситуации, т.е. неконтролируемого и быстрого роста базы.
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38954826
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисдба МастеркеевичТеперь посмотрим, что было бы в моем случае, если бы временные
блобы жили в темп-файлах: база бы не увеличилась до предела, а всё место заняли бы темпы.
В таком случае кривой запрос просто обломится, коннект отвалится, темпы убьются, место
освободится - вуаля, можно продолжать работать дальше.
В твоём случае проблема возникла не из-за нехватки места под базу, а как раз из-за
нехватки места под временные файлы. Когда база упирается в свободное место, всё именно так
и происходит: кривой запрос обламывается, транзакция откатывается, место освобождается -
вуаля, можно ещё некоторое время поработать (по крайней мере на чтение). Временные файлы
используются в гораздо большем количестве случаев, поэтому из-за нехватки места в TEMP и
упало сразу всё.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38954850
Коваленко Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисдба Мастеркеевич Я хочу понять, как не допустить в будущем подобной ситуации, т.е. неконтролируемого и быстрого роста базы.

У меня неконтролируемый рост (тестовой) базы данных провоцируется(?) пулом подключений. Тоже, наверное, блобы место выжирают - не вникал.

Если пул выключить, то база не пухнет. Не пухла, по крайней мере, до прикручивания пула.

После перезапуска тестов база продолжает пухнуть.

Принудительную сборку мусора между запусками тестов я не делаю (лень / дешевле базу пересоздать). Фоновую сборку мусора не отключал.

Транзакции коммитятся.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
       Flags                   0
       Checksum                12345
       Generation              252957375
       Page size               8192
       ODS version             11.2
       Oldest transaction      252862203
       Oldest active           252862204
       Oldest snapshot         252862184
       Next transaction        252862224
       Bumped transaction      1
       Sequence number         0
       Next attachment ID      95149
       Implementation ID       26
       Shadow count            0
       Page buffers            0
       Next header page        0
       Database dialect        1
       Creation date           Apr 10, 2015 17:46:12

Как это лечить - ахез (без пула подключений все работает очень тоскливо, поэтому я его даже и не пробую отключать).

Соорудил выделенный раздел (>3TB) под тестовые базы и забил :)
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38954857
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Коваленко Дмитрий!
You wrote on 8 мая 2015 г. 17:12:47:

Коваленко Дмитрий> Соорудил выделенный раздел (>3TB) под тестовые базы и забил :)
маниак!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38954863
Сисдба Мастеркеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovСисдба МастеркеевичТеперь посмотрим, что было бы в моем случае, если бы временные
блобы жили в темп-файлах: база бы не увеличилась до предела, а всё место заняли бы темпы.
В таком случае кривой запрос просто обломится, коннект отвалится, темпы убьются, место
освободится - вуаля, можно продолжать работать дальше.
В твоём случае проблема возникла не из-за нехватки места под базу, а как раз из-за
нехватки места под временные файлы. Когда база упирается в свободное место, всё именно так
и происходит: кривой запрос обламывается, транзакция откатывается, место освобождается -
вуаля, можно ещё некоторое время поработать (по крайней мере на чтение). Временные файлы
используются в гораздо большем количестве случаев, поэтому из-за нехватки места в TEMP и
упало сразу всё.
Судя по логам, ошибки нехватки места начали появляться около 12.30. Окончательно всё упало около 15.30. Кривой запрос был запущен около 11.00.
Скорее всего, первый раз нехватка места произошла из-за частичного подрастания базы и существенного объема, занятого темпами. в 12.30 кривой запрос отвалился, темпы убились, но база не уменьшилась. Скорее всего, кривой запрос пытались запустить еще не раз (правда, я в логах нашел только один повторный запуск). В результате таких итераций база распухла до пределов всего раздела, места не осталось и работать стало невозможно.

Да, коннекты у нас осуществляются с отключенной сборкой мусора, ибо со сборкой работает медленнее.
Мусор убирается ночами во время свипа.

Вопрос: если бы коннект был со сборкой мусора, то при повторных запусках кривого запроса было бы использование того места в базе, которое было выделено под временные блобы в предыдущих попытках ?


авторКогда база упирается в свободное место, всё именно так
и происходит: кривой запрос обламывается, транзакция откатывается, место освобождается -
вуаля, можно ещё некоторое время поработать (по крайней мере на чтение)Каким образом место освобождается, если темпы на другом диске (ты ведь про этот вариант пишешь) ? Или ты имеешь в виду место под темпы ? В любом случае, работа только на чтение - не вариант.
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38954872
Коваленко Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийКоваленко Дмитрий> Соорудил выделенный раздел (>3TB) под тестовые базы и забил :)
маниак!

Увы, нет. И вообще - я уже ушел из Большого секса :)
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38954879
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисдба Мастеркеевичконнекты у нас осуществляются с отключенной сборкой мусора, ибо
со сборкой работает медленнее.
В морг. Вас уже ничто не спасёт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38954880
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Сисдба Мастеркеевич!
You wrote on 8 мая 2015 г. 17:22:37:

Сисдба Мастеркеевич> Да, коннекты у нас осуществляются с отключенной сборкой мусора,
> ибо со сборкой работает медленнее.
клиентские приложения спроектированы очень плохо.
или даже совсем никак.
какой разрыв в транзакциях набегает за день?

gstat -h
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38954881
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Коваленко Дмитрий!
You wrote on 8 мая 2015 г. 17:25:23:

Коваленко Дмитрий> Увы, нет. И вообще - я уже ушел из Большого секса :)
разработку своей машины Тьюринга ещё продолжаешь? ;)
или только саппорт?

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38954972
Коваленко Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийКоваленко Дмитрий> Увы, нет. И вообще - я уже ушел из Большого секса :)
разработку своей машины Тьюринга ещё продолжаешь? ;)
или только саппорт?


Если мне не изменяет память, LOA "машиной Тьюринга" (в 2007-ом) назвал мою дуболомную реализацию файлового кэша. Которую я еще пытался прикрутить к генератору индекса "полнотекстового поиска" по базе данных. Конкретно та реализация кэша умерла вместо со второй версией провайдера. В третьей - уже нормальная, "как у сервера". Запилена еще в 2010 году :)

Кстати, тогда проблема была связана с долбанным флагом FILE_FLAG_RANDOM_ACCESS. Из-за него выжиралась вся память. И все начинало работать именно как "машина Тьюринга"... Сейчас все работает достаточно красиво :)

---
Саппорта у меня практически нет. Не жалуются :)

Но до финиша пока еще далеко.

---
На "маньяка" (конкретно в данном случае) не тяну, потому что уже даже не тянет ... экспериментировать для локализации проблемы :)
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38954977
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Коваленко Дмитрий!
You wrote on 8 мая 2015 г. 18:46:06:

Коваленко Дмитрий> Если мне не изменяет память, LOA "машиной Тьюринга" (в 2007-ом) назвал
> мою дуболомную реализацию файлового кэша. Которую я еще пытался
> прикрутить к генератору индекса "полнотекстового поиска" по базе данных.
> Конкретно та реализация кэша умерла вместо со второй версией провайдера.
> В третьей - уже нормальная, "как у сервера". Запилена еще в 2010 году :)
>
> Кстати, тогда проблема была связана с долбанным флагом
> FILE_FLAG_RANDOM_ACCESS. Из-за него выжиралась вся память. И все
> начинало работать именно как "машина Тьюринга"... Сейчас все работает
> достаточно красиво :)счастливый человек...
Коваленко Дмитрий> Саппорта у меня практически нет. Не жалуются :)
счастье в квадрате!
Коваленко Дмитрий> Но до финиша пока еще далеко.
> ---
> На "маньяка" (конкретно в данном случае) не тяну, потому что уже даже не
> тянет ... экспериментировать для локализации проблемы :)
- моня, вы знаете, с вашей сарой спят все кому только ни хочется!
- ой вэй! как я их понимаю! мне и самому не хочется...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38956041
Сисдба Мастеркеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийHello, Сисдба Мастеркеевич!
You wrote on 8 мая 2015 г. 17:22:37:

Сисдба Мастеркеевич> Да, коннекты у нас осуществляются с отключенной сборкой мусора,
> ибо со сборкой работает медленнее.
клиентские приложения спроектированы очень плохо.
или даже совсем никак.
какой разрыв в транзакциях набегает за день?

gstat -h
Я так понимаю, надо непосредственно перед свипом смотреть:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
XXXXXXXXXX    Tue May 12 04:26:40 2015
        Sweep is started by SYSDBA
        Database "*******"
        OIT 871575354, OAT 871575355, OST 871575355, Next 871577539


XXXXXXXXXX    Tue May 12 07:13:06 2015
        Sweep is finished
        Database "*******"
        OIT 871615514, OAT 871615515, OST 871615507, Next 871615522
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38956121
Фотография Alexey Kovyazin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FBDataGuard мониторит свободное место для БД, темп-файлов, сервера.
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38956169
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Alexey Kovyazin!
You wrote on 12 мая 2015 г. 10:56:26:

Alexey Kovyazin> FBDataGuard мониторит свободное место для БД, темп-файлов,
сервера.ты ему вместо таблетки предлагаешь кушать градусник.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38956204
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийпредлагаешь кушать градусник.
Ну так это же классика: "и всем по порядку даёт шоколадки, и ставит, и ставит им
градусники." (с) КЧ
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38956849
Фотография Alexey Kovyazin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не помню из какого фильма, но вспомнилось:
- А почему вы градусник в задницу ставите?
- У нас военная медицина, больной должен понимать, что тут ему не курорт.
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38957108
Коваленко Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коваленко Дмитрий
Код: plaintext
1.
2.
3.
4.
5.
6.
       Oldest transaction      252862203
       Oldest active           252862204
       Oldest snapshot         252862184
       Next transaction        252862224
       Next attachment ID      95149
       Creation date           Apr 10, 2015 17:46:12


Вот та же самая база на текущий момент. Прошло два перезапуска тестов. Второй закончится вечером (идет сутки):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
        Flags                   0
        Checksum                12345
        Generation              295547676
        Page size               8192
        ODS version             11.2
        Oldest transaction      295419307
        Oldest active           295419308
        Oldest snapshot         295419304
        Next transaction        295419324
        Bumped transaction      1
        Sequence number         0
        Next attachment ID      128350
        Implementation ID       26
        Shadow count            0
        Page buffers            0
        Next header page        0
        Database dialect        1
        Creation date           Apr 10, 2015 17:46:12

База выросла еще на несколько десятков гиг.

Юзается суперклассик.

Сегодня попробую выполнить принудительную сборку мусора в тестовых базах и посмотрим - поможет это или нет :)
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38959395
Коваленко Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коваленко ДмитрийЮзается суперклассик.
Сегодня попробую выполнить принудительную сборку мусора в тестовых базах и посмотрим - поможет это или нет :)
Помогло. База перестала расти (размер не изменился ни на байт).

Сборка мусора выполнялась в монопольном режиме.
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38959428
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коваленко ДмитрийПомогло. База перестала расти (размер не изменился ни на байт).Не может быть !
...
Рейтинг: 0 / 0
Защититься от роста базы
    #38959444
Коваленко Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladКоваленко ДмитрийПомогло. База перестала расти (размер не изменился ни на байт).Не может быть !
Сам хренею.
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Защититься от роста базы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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