|
Пухнет база от 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 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
Guest7777, не вижу этого в трекере ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2017, 20:48 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
hvladне вижу этого в трекере Если честно, тогда убрали из триггеров, проблема ушла. Потом забыл вобще о проблеме. Да и к тому же сам hvlad написал "будем искать" :) Про трекер я даже и не подумал. Если что, Микросекунда - это был я. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2017, 08:20 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
Сисдба Мастеркеевич, Добавь хотя бы сейчас, не сочти за труд. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2017, 09:29 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
hvladпиши, наверное, в трекер. С простым примером - было бы идеально. в трекер, так в трекер. CORE-5625 Модератор: Давай всё же без 5-го размера обойдёмся ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2017, 09:34 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
Сисдба МастеркеевичЕсли честно, тогда убрали из триггеров, проблема ушла. Потом забыл вобще о проблеме. Да и к тому же сам hvlad написал "будем искать" :)Значит не нашёл, так тоже бывает Проблема вылезла второй раз за пять лет, что сказать... это не значит, что её не нужно решать, кстати :) PEAKTOPв трекер, так в трекер. CORE-5625 Теперь не забудется, спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2017, 11:43 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
PEAKTOP CORE-5625 У кого-нибудь получилось прочитать? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2017, 15:53 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
аффтар зазря задрал Security Level, простые смертные читать не могут :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2017, 16:07 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
dimitrаффтар зазря задрал Security Level, простые смертные читать не могут :-) Аутентифицированные смертные тоже. Его и в списке тикетов нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2017, 17:19 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
Hommer, да это он поставил Security Level только для админов трекера или разработчиков. Надо было None оставлять, если там ничего секретного нет ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2017, 17:24 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
Видимо, попросил чего-то неприличного. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2017, 17:55 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
dimitrаффтар зазря задрал Security Level, простые смертные читать не могут :-) WildSeryВидимо, попросил чего-то неприличного. и сразу же начали подкалывать. да, лоханулся я с SecurityLevel, чего-то попутал его с AssignedTo. да, на те же грабли уже во второй раз (первый раз было, когда я тут собирал подписи на свою хотелку CORE-5581 ). зато я в трекер по пустякам всякую *** не пишу, а только после обсуждения здесь и только после того, как об этом прямо скажут hvlad или dimitr . ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2017, 10:29 |
|
Пухнет база от BLOB
|
|||
---|---|---|---|
#18+
Безотносительно починки бага в ФБ могу предложить автору темы попробовать альтернативный способ организации работы. В Ред Базе Данных (2.5 и 2.6) есть функционал по хранению блобов в отдельных внешних файлах. Для этого там реализованы встроенные функции: create_file, read_file, delete_file которые позволяют сохранять содержимое блоб-полей в отдельные файлы, считывать их и удалять файлы с диска. Также есть дополнительный конфигурационный файл directories.conf, в котором настраиваются алиасы для каталогов, где будут хранится файлы. Эти алиасы могут использоваться при вызове функций для работы с внешними файлами. Возможна настройка произвольного количества каталогов для каждой БД на сервере. Краткое описание функций есть в doc/sql.extensions/README.builtin_functions.txt каталога установки Ред Базы. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2017, 11:54 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1561397]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
others: | 308ms |
total: | 477ms |
0 / 0 |