Просмотр полной версии : ремонт БД Shelter
Здравствуйте. Хотел узнать ответы на несколько вопросов по Shelter v2
1) Сама БД Shelter содержится в файлах
SHELTER.fbk
SHELTER.FDB
Стоит ли ещё какие-нибудь файлы постоянно архивировать?
2) Есть ли возможность протестировать БД на ошибки? А то при работе в Shelter возникают ошибки - не могу понять, это в самой БД ошибки или в релизе
3) Есть ли механизм Восстановления (ремонта) БД?
4) в каталоге с БД есть батники для архивации - автоматического архивирования БД нет? Придётся через планировщик windows настраивать?
Возможно для кого-нибудь вопросы покажутся элементарными, но хочется всё выяснить один раз и навсегда.
Есть ли возможность протестировать БД на ошибки?
Есть ли механизм Восстановления (ремонта) БД?
Думаю, стандартными средствами firebird точно можно. Я в эти шашки (firebird) плохо играю, но стандартные инструменты движка точно есть. Погуглите, если здесь никто не ответит.
Думаю, стандартными средствами firebird точно можно. Я в эти шашки (firebird) плохо играю, но стандартные инструменты движка точно есть. Погуглите, если здесь никто не ответит.
Алексей, спасибо за информацию. Поверхностно пока изучал вопрос, понял что если и есть механизм, то только стандартный через IBExpert.exe
VampireKB
26.03.2015, 00:48
вы там по-осторожнее,а-то как с ресторатором будет... 1 неосторожный бэкап и "пока" базе....
1) Сама БД Shelter содержится в файлах
SHELTER.fbk
SHELTER.FDB
Нет. Сама база это fdb. fbk - это бекап базы, сделанный средствами FireBird
По хорошему, если бекапить SHELTER.FDB, нужно быть уверенным что в этот момент с базой никто не проводит транзакций. Для 100% уверенности перед бекапом нужно остановить FB. В противном случае можете получить не рабочую базу в бекапе. Т.е. во время копирования прошла транзакция в БД и у вас битая копия.
Отсюда логичнее создавать бекап средствами FB и архивировать его.
2) Есть ли возможность протестировать БД на ошибки? А то при работе в Shelter возникают ошибки - не могу понять, это в самой БД ошибки или в релизе
3) Есть ли механизм Восстановления (ремонта) БД?
Есть. это стандартный инструментарий IB/FB
Много инфы есть тут http://ibase.ru
Основная статья по ремонту и диагностике http://ibase.ru/devinfo/db_repair.htm Если в серьез задались этим вопросом рекомендую вдумчиво прочитать "от и до".
Выжимка из статьи (которой я пользуюсь) это такой набор команд для диагностики и ремонта:
gfix -v -full database.gdb
Если предыдущая команда обнаружила ошибки, то нужно их исправить командой.
gfix -mend -full -ignore database.gdb
! ключ -mend помечает поврежденные структуры как исключаемые при backup. В результате целостность между таблицами может быть нарушена, и даже если после этого backup пройдет, не факт что базу данных удастся восстановить из backup. В этом случае придется вручную копировать данные при помощи утилит вроде IBPump.
Проверим, все ли починилось.
gfix -v -full database.gdb
Если на этот момент вы все еще видите ошибки, то надо попытаться сделать backup, при этом обязательно нужно отключать сборку мусора (ключ -g):
gbak -b -v -ig -g database.gdb database.gbk
ключ -ig игнорирует ошибки при чтении структур данных, и пытается сохранить в backup все неповрежденные структуры и данные.
Теперь надо попытаться восстановить базу данных из backup:
gbak -c -v database.gbk new.gdb
Естественно все эксперименты только на копии БД!!!
4) в каталоге с БД есть батники для архивации - автоматического архивирования БД нет? Придётся через планировщик windows настраивать?
Смотри п1.
Уважаемый sibgaba (http://www.carbis.ru/forum/member.php?u=8084), спасибо за развернутый ответ.
Вот посмотрите пожалуйста на поведение программы. Это видеофрагнмент.
http://rghost.ru/private/7FZcCVhlF/858269d48d247afe23e896dad70cb966
Ошибок в БД нет, след такой косяк релиза?
Данная проблема возникла после обновления на релиз 2.10.103.2112
Support ucs третий день молчит...
Хреново конечно видно, с трудом разобрал что это справочник организаций.
По ошибке получается что в момент сохранения карточки (когда прога делает SQL запрос) не хватает определенного поля (его имя там выводится, но я разобрать не могу, не четко). Поле это в базе. Похоже на то что при апгрейде не прошел скрипт который добавляет это поле в таблицу или вы его вообще забыли накатить.
Варианты:
1. Проверить (текстовым поиском) скрипты апгрейда, найти скрипт который добавляет это поле и прогнать его на базе еще раз.
2. Развернуть из дистрибутива чистую базу версии 2.10.103.2112, проверить на ней. Если там все ок (нужное поле в таблице присутствует), то сравнить базы (чистую и апгрейженную), найти недостающее поле и добавить его в ручную в БД.
Сравнивать структуру таблиц можно руками, а можно поискать соответствующий софт.
Код ошибки:
Dynamic SQL Error
SQL error code = -206
Column unknown
GUESTS.OWNER
At line 3, column 14
Чистой БД из дистрибутива текущей версии нет, ставил старую версию и запускал обновление. Всё обновление подкачивается с сайта.
Скрипты обновления - это которые лежат в папке \Shelter\update\shelter_2.10.103.2112.rar\shelter2 .sql
И ещё, вопрос по скриптам и тестированию. У клиента при запуске скрипта проверки сообщение - \firebird.msg not found.
т.е. запускаю скрипт gfix -v -full SHELTER.FDB
а мне в ответ
can't format message 13:896 -- message file C:\ucs\firebird.msg not found.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 1.
gfix.
хотя сам Shelter установлен в папку
c:\ucs\Shelter\
в самой папке C:\ucs из файлов есть только лог firebird.log
Уважаемый sibgaba (http://www.carbis.ru/forum/member.php?u=8084), что тут можно поправить?
GUESTS.OWNER
Вот этой колонки не хватает в одной из таблиц БД
\Shelter\update\shelter_2.10.103.2112.rar\shelter2 .sql
Поищите поиском в этом файле. Есть ли там упоминание этой колонки?
У клиента при запуске скрипта проверки сообщение - \firebird.msg not found.
т.е. запускаю скрипт gfix -v -full SHELTER.FDB
Запускайте все команды из папки где стоит FB (именно там лежит gfix, firebird.msg, и все остальное нужное)
Я обычно копирую базу в папку с FB и все делаю там.
По ходу дела это косяк релиза. Только что в support ответили... увы и ах...
sibgaba (http://www.carbis.ru/forum/member.php?u=8084), можно тебе ещё пару вопросов.
На счёт проверки - скопировал БД SHELTER.fdb в папку с \Shelter\Firebird\, там как раз в корне лежит firebird.msg
открываю IBExpert добавляю туда эту Бд как локальную.
Сама БД раскрывается, появляются таблицы
Затем запускаю Службы - проверка БД
ошибка
Connection error.
bad parameters on attach or create database.
secondary server attachments cannot validate databases.
IBE: Validation completed.
Затем запускаю Инструменты - SQL редактор и выполняю комманду
gfix -v -full SHELTER.FDB
ошибка:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 1.
gfix.
может я что не так делаю... хз.
И как создать пустую БД под текущим релизом? такое возможно? Есть ли механизмы?
Затем запускаю Службы - проверка БД
ошибка
Никогда не пользовался этим инструментарием, поэтому подсказать ничего не смогу.
Затем запускаю Инструменты - SQL редактор и выполняю комманду
Да нет же... С чего вы взяли что приведенный мной выше список команд это инструментарий SQL?
Ну сразу видно что статью http://ibase.ru/devinfo/db_repair.htm вы даже не открывали... :(
Читайте вдумчиво. 2 раза. С перерывами...
gfix и gbak это консольные утилиты IB/FB и соответственно все команды нужно запускать из консоли (из командной строки) находясь в директории в которой установлен ваш FB.
блин, я облажался...
запустил:
C:\ucs\Shelter\Firebird\bin>SET ISC_USER=ucs
C:\ucs\Shelter\Firebird\bin>SET ISC_PASSWORD=ucs
C:\ucs\Shelter\Firebird\bin>gfix -v -full SHELTER.FDB
C:\ucs\Shelter\Firebird\bin>
всё тихо, след ошибок нет?
И можно, ещё один вопрос, для сравнения. Как получить чистую БД для текущего релиза? Чтобы сравнивать поведение программы на чистой и рабочей БД?
всё тихо, след ошибок нет?
Лучше прогнать все команды. Лишним не будет.
Как получить чистую БД для текущего релиза?
От вашей ошибки это не избавит т.к. не хватает полей в БД (что и в UCS подтвердили, как я понял). Обычно скрипты для исправления таких ошибок выпускают достаточно быстро...
Спасибо. Но, в итоге, хочется узнать на будущее, как создавать БД. Программа серьёзная...
Спасибо. Но, в итоге, хочется узнать на будущее, как создавать БД. Программа серьёзная...
Пару раз приходилось чинить базы. У нас на объекте база, которая была установлена ещё в Ш1, потом конвертировалась и прошла все релизы. Было несколько косяков, но они все решались в день обращения. Именно косяки, которые не дают в ней работать. Чтобы таблицы какие-то похерились, слышу впервые. Да и на трекере я постоянно слежу за обращениями, можете номер подсказать?
Не, я только начал шелтер изучать, перешел с аналогичного решения. Вот и задался вопросом ремонта БД. Но понял что разработчики оперативно реагируют на ремонтные заявки. Так что вопрос можно закрывать. Спасибо большое
Не, я только начал шелтер изучать, перешел с аналогичного решения. Вот и задался вопросом ремонта БД. Но понял что разработчики оперативно реагируют на ремонтные заявки. Так что вопрос можно закрывать. Спасибо большое
Если проблема не хардварная (например посыпался винт) большая часть проблем решается банальным бекап-рестором.
Powered by vBulletin® Version 4.2.6 LTS Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot