powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как сделать второй страховочный сервер, если ляжет первый ?
25 сообщений из 34, страница 1 из 2
Как сделать второй страховочный сервер, если ляжет первый ?
    #38315001
Andrew_Bulkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно есть два сервера, на которых стоит Firebird 2.5. Первый является рабочим (база около 2 Гб), хотелось бы поставить второй страховочный, на случай если с первым что-то случится. Вопрос первый: как лучше осуществлять копирование базы с одного на другой, может репликация, или что-то иное. Вопрос второй, в случае отказа главного сервера, возможно ли как то в автоматическом режиме настроить перенаправление на второй ?
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38315021
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew_BulkinВопрос первый: как лучше осуществлять копирование базы с одного на другой, может репликация, или что-то иное. Вопрос второй, в случае отказа главного сервера, возможно ли как то в автоматическом режиме настроить перенаправление на второй ?1) IBPhoenix Replicator - асинхронная репликация, демон replserver опрашивает свой журнал каждые NN сек (где NN - настраивается) и всё, что там будет, перетаскивает на другой сервер. Журнал (таблица repl_log в базе-источнике) пополняется after IUD триггерами тех таблиц, которые вам надо сохранять на случай восстановления. Таблицы выбираете с помощью его инструмента конфигурации.
Последняя версия репликатора переносит помимо данных также и счетчики генераторов. Но перенос измененных метаданных он не делает - это надо отдельно решать.
2) Штатный create shadow - синхронная передача в базу-приёмник всех измененных страниц, на физическом уровне. База-приемник будет точной зеркальной копией, в т.ч. с измененными метаданными. На линухе можно через NFS выделить ("замапить") ресурс другого сервера и создать shadow на нём. В результате сбоя основного сервака достаточно будет поменять ip'шник у резервного на ip'шник основного, снять у теневой копии признак, что она есть тень, и дальше можно запускать на неё юзеров.
Как сделать автоматическое перенаправление при сбое - не знаю, но наверное это тоже решаемо.
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38315022
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответ первый: это зависит от требований, нагрузки, технических возможностей и т.п.
Ответ второй: это зависит от типа отказа. В ряде случаев достаточно указать два IP адреса
для одного доменного имени. Клиент 2.5 автоматически будет коннектиться ко второму если не
сможет к первому.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38315026
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew_BulkinВопрос первый: как лучше осуществлять копирование базы с одного на другой, может репликация, или что-то иное.
в серьезных конторах покупают дисковые полки, которые имеют соединение с двумя серверами, и полка переключается с одного сервера на другой быстро и без проблем. Собственно, это типа failover cluster
http://www.ibase.ru/ibinstall/ib7cluster.htm
(для ФБ - то же самое. про линукс - не в курсе, но тоже наверняка можно).

Другое дело, если речь идет о повреждении БД. В этом случае - да, репликация.
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38315028
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew_Bulkin,

я еще добавлю, что "страховочный" сервер не обязательно должен быть только страховочным. Т.е. его при репликации можно использовать для отчетов, т.е. фактически распределить нагрузку между серверами.

p.s. для InterBase такое делается и без репликации, через online dump. В FB можно было бы использовать nbackup, но... только в 3.0, если реализуют аналогичный накат изменений на бэкап уровня 0, а не в отдельный файл.
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383121
druff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильно ли я понимаю, что зеркалирование базы и теневые копии не спасают при сбое самого FB и портятся обе базы?

и вопрос про репликацию:

В случае схемы основная база => резервная база, как происходит заливка в резервную базу? Репликаторы отключают триггеры в резервной базе или нужно переписывать абсолютно все триггеры, чтобы они не запускались при заливке данных репликатором?
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383142
druffправильно ли я понимаю, что зеркалирование базы и теневые копии не спасают при сбое самого FB и портятся обе базы?Да.
druffРепликаторы отключают триггеры в резервной базе или нужно переписывать абсолютно все триггеры, чтобы они не запускались при заливке данных репликатором?Репликатор не отключает триггера. Нужен скрипт, который будет их деактивировать перед началом репликации и активировать при переключении работы на репликант-базу в случае сбоя.
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383163
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вано СусанидзеНужен скрипт, который будет их деактивировать перед началом
репликации и активировать при переключении работы на репликант-базу в случае сбоя.

Ну или DBA, который хоть что-то понимает в триггерах и сумеет настроить репликацию так,
чтобы триггера во второй базе репликации помогали, а не мешали.

Кстати, аффтар, приведи пример триггера, который при репликации приходится отключать и я
ткну пальцем в кривизну дизайна твоей базы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383168
druff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВано СусанидзеНужен скрипт, который будет их деактивировать перед началом
репликации и активировать при переключении работы на репликант-базу в случае сбоя.

Ну или DBA, который хоть что-то понимает в триггерах и сумеет настроить репликацию так,
чтобы триггера во второй базе репликации помогали, а не мешали.

