Начало » Использование СУБД » Firebird, HQbird, InterBase » Проверялка базы
Проверялка базы [сообщение #5480] |
Tue, 24 September 2024 17:21 |
ggreggory
Сообщений: 63 Зарегистрирован: July 2022
|
Member |
|
|
Приветствую знатоков и разработчиков!
WI-V3.0.8.33535 Firebird 3.0 (Windows/Intel/i386), ODS 12.0
Хочется иметь какой-то инструмент, который бы отвечал на вопрос - база в порядке или нет. С тем, чтобы в определенной ситуации (или с определенной периодичностью) запускать и если что - бить тревогу.
Попробовал isc_action_svc_validate. Но! Она выдает большой объем текстовой информации, а мне нужен ответ - Да или Нет. Как понимаю - решение в анализе выводимой информации, поиска слов типа "ERROR" или что-то в этом роде.
Вопрос: на какие слова завязаться?
И, как пример, вот у меня эта проверялка выдает:
16:32:42.46 Warning: Pointer page 807 {sequence 0} bits {0x05 full, swept} are not consistent with data page 6869 {sequence 373} state {0x01 full}
Вроде-бы безобидно, но на клиенте это превращается в невозможность прочитать блоб:
Error Message:
----------------------------------------
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
BLOB not found.
-------------------------------------------------------------------------------------------------------------------
SQLCODE: -901
SQLSTATE: HY000
GDSCODE: 335544382
|
|
|
Re: Проверялка базы [сообщение #5493 является ответом на сообщение #5480] |
Wed, 25 September 2024 12:30 |
sashaua01
Сообщений: 26 Зарегистрирован: July 2022
|
Junior Member |
|
|
может не совсем то что Вам надо. У нас есть такой велосипед.
Микросервис на пайтоне + фласк который имеет ендпоинт /heath , внутри этот ендпоин делает простой селект в базе (select max(id) from customers) и если все ок возвращает код 200, эсли что-то пошло не так возвращает код 500.
В системе мониторинга есть синтетический тест https://dba.vltava.local/heath и если ответ <> 200 будет аларм.
Примитивный тест жива база или нет.
[Обновления: Wed, 25 September 2024 12:31] Известить модератора
|
|
|
|
|
|
|
|
|
|
|
|
Re: Проверялка базы [сообщение #5505 является ответом на сообщение #5504] |
Fri, 27 September 2024 07:54 |
basid
Сообщений: 139 Зарегистрирован: June 2022 Географическое положение: Asia/Irkutsk
|
Senior Member |
|
|
Не пытайтесь решать нерешаемое.
gbak:ERROR: Error while parsing procedure ...
gbak:ERROR: action cancelled by trigger ...
gbak:ERROR: attempt to store duplicate value ...
Это всё ошибки восстановления из успешно сделанного бэкапа базы.
Первая строчка - некорректная правка метаданных. Может возникнуть для PSQL-кода, который уже давно и никем не используется. В исходной базе - плевать, но восстановиться из бэкапа - невозможно.
Вторая строчка - не хватило места для временных файлов на этапе активации индексов. Вообще ничего не говорит о "здоровье" исходной базы.
Третье - дубли в первичном/уникальном индексе, которые надо отдельно искать. А потом - решать, что делать с найденным.
Дубли, в общем и целом, могут и не влиять на работу приложения. Но возможны ньюансы.
А ещё есть всякие "приколы" с повреждениями отдельных записей/блобов.
Или, например разная видимость "по индексу" и "натуралом". Причём в обоих вариантах расхождения.
database file appears corrupt ...
internal Firebird consistency check ...
Это уже разновсяческие варианты физических повреждений, включая разную экзотику, которую сложно обнаружить "в дикой природе".
А ещё есть предупреждения, которые сами по себе некритичны, но которые указывают на какие-то другие проблемы.
Приведённое для примера, надо сказать, далеко не всё, с чем можно столкнуться.
А ещё есть уже исправленные ошибки "всякой древности" вроде "вашей" 3.0.8.
И вот вы, такой д'Артаньян, собираетесь решать - повреждена ли ваша база. Оперативно и онлайн.
Если СУБД Firebird работает с файлом базы, то база, в целом, исправна. Но могут быть не в порядке данные в этой вашей базе.
Хотите уверенности в завтрашнем дне?
Регулярно проверяйте метаданные - быстро и страхует от некоторых сюрпризов.
Регулярно проверяйте восстановимость бэкапов.
Регулярно (но реже) проверяйте физическую целостность на копии файла базы.
Две последние проверки не заменяют одна другую - они про разное.
P.S.
Совсем забыл - не забывайте "почитывать" firebird.log и системные журналы
[Обновления: Fri, 27 September 2024 08:00] Известить модератора
|
|
|
|
|
Re: Проверялка базы [сообщение #5508 является ответом на сообщение #5507] |
Fri, 27 September 2024 15:49 |
sg729
Сообщений: 52 Зарегистрирован: June 2022
|
Member |
|
|
basid писал(а) Fri, 27 September 2024 15:41
gbak -se ... -m -b -g источник stdout | gbak ... -m -c stdin приёмник
-
Понятно, спасибо!
basid писал(а) Fri, 27 September 2024 15:41
Как создавать корректную файловую копию базы рассказывать?
Нет -)
|
|
|
Переход к форуму:
Текущее время: Sun Sep 29 00:25:58 GMT+3 2024
Общее время, затраченное на создание страницы: 0.01247 секунд
|