Большой размер БД

Администирование клиентской и серверной части InterBase, Firebird, Yaffil. Настройка файла конфигурации и т.п.

Модераторы: kdv, Alexey Kovyazin

Ответить
Guardian777
Сообщения: 33
Зарегистрирован: 09 июл 2009, 14:57

Большой размер БД

Сообщение Guardian777 » 27 мар 2012, 11:59

Добрый день.
Столкнулся со следующей проблемой.
Firebird 2.5
Windows 7
Имеется база данных размером 1,3 Гб.
gfix ошибок не находит. резервирование и восстановление с игнорированием ошибок тоже результата не дает.
Но если извлечь данные в скрипт и создать новую БД на основе этого скрипта то ее размер 20 мб
Вот статистика из IBAnalist-a

Database header page information:
Flags 0
Checksum 12345
Generation 148
Page size 4096
ODS version 11.2
Oldest transaction 77
Oldest active 137
Oldest snapshot 137
Next transaction 138
Bumped transaction 1
Sequence number 0
Next attachment ID 11
Implementation ID 16
Shadow count 0
Page buffers 3000
Next header page 0
Database dialect 3
Creation date Mar 27, 2012 10:41:55
Attributes force write, no reserve

Variable header data:
Sweep interval: 20000

В чем может быть проблема ?
Заранее благодарен за ответ

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Большой размер БД

Сообщение Dimitry Sibiryakov » 27 мар 2012, 14:45

Проблема в том, что нет ДБА, а разработчик приложения не читал http://ibase.ru/develop.htm

Guardian777
Сообщения: 33
Зарегистрирован: 09 июл 2009, 14:57

Re: Большой размер БД

Сообщение Guardian777 » 27 мар 2012, 15:14

Dimitry Sibiryakov писал(а):Проблема в том, что нет ДБА, а разработчик приложения не читал http://ibase.ru/develop.htm
Во первых такое случается только на одном месте, на остальных где работает эта база все в порядке.
Во вторых указать данную ссылку это все равно что указать www.yandex.ru, я бы попросил более конкретный ответ

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Большой размер БД

Сообщение kdv » 27 мар 2012, 23:54

1.3 гига это даже не детский размер, это просто копейки. я для тестов такой размер уже давно не возьму, минимум 10 гиг.
дальше. у вас в базе указан флаг no reserve, что нормально только для баз, которые записываются на cd/dvd в read-only режиме.
И, ФБ 2.5 расширяет БД порциями.
В общем, советую действительно что-нибудь почитать, вообще, и не морочить людям голову. Я, например, так и не понял, что у вас за проблема. Насколько я вижу, абсолютно никакой проблемы НЕТ.
Очевидно, вы залили в базу какие-то данные, потом удалили, но естественно, что база уменьшаться в размере не будет. Советую почитать FAQ
www.ibase.ru/ibfaq.htm

Guardian777
Сообщения: 33
Зарегистрирован: 09 июл 2009, 14:57

Re: Большой размер БД

Сообщение Guardian777 » 28 мар 2012, 09:30

kdv писал(а):1.3 гига это даже не детский размер, это просто копейки. я для тестов такой размер уже давно не возьму, минимум 10 гиг.
дальше. у вас в базе указан флаг no reserve, что нормально только для баз, которые записываются на cd/dvd в read-only режиме.
И, ФБ 2.5 расширяет БД порциями.
В общем, советую действительно что-нибудь почитать, вообще, и не морочить людям голову. Я, например, так и не понял, что у вас за проблема. Насколько я вижу, абсолютно никакой проблемы НЕТ.
Очевидно, вы залили в базу какие-то данные, потом удалили, но естественно, что база уменьшаться в размере не будет. Советую почитать FAQ
http://www.ibase.ru/ibfaq.htm
Спасибо за ответ.
Проблема в том что непонятно из за чего такой объем базы. Я делаю бекап/рестор а размер так и не уменьшается, хотя от мусора она должна была очиститься. При этом извлекаю структуру в скрипт, создаю новую БД этим скриптом, заливаю в нее блоб-ы из раздувшейся базы и она становится размером 20 мб

Guardian777
Сообщения: 33
Зарегистрирован: 09 июл 2009, 14:57

Re: Большой размер БД

Сообщение Guardian777 » 28 мар 2012, 12:17

Испытал еще одну "убитую" БД размером 5,5 Гб
Сначала с помощью утилиты DBInfo установил что основной объем принадлежит блоб полям.
Потом с помощью скрипта http://www.ibase.ru/devinfo/sysqry.htm#blobs для подсчета размера всех блоб полей установил что
1,19 Гб занимает поле RDB$DESCRIPTION в таблице RDB$RELATIONS и 4,09 Гб занимает поле RDB$DESCRIPTION в таблице RDB$RELATION_FIELDS.
Поэтому бекап/рестор и не давал никаких результатов.С данной БД работало только мое ПО (в котором я находясь в трезвом рассудке ничего не писал в эти поля), так что весьма похоже на результат падения сервера. В других местах эта база с моим ПО работает нормально

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Большой размер БД

Сообщение Dimitry Sibiryakov » 28 мар 2012, 14:45

Русский текст в description + кретин, злоупотребляющий ключами --fix* у gbak = база безнадёжно испорчена.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Большой размер БД

Сообщение kdv » 28 мар 2012, 20:14

точно. уже было такое. опции -fix нужно использовать ОДИН РАЗ при переводе предыдущих бэкапов на 2.5.
Некий умелец зарядил эти опции в регулярный бэкап-рестор, в результате получил то же самое, только в rdb$procedure_blr - процедуры в сотни килобайт и мегабайт размером.

я еще добавлю, что никто кроме вас в rdb$description (вручную или посредством IBExpert) ничего не пишет, Firebird-у они нафиг не упали. Там находится только то, что записали лично вы. Поэтому в раздутии базы из-за этих столбцов вините только себя.

Guardian777
Сообщения: 33
Зарегистрирован: 09 июл 2009, 14:57

Re: Большой размер БД

Сообщение Guardian777 » 29 мар 2012, 09:08

Dimitry Sibiryakov писал(а):Русский текст в description + кретин, злоупотребляющий ключами --fix* у gbak = база безнадёжно испорчена.
Во первых иногда приходится разбираться в чужих БД ...
Во вторых кретинизм это все время кричать вы сами виноваты и указывать пустые ссылки. С такой политикой можно вообще форум закрывать. Все обращения заканчиваются тем же самым .... (Это касается Dimitry Sibiryakov, из 2 сообщений информативности 10%)
kdv спасибо за конкретику

Ответить