|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
вводная: есть ABS (Automated Bank System), в которую кроме всего прочего складываются фотографии клиентов, а также скан-копии их паспортов. дабы не засирать основную базу, содержащую Financial Data, создана отдельная база для BLOB. при этом, чтобы обмануть клиентское приложение, складирование в отдельную базу фоток происходит в триггерах через Cross-Database запросы. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62.
описание: я на уровне триггеров перехватываю BLOB, скирдую его в отдельную базу, а в основной за-NULL-яю. ожидаемое поведение: т.к. фото сперва попадает в основную базу, то припухнет база на DatabaseGrowIncrement из конфига чтобы вместить фото, ну и чёрт с ней. потом же она всё-равно складирует во внешнюю. фактическое поведение: база всё равно пухнет с очень большой скоростью. вот, за неделю на отделении оно распухло до 2,5Гб файл базы. обыкновенный backup-restore привёл базу в нормальное состояние 403 Мб. вопрос: я так понял, что моё решение складывать фотки в отдельную базу для данного вопроса (роста файла БД) - не поможет? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 10:59 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
уточню вопрос: получается, что удалённые страницы Firebird повторно не использует, если позволяет место вместить данные? он всё равно захватывает новые? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 11:02 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
Не проверял, но такое впечатление, что присваивание NULL в блоб-поле в триггере не приводит к физ. удалению блоба. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 11:06 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
Можешь сделать валидацию такой распухшей БД ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 11:07 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
hvladМожешь сделать валидацию такой распухшей БД ? gfix.exe -validate ...... >1.log gfix.exe -validate -full .....>full.log выдают пустые файлы. в консоль тоже ничего не пишут. версия 2.5.7.27050, собирал сам стандартным BAT "искаропки" при помощи M$ Visual Studio 2010 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 12:13 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
PEAKTOPвыдают пустые файлы. firebird.log читай. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 12:38 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, а там вообще ничего нет, кроме стандартной socket-ошибки Код: plaintext 1. 2.
я на неё забил. больше - ничего. --------- а грузят фото в базу постоянно с 07:00 до 19:00. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 13:15 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
PEAKTOPбольше - ничего.Странно. Я чуть позже попробую воспризвести. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 14:39 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
ещё один пример в студию. итак, раньше мы анализировали базу данных удалённого "Отделения". кроме всего прочего, есть ещё и "ГлавнаяБаза", являющаяся алгебраической суммой баз "Отделений". через Cross-Database запросы в "ГлавнуюБазу" планировщик заданий через BAT+isql по таймеру затягивает данные со всех удалённых "Отделений", в том числе, и фотографии клиентов. аналогично реализован механизм хранения фотографий в отдельной базе данных, т.е. рядом с файлом "ГлавнаяБаза.FDB" лежит монстр "ГлавнаяБаза_BLOB.FDB" гигов на 100. штатный размер файла "ГлавнаяБаза.FDB" порядка 4 ГБ. после недели работы файл распух до 8ГБ. обыкновенный backup-restore возвращает всё на место, размер снова порядка 4 ГБ. --- т.е. по ходу получается, что страницы за-NULL-енного БЛОБа ядром не помечаются, как удалённые. или ядро не хочет почему-то их потом повторно использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2017, 13:04 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
а утечки хэндлов на второй БД не может быть ? есть какие-нибудь утилиты, чтобы посмотреть сколько активных BLOB HANDLE выделено сервером ? может быть там клиент не закрывает транзакции или делает update or insert .... RETURNING BLOB_COLUMN ? ну и, соотв, если ПЕРЕЗАПУСТИТЬ службу Firebird, отвечающую за БД, и натравить на эту БД / эти таблицы свиртуальными БЛОБами sweep? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2017, 13:19 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
Ariochа утечки хэндлов на второй БД не может быть ? на первой, конечно ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2017, 13:20 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
PEAKTOP, пиши, наверное, в трекер. С простым примером - было бы идеально. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2017, 13:32 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
Пока что могу только посоветовать, как это обойти. Или и сам знаешь ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2017, 13:41 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
hvladПока что могу только посоветовать, как это обойти. Или и сам знаешь ? :) да на фиг оно надо ещё этой фигнёй заморачиваться. в 02:00 робот теперь делает не только backup, но и restore. пока так. а там, дальше - "или ишак помрёт, или падишах". =) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2017, 10:20 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
hvladпиши, наверное, в трекер. С простым примером - было бы идеально. хорошо, пошёл в трекер. простой пример, наверное, не получиться, придётся привести полный DDL-SQL, как было написано выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2017, 10:22 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
PEAKTOPя на уровне триггеров перехватываю BLOB, скирдую его в отдельную базу, а в основной за-NULL-яю. я бы советовал перечитать http://www.ibase.ru/dbgrowth/ ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2017, 11:22 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
читал когда-то. ИМХО, статья актуальная, но несколько неполная. я бы добавил (чисто из практики) туда нулевой пункт: 0.Смотреть механизм логгирования!!!адынадын т.е. если в базе ручками, скриптом или тулзой наколотили триггеров вроде Код: sql 1. 2. 3. 4. 5. 6. 7.
нужно задаться вопросом: а не было ли массового UPDATE какой-нибудь мега-таблицы? практически в 99% случаев была какая-то реструктуризация БД (добавили поле и решили инициализировать), а логгирование отключить забыли. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2017, 12:23 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
PEAKTOP, в статье речь не про разовые случаи, на которые можно наплевать. А про постоянный рост БД из-за временных блобов. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2017, 13:14 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
kdvА про постоянный рост БД из-за временных блобов. Формально, они у него не должны плодиться, потому что наружу из триггера они не уходят (внешнее подключение живёт "внутри" триггера, и потому тоже не в счёт). А реально - похоже, что в FB где-то пропустили работу со счетчиками ссылок в BLOB handle. Как хорошо в Delphi, где это работой компилятор занимается ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2017, 15:03 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
AriochА реально - похоже, что в FB где-то пропустили работу со счетчиками ссылок в BLOB handle. Нет никакого счётчика ссылок. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2017, 15:07 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
AriochФормально, они у него не должны плодиться, потому что наружу из триггера они не уходят что значит "формально"? У него в триггер приезжает содержимое записи, с блобом. Блоб не в воздухе же существует, он уже записан как временный. Ну присвоили ему null в триггере, и что? Если блоб временный, так он удаляется или при закрытии транзакции, или при закрытии коннекта. Кстати, воспроизводимый пример можно было бы легко сделать. В смысле, сделать зануление блоба в триггере, а update-ом пихать туда постоянно килобайт по 10-20. Ну и посмотреть, когда пухнет, и когда освобождается. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2017, 15:14 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
Сисдба Мастеркеевич 12623305 О как бывает ! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2017, 18:26 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
hvladСисдба Мастеркеевич 12623305 О как бывает ! Вторая пятилетка ("работе в эту сторону") т.е. уже пошла. :D ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2017, 20:09 |
|
|
start [/forum/topic.php?fid=40&msg=39526923&tid=1561397]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 158ms |
0 / 0 |