powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird embedded не выдерживает отключения питания
25 сообщений из 39, страница 1 из 2
Firebird embedded не выдерживает отключения питания
    #39958415
Найт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Использую Firebird Embedded (2.5.9.27139) на Linux(CentOS 7.3). Сама база физически расположена на Raw Device. Основная проблема в том, что при внезапном отключении питания база повреждается. Режим записи в БД синхронный . Из настроек - размер страницы 16К, остальное по умолчанию. Один из вариантов ошибок, которые возникают при работе с поврежденной базой:

Internal error: internal Firebird consistency check (can't continue after bugcheck)


Восстановить базу через gfix/backup/restore возможно, но это не решение, разрабатываемый продукт работает 24/7 и автоматическое и ручное восстановление БД неприемлимо, так как занимает много времени ( + для создания бекапа может не хватить места на дисках в системе).

Неужели современную СУБД можно полностью вывести из строя подобным образом ?. При последнем тесте сломалась одна таблица. через isql-fb при выполнении:

Код: plsql
1.
select * from block_list;



8000 записей печается, после чего ошибка :

Statement failed, SQLSTATE = XX000
internal Firebird consistency check (cannot find record back version (291), file: vio.cpp line: 4022)


На этом вывод прекращается. Запрос через C API просто вылетает с этой ошибкой.

Вывод gfix:

[root@525400139211 ~]# gfix -v -full /dev/db
Summary of validation errors

Number of record level errors : 31
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958416
Найт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще второй вопрос - может ли здеь помочь переход на Firebird 3.0 ?
Заранее спасибо.
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958422
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НайтИспользую Firebird Embedded (2.5.9.27139) на Linux(CentOS 7.3).

"Уже смешно", поскольку такой версии не существует в природе. Embedded - только для Windows.

НайтРежим записи в БД синхронный.

Можешь это подтвердить выводом "gstat -h"?
И ещё неплохо бы параметры того самого Raw Device.

НайтОдин из вариантов ошибок, которые возникают при работе с поврежденной базой:

Это только одна строчка из полного сообщения, причём наименее интересная.

НайтНеужели современную СУБД можно полностью вывести из строя подобным образом ?.

Да. Попробуй то же самое проделать с Оракулом, тебе понравится новая Камасутра.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958458
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Найт
продукт работает 24/7 и автоматическое и ручное восстановление БД неприемлимо, так как занимает много времени
Дельная мысль, только выводы странные. Для 24х7 не годится одиноко стоящий сервер, нужен кластер как минимум из двух нод.
Найт
+ для создания бекапа может не хватить места на дисках в системе
Это просто феерия.
Найт
Неужели современную СУБД можно полностью вывести из строя подобным образом ?.
Да. И не только файрберд. Упс (2шт) онлайновый со шнудочком в ком/усб порт, сдвоенные БП - наше фсё.
Найт
Сама база физически расположена на Raw Device.
Обоснование есть?
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958514
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВосстановить базу через gfix/backup/restore возможно, но это не решение, разрабатываемый продукт работает 24/7 и автоматическое и ручное восстановление БД неприемлимо, так как занимает много времени ( + для создания бекапа может не хватить места на дисках в системе).

Неужели современную СУБД можно полностью вывести из строя подобным образом ?. При последнем тесте сломалась одна таблица. через isql-fb при выполнении:


По моему опыту поломать БД не так-то просто. Разумеется, сильно зависит от различных факторов (в том числе и от нагрузки), но разработчики Firebird со свой стороны сделали многое для избежания проблем, возникающих при внезапных отключениях питания.
У нас месяцев 5 назад один клиент перевёл свою сеть АЗС (около 15 АЗК) на наше ПО и купил моноблоки Atol Vivo Smart с Windows 10 IoT 2016. Эти моноблоки все глючат (предположительно из-за Windows), с среднем пару раз в день зависают, приходится кассирам аппаратно их перезагружать. Ничего! 5 месяцев в таком режиме проработали. Ни на одной АЗС база не сдыхала (тьфу тьфу)! Используется Firebird 2.5.8.

В этом плане современные модные NoSQL СУБД вряд ли можно сравнить по надёжности с Firebird при локальной работе на одном компьютере. По скорости - да, они скорее всего быстрее, но по надёжности - вряд ли (но тем не менее как-то разработчики обеспечивают их бесперебойное функционирование).
Недавно попадалась на Хабре статься по ClickHouse - внезапный ресет выводит базу из строя (примерно так). Зато в разы быстрее.
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958619
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понял сравнения fb и clickhouse
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958699
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений
не понял сравнения fb и clickhouse


Про быстрее? Так, ляпнул. На Хабре несколько статей было, пишут что штука быстрая, типа круче других nosql СУБД, а тем более быстрее реляционных.
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958747
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да тут даже не про быстрее, они вообще разные
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958777
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Найт
И еще второй вопрос - может ли здеь помочь переход на Firebird 3.0 ?
Заранее спасибо.
Нет!
Здесь поможет только сервер, подключенный к источнику бесперебойного питания, а ещё лучше сервер с блоком питания redundant, подключённый к двум правильно обслуживаемым ИБП.
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958849
Найт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

"Уже смешно", поскольку такой версии не существует в природе. Embedded - только для Windows.


Ну на оффсайте не пишут что Linux не поддерживает Embedded версию

Dimitry Sibiryakov

Можешь это подтвердить выводом "gstat -h"?
И ещё неплохо бы параметры того самого Raw Device.


Вывод gstat сейчас вот, увы, не могу пока привести. Но могу заверить что при формировании DPB для подлючении к БД никак не указываю isc_dpb_force_write, а по умолчанию он 1.
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958854
Найт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky

Дельная мысль, только выводы странные. Для 24х7 не годится одиноко стоящий сервер, нужен кластер как минимум из двух нод.


Кластеризация в некоторых инсталляциях есть, но Firebird она никак не затрагивает... В минимальной конфигурации - один сервер.

Ivan_Pisarevsky
Да. И не только файрберд. Упс (2шт) онлайновый со шнудочком в ком/усб порт, сдвоенные БП - наше фсё.


УПС первое, что пришло на ум, однако нету физической возможности на всех объектах, где стоит система поставить УПС.

Ivan_Pisarevsky
Обоснование есть?


Изначально предполагалось, что как раз таки файловая система может дать сбой при отключении питания. + почему бы не избежать фрагментации, пораждаемой файловой системой, если Firebird умеет работать с блочными устройствами...
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958855
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Найтпо умолчанию он 1.

Не на всех версиях и не на всех платформах.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958857
Найт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DmSer
авторВосстановить базу через gfix/backup/restore возможно, но это не решение, разрабатываемый продукт работает 24/7 и автоматическое и ручное восстановление БД неприемлимо, так как занимает много времени ( + для создания бекапа может не хватить места на дисках в системе).

Неужели современную СУБД можно полностью вывести из строя подобным образом ?. При последнем тесте сломалась одна таблица. через isql-fb при выполнении:


По моему опыту поломать БД не так-то просто. Разумеется, сильно зависит от различных факторов (в том числе и от нагрузки), но разработчики Firebird со свой стороны сделали многое для избежания проблем, возникающих при внезапных отключениях питания.
У нас месяцев 5 назад один клиент перевёл свою сеть АЗС (около 15 АЗК) на наше ПО и купил моноблоки Atol Vivo Smart с Windows 10 IoT 2016. Эти моноблоки все глючат (предположительно из-за Windows), с среднем пару раз в день зависают, приходится кассирам аппаратно их перезагружать. Ничего! 5 месяцев в таком режиме проработали. Ни на одной АЗС база не сдыхала (тьфу тьфу)! Используется Firebird 2.5.8.

В этом плане современные модные NoSQL СУБД вряд ли можно сравнить по надёжности с Firebird при локальной работе на одном компьютере. По скорости - да, они скорее всего быстрее, но по надёжности - вряд ли (но тем не менее как-то разработчики обеспечивают их бесперебойное функционирование).
Недавно попадалась на Хабре статься по ClickHouse - внезапный ресет выводит базу из строя (примерно так). Зато в разы быстрее.

Воспроизводится ситуация примерно по такому алгоритму. Берем виртуалку, ставим на нее наш софт, что работает с БД (в сущности просто 1 раз в 4 секунды проходит 40-45 транзакций с insert и update, нагрузка детская по идее. В виртуалке выключены все кеши по работе с дисками. И внешний скрипт - который просто убивает виртуалку по рандомному таймеру от 2 до 10 минут. На 1-3 сутки появляется проблема.
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958859
Найт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Найтпо умолчанию он 1.

Не на всех версиях и не на всех платформах.


Хм.. неожиданно. Но на деле я оба варианта пробовал. Если ставлю 0 - проблема воспроизводится намного чаще и очень высокая скорость обработки всех запросов. Если оставляю по умолчанию - ощутимое снижение скорости проведения транзакций и проблема сложнее воспроизводится.
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958862
Найт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока примерное рабочее решение, после растарта сервера делать gfix -mend. Удаление поврежденных записей так или иначе дает возможность продолжить работать с базой. Однако, время выполнения данной команды все же несколько смущает (на небольшой базе уже 30 секунд), и врядли она исправит все возможные варианты повреждения базы при отключении питания...
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958865
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Найтнету физической возможности на всех объектах, где стоит система поставить УПС.

Значит надо БД-часть системы выносить с этих объектов в лучше контролируемую среду.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958871
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Найт
В виртуалке выключены все кеши по работе с дисками.
А как VM работает с RAW-device, на котором БД - это настоящий (физический) раздел, или часть образа VM ?
Во втором случае кешированием IO занимается ещё и хост-ОС.

БД на RAW device лишена кеширования и префетча ср-вами файловой системы.
Для CS это весьма заметный удар по производительности.
Для SS тоже, но там можно частично смягчить за счёт собственного большого кеша.

Было ли проведено сравнение "надёжности" RAW device и нормальной файловой системы (не fat и не ext2) ?
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958886
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Найт
Если оставляю по умолчанию - ощутимое снижение скорости проведения транзакций и проблема сложнее воспроизводится.
У нас просадка по производительности (sinc - asinc режимы) есть только на слабых дисковых. На адатеке с гигом кэша+пара ССД в зеркале просадки нет совсем. Пишите в системные требования УПС и ССД - значительно нивелируете проблему.

Про рав девайсы см коммент Влада. файловый кэш ОСь зело полезная штука, отказываться от нее надо осмысленно. У нас везде ext4.
Есть у нас админ затейник - поставил btrfs под базу - тормоза получили жесточайшие. Отбросили такой вариант как тупиковый еще на этапе тестирования. Виртуалки тоже не жалуем, удобно, но тормозно до жути.
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958905
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky
Виртуалки тоже не жалуем, удобно, но тормозно до жути.

А почему виртуалки тормозные? Есть сравнение или ещё что-либо? У нас вообще всё на виртуалках от WMWare. Вот думаю, может быть попросить перевести на физический сервер. Ну или хотя бы для начала аргументированно заявить.
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958907
Найт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad
Найт
В виртуалке выключены все кеши по работе с дисками.
А как VM работает с RAW-device, на котором БД - это настоящий (физический) раздел, или часть образа VM ?
Во втором случае кешированием IO занимается ещё и хост-ОС.

БД на RAW device лишена кеширования и префетча ср-вами файловой системы.
Для CS это весьма заметный удар по производительности.
Для SS тоже, но там можно частично смягчить за счёт собственного большого кеша.

Было ли проведено сравнение "надёжности" RAW device и нормальной файловой системы (не fat и не ext2) ?


Меня заверяли, что диски настоящие и физические. Снижение производительности очень ощутимое, но у нас задача скорее надежность обеспечить, хоть и как я писал критично быстродействие, но по большей части это не требование, а проблема архитектуры софта в нашем случае...

Про тестирование "надежности" - обязательно проведем для будущих решений, мысль правильная.
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39958908
Найт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky
Найт
Если оставляю по умолчанию - ощутимое снижение скорости проведения транзакций и проблема сложнее воспроизводится.
У нас просадка по производительности (sinc - asinc режимы) есть только на слабых дисковых. На адатеке с гигом кэша+пара ССД в зеркале просадки нет совсем. Пишите в системные требования УПС и ССД - значительно нивелируете проблему.

Про рав девайсы см коммент Влада. файловый кэш ОСь зело полезная штука, отказываться от нее надо осмысленно. У нас везде ext4.
Есть у нас админ затейник - поставил btrfs под базу - тормоза получили жесточайшие. Отбросили такой вариант как тупиковый еще на этапе тестирования. Виртуалки тоже не жалуем, удобно, но тормозно до жути.


В последующих решениях УПС и ССД должны быть. В тех инсталляциях, что уже были - ничего этого нету. Более того, физический диск, на котором расположена БД, используется для других сервисов на ввод/вывод, что тоже весьма прискорбно.
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39959051
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI
А почему виртуалки тормозные?
ХЗ, может админ у нас чего намутит, то бтрфс, то зфс, то снапшоты какие... Затейник, блин. По мне так виртуалки должны жить в паре с СХД, на нутряных дисках у нас получалась какая-то хрень, а не виртуалки. СХД у нас нет, видимо поэтому и с виртуалками напряг. Не, для десктопов и тестовых сред используем в полный рост, но не под базы под нагрузкой.
KreatorXXI
Есть сравнение или ещё что-либо?
С железом и там же самым центосом. ставим центос на железку, вливаем базы и оно свистит, ставим тот же комплект в виртуалку с теми же самыми базами - тупит.
В итоге наши сервера стоят на железе и все вполне себе работает.
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39959090
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

Инет первыми ссылками показывает ресурсы, где говорят, что физический быстрее. Но без объяснений причин. И я склоняюсь к тому, что скорее всего всё наоборот. Вот нашёл, например, https://efsol.ru/articles/performance-comparison-1c.html. Старая статья, скорее всего сейчас ещё всё лучше. Ну, вот ещё - https://www.ixbt.com/cpu/virtual2015-winwin.shtml. Здесь всё неоднозначно.
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39959125
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI И я склоняюсь к тому, что скорее всего всё наоборот.
чиронго бурфа грека рака брод
куранго манго и наоборот

наоборот, т.е. виртуальный быстрее физического, не может быть в принципе. В виртуалках проц и память теряют минимум 5%. А диски теряют еще больше, причем, подозреваю, что даже в случае raw. Потому что в виртуале никакого RAW не может быть по определению этого самого виртуала. И всё зависит от драйверов не просто производителя железа, а от производителя виртуалки.

Насчет кэширования у меня есть статья и видео, которая явно показывает, что если бы это был raw-диск, и classic, то это был бы полный кабздец. Как сказал hvlad, выровнять производительность с диском можно было бы на супере 3.0, на здоровенном кэше.
http://www.ibase.ru/files/articles/performance/Firebird Optimizer - ORDER vs SORT.pdf
либо с начала, либо со страницы 15.
У ОС и ФБ кэши выполняют разные задачи. Тем не менее, префетч кэша ОС сильно помогает классику и суперклассику. Если бы не помогало, была бы рекомендация вырубить FileSystemCacheThreshold.

кроме того, у автора топика, обратите внимание
"убивает виртуалку по рандомному таймеру от 2 до 10 минут. На 1-3 сутки появляется проблема. "
в сутках 1440 минут. если ресет идет раз в 10 минут, то это 144 раз. 1 повреждение базы за 144 раз это 0.7%.
Я считаю, что это офигеть как круто.
И напомню, что при инсертах и ресете обычно возникают orphan pages, которые вообще проблемой и повреждением не являются.
Но у автора еще и update, а там - да, "cannot find record back version (291)" вполне может случиться. Но у него - 1 раз на 144 ресетов. Дальнейшие проценты надежности в год предлагаю посчитать самостоятельно (подсказка - 97,445%. дальше там всякое Mean Time Between Failures, Mean Time To Recover и т.д.).

p.s. по мере написания коммента вдруг нашел описание книги "Базы данных. Инжиниринг надежности", заинтересовался. Дальше нашел пост на хабре
https://habr.com/ru/company/piter/blog/493844/
короче, на добър час, или късмет.
...
Рейтинг: 0 / 0
Firebird embedded не выдерживает отключения питания
    #39959130
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
виртуальный быстрее физического, не может быть в принципе
RAID - он виртуальный, или физический?
А хранилище?
...
Рейтинг: 0 / 0
25 сообщений из 39, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird embedded не выдерживает отключения питания
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]