Кстати, аффтар, приведи пример триггера, который при репликации приходится отключать и я
ткну пальцем в кривизну дизайна твоей базы.


Зачем тыкать в кривизну? Владельцы и так знают, что дизайн не очень...

База не моя, я только прикидываю как прикрутить к ней репликацию. Если существующие триггеры оставить как есть, или ко всем им добавить условия на проверку того, что вставка идёт от репликационного юзера, то тестирования будет очень прилично. Триггеров реально много и бизнес-логики в них тоже много, например при поднятии статуса какой-нибудь операции вполне может создаваться ещё одна операция (и может получится, что одну и ту же операцию попробует создать и репликационный сервер и триггер в базе).Так что если все эти триггеры будут срабатывать и в резервной базе, то ого-го. В процессе репликации хочется просто перелить данные, без затрагивания бизнес-логики.
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383170
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
druffпри поднятии статуса какой-нибудь операции вполне может создаваться ещё одна
операция (и может получится, что одну и ту же операцию попробует создать и репликационный
сервер и триггер в базе).
Значит не надо реплицировать это создание операции, только и всего. Пусть триггера на
приёмнике делают свою работу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383180
druff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

А как сказать репликатору, что эту запись не нужно трогать? Но вообще.. если ради этого придётся править код с бизнесс-логикой, то такой вариант не подходит. Если придётся искать все места, где может встретится такое поведение и править триггеры репликатора, то такой вариант тоже не подходит. Отключение триггеров на приёмнике выглядит более безопасным вариантом, "коробочные" репликаторы так не умеют делать?
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383182
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
druffА как сказать репликатору, что эту запись не нужно трогать?
Для этого и существует условная репликация. Если, конечно, "автоматические" операции
валятся в ту же таблицу, что и "ручные". Если у разработчика хватило сообразительности
выделить их в отдельную таблицу, достаточно исключить эту таблицу из репликации целиком.

Отключать триггера на приёмнике умеет IBDataPump, который тоже с некоторой точки зрения -
репликатор.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383339
druff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

я наверное совсем не в теме, а что такое условная репликация?
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383346
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
druffчто такое условная репликация?
Это репликация, которая осуществляется только если операция удовлетворяет определённому
условию.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383404
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
druffБаза не моя, я только прикидываю как прикрутить к ней репликацию.Боюсь с репликацией на уровне SQL сервера ты получишь облом. Делай уровнем ниже, например на уровне снапшотов файловой системы или системы хранения данных, это не самый красивый вариант, но без исходников своей приклады у тебя особо и вариантов-то нет. Да, чтобы снять снапшот, надо сначала залочить базу nbackup-ом, потом снять снапшот, потом тем же nbackup-ом отпустить базу.

Опять же классический вариант фаиловер кластера, когда 2 ноды подключены с одной СХД по файберченнелу или по айскази для тебя никто не отменял.
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383408
druff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

А в чём может быть причина облома? Я себе примерно такой план представляю:
0) на боевую базу ставят всё что нужно для репликации/настраивают

1) раз в сутки (или после восстановления боевой) с боевой базы делается копия с перекрытием вчерашней копии, которая будет использоваться в качестве таргета для репликатора на ближайшие сутки или до ближайшей поломки боевой базы (что произойдет раньше)
2) на таргете отключают триггеры
3) включают репликатор с минимально возможной частотой перекачки данных и поднимают обе базы

в случае падения основной базы
4) дают завершить работу репликатору - докачать данные
5) гасят репликатор и боевой FB
6) на таргете включают отключенные триггеры
7) переносят таргет на боевой сервер и включают его

и в случае падения базы и в конце очередных суток опять выполняют пп 1-3

nbackup'у админы не доверяют. Говорят что уже получали не восстановимые копии. Снапшоты часто делать не получится, значит будут потерянные данные при поломке базы?

про фэйловер кластер не понял, там предпологается один инстанс FB или несколько?
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383415
druff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
план именно на случай софтового сбоя в FB, а они регулярны. Если ляжет железо боевого сервера, то в плане появятся ещё пункты с поднятием нового сервера, а сервер с таргетом в качестве боевого не будет использоваться никогда.
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383417
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
druffплан именно на случай софтового сбоя в FB, а они регулярны
Ахренетьдайтедва ©

Можно узнать, что и как вы делаете, что у вас случаются регулярные софтовые сбои ФБ?
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383432
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
druffпро фэйловер кластер не понял, там предпологается один инстанс FB или несколько?С файберному сундуку подключено 2 разных железки каждая со своим SQL сервером, смотрят на одну БД,но работают с ней строго по очереди, за чем следит спец софтина, кои есть как под винды так и под линуксы.
druffтакой план представляю:который обломается прямо на пункте 0: "настраивают". дальше тоже ужас, никак не коррелирующий с репликацией. Про триггера просто песня, Если основной сервер с базой упал, что тогда докачивать репликатору? оно же лежит уже.

Возможно я подхожу с точки зрения пессимистического сценария, но без исходников приклады я лично не решусь настраивать репликацию.

У нас есть реплицируемые и нереплицируемые таблицы, когда добавляем новые, то изначально просчитываем, что будет реплицироваться в оба конца(накладнушки и прочая первичка для них ПК разнесены по диапазонам), что только из центра на периферию (различные справочники), что вообще не будет трогаться репликатором и пересчитываться по месту (агрегаты всяческие), бывает что то, что можно было бы спокойно, не нарушая нормализации, хранить в одной таблице в угоду репликации раскладывается на несколько. Для отчетов выделен вообще отдельный сервер, который реплицируется строго в один конец и тд. и тп.
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383451
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyВозможно я подхожу с точки зрения пессимистического сценария, но без
исходников приклады я лично не решусь настраивать репликацию.
Ну, для первичной настройки должно хватить и исходников базы. Глюки приложения можно
выловить по ходу и поправить либо в приложении, либо обойти переделкой базы. Но таки да,
работа это большая и кропотливая. Поэтому все берут за неё бешеные бабки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383472
druff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonline, большие базы, большая нагрузка, работа с базой не по феншую. Если вы думаете что в FB нет багов, которые могут привести к необходимости восстанавливать базу, то вы ошибаетесь.


Ivan_Pisarevsky,

в чем именно "обломается" план я так и не услышал. Более конкретный пример можно привести?

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

Кроме вероятной потери данных за период с последней репликации (предположим 5 секунд), какие проблемы могут ещё быть?

Ivan_PisarevskyВозможно я подхожу с точки зрения пессимистического сценария, но без исходников приклады я лично не решусь настраивать репликацию.
Исходники есть, но приложений работающих с базой очень много, и если потребуется какое-то серьёзное вмешательство в их код - от этого варианта скорее всего откажутся, т.к. работа по анализу, разработке и тестированию будет очень и очень трудозатратной.
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383478
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
druff Если вы думаете что в FB нет багов, которые могут привести к необходимости восстанавливать базу, то вы ошибаетесь.

Если вам известны такие баги, то надо сообщить об этом трекеру.
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383502
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
druffmiwaonline, большие базы, большая нагрузка, работа с базой не по феншую. Если вы думаете что в FB нет багов, которые могут привести к необходимости восстанавливать базу, то вы ошибаетесь.

Я не думаю, что в ФБ нет багов; я удивлен, что вы так уверенно заявляете об их наличии. Воспроизводимые тест-кейсы этих багов есть? А соответствующие записи в трекере?

Кстати, пара гигабайт - это не большая база. И даже не средняя.
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383529
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
druffЕсли вы думаете что в FB нет багов, которые могут привести к необходимости восстанавливать базу, то вы ошибаетесь.Бэкап должен быть всегда, независимо от. Отказы по вине ФБ не выбиваются из вероятности отказа по питанию, отказа дисковой, фатальных ошибок персонала и т.п. Где-то величины одного порядка. Не вижу никакого смысла выделять их в отдельную статью.

druffИ ещё раз повторюсь, в моём случае репликатор рассматривается только для создания резервной копии базы.Возможно, имея в работе распределённую систему на базе ФБ я воспринимаю репликацию как нечто другое. Да возможно тотальная/безусловная односторонняя репликация и способна помочь сделать некую разновидность фаиловер кластера.

druffИсходники естьТогда есть шанс.
druffесли потребуется какое-то серьёзное вмешательство в их кодСтепень серьезности зависит от вашей структуры базы, это видно только вам. В любом случае настройка распределенной системы тот еще гемор.

Да когда можно отпустить клиента с товаром, несмотря на упавший интернет, это окупается. Хотя и тут есть проблемы, когда один офис выписывает накладную на отпуск с удаленного склада, клиент подъезжает с накладной, а там еще конь не валялся, т.к. система не оповестила наборщиков в виду отсутствия канала связи, а выписываюший не отзвонился(не смог/забыл/не знал что канал упал).
...
Рейтинг: 0 / 0
Как сделать второй страховочный сервер, если ляжет первый ?
    #38383653
druff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky ,

бэкапы делаются ессно ) основная цель - минимизировать время простоя при поломке основной базы независимо от того где был сбой: в железе или софте (сервер FB). И я попробую погонять репликаторы, чтобы понять достижимо ли это. Если есть альтернативное решение, то я с удовольствием бы о нём услышал (ну может какой-нибудь железный HACMP так умеет, но это очень дорого)

И база не пара гигабайт, а на порядок больше. Отправкой информации о багах занимаются админы. Но бизнесу ведь не скажешь, что дескать это ещё не пофиксенный или внезапно обнаруженный баг в новом релизе FB виноват в том, что всё остановилось, а родной отдел IT белый и пушистый.
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как сделать второй страховочный сервер, если ляжет первый ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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