igorgorb
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору oia,finavia Уверен. FireBird два дня провисел со стопроцентной загрузкой одного ядра и несколькими гигами записаной/прочитаной информации. Разработчикам звита не мешало-бы руки поотрывать и вставить правильным концом в первую очередь выяснить какая версия FireBird'a используется. Идёте в Службы и по строке запуска определяете место запуска, идёте в место запуска и смотрите версию файла. У меня эта версия была 2.1.4 Дальше. В папке с fbserver.exe есть утилита gstat.exe. Нужно её запустить и выяснить от какой версии ФБ сама база(у меня база была от версии FB1.5) для этого нужно в командной строке выполнить: gstat -h "Путь к файлу\zvit.fdb" Покажется примерно такая информация: Цитата: Database "Путь к файлу\zvit.udb" Database header page information: Flags 0 Checksum 12345 Generation 1003392 Page size 8192 ODS version 10.1 Oldest transaction 1003351 Oldest active 1003352 Oldest snapshot 1003352 Next transaction 1003367 Bumped transaction 1 Sequence number 0 Next attachment ID 1453 Implementation ID 16 Shadow count 0 Page buffers 0 Next header page 0 Database dialect 3 Creation date Oct 16, 2006 16:35:36 Attributes force write, no reserve Variable header data: Sweep interval: 20000 *END* | Нас интересует строка ODS version 10.1 которая показывает версию сервера в которой была создана база (у меня этот параметр говорит о версии 1.5, а вообще можно посмотреть здесь ) И так-же интересна строка Attributes force write, no reserve В которой параметр no reserve заставляет сервер по максимуму использовать свободное пространство файла, прежде чем увеличивать размер файла базы что приводит большей частью к уменьшению скорости работы самого сервера. С атрибутом no reserve бороться просто: C:\Program Files\Firebird\Firebird_2_1\bin>gfix -user sysdba -password masterkey -use reserve "путь к файлу\zvit.fdb" и проверить: gstat -h "Путь к файлу\zvit.fdb". С этим все. Для смены ODS нужно сделать backup/restore. (Теорию читать здесь) Для этого нужно выполнить две команды: gbak -b -g "Путь к файлу\zvit.fdb" "Путь к файлу бекапа" -v -user ... -password ... после завершения переименовать файл zvit.fdb как нибудь и для рестора: gbak -с "Путь к файлу бекапа" "Путь к файлу\zvit.fdb" -v -user ... -password ... по окончании проверить gstat -h "Путь к файлу\zvit.fdb". Версия ODS должна быть 11.1 Все. У меня файл БД был 600 Мб, после b/r стал 340 Мб. После этих операций я снова запустил обновление. На надписи "обновление dbtmpl" "повисело" порядка 15-ти минут и установилось нормально. ПРЕДУПРЕЖДАЮ!!! После бекапа/рестора нужно ещё выполнить обновление метаданных. Инструкция и нужные скрипты находятся в папке misc установленного FireBird'a. Если этой папки нет, скачать с офсайта дистрибутив, получить папку, прочитать содержимое и выполнить как написано. Дальше. Я не выполнял этого. Просто подложил базу и все заработало. Я отдаю себе отчет, в том что Бест-Звит будет поддерживатся ещё месяц, после этого все дружно пойдем на МЕДок. И я имею опыт администрирования и разработки приложений с использованием FireBird. Поэтому надеюсь что смогу справится если возникнут проблемы. Пока писал, подумалось, что нужно было просто скачать FB версии 1.5 и сделать бекап\рестор этой версией. |