Начало » Использование СУБД » Firebird, HQbird, InterBase » Как правильно остановить сервер Firebird? (и все-таки, я прав или не прав?)
Как правильно остановить сервер Firebird? [сообщение #2100] |
Mon, 17 April 2023 15:05 |
shalamyansky
Сообщений: 150 Зарегистрирован: August 2022
|
Senior Member |
|
|
Под управлением сервера находятся N баз, к каждой из них есть некое количество коннектов, некоторые из которых находятся в состоянии открытой незавершенной пишущей транзакции. Возможно также в некоторых базах запущен процесс чистки мусора. В какой-то произвольный момент возникает желание остановить/перезапустить сервер СУБД/компьютер.
Я предполагаю, точнее, надеюсь, что если остановить Firebird штатными методами ОС (net stop для сервиса Windows), то он все базы освободит аккуратно, и максимальная неприятность, которая может случиться, - неподтвержденные записи останутся в качестве мусора, который потом со временем чистильщик подчистит. И базы не побьются, и не нужно никаких специальных предварительных действий по изгнанию всех юзеров и закрытию всех коннектов.
Я прав или не прав? Подтвердите, пожалуйста, а то что-то закрались подлые сомнения и спать спокойно не дают.
P.S.
SuperServer mode, если это важно.
|
|
|
|
Re: Как правильно остановить сервер Firebird? [сообщение #2102 является ответом на сообщение #2101] |
Mon, 17 April 2023 15:55 |
shalamyansky
Сообщений: 150 Зарегистрирован: August 2022
|
Senior Member |
|
|
Если делать shutdown - по всем базам надо пробежаться. И, главное, потом перед запуском обязательно сделать обратную операцию, а то ведь не заработает. Вот как раз этого и хотелось бы избежать, вот в этом-то и вопрос. Вообще-то вопрос связан с автоматизацией закрытия. На некоторые внешние события, например, намерение ОС завершить свою работу, или сигнал от ИБП, или просто желание администратора, запускается скрипт, аккуратно закрывающий то, что следует закрыть. Для непосредственно Firebird сейчас это просто net stop, и это удобно и приятно, если этого достаточно. Если к нему надо будет писать еще скрипт на открытие, переводящий все базы (надо еще понять, что такое "все базы") в online, то это уже не столь удобно и приятно.
|
|
|
Re: Как правильно остановить сервер Firebird? [сообщение #2103 является ответом на сообщение #2102] |
Mon, 17 April 2023 21:16 |
|
Старый Плюшев
Сообщений: 95 Зарегистрирован: August 2022 Географическое положение: Ленинград
|
Member |
|
|
Виш ли какое дело. У меня нет опыта работы с супером, одновременно обслуживающим десятки баз. На примере классики и классики древней, я мог бы сказать что база повреждается примерно один раз на тысячу убиений сервера. Но, сцуко, по закону Всемирной Подлости это всегда происходит на рабочей базе, а не на тренировочных. Причём проявляется не сразу, всё по тому же закону. Бьются индексы PK-FK и через пару недель сотня дубликатов и записей без родителя. Касательно текущего момента тебе могли бы сказать люди, которые на "ты" с кодом. Но они не скажут. Ибо во многая знания многая печали. Ответственность, панимаш. Вроде как не должно, а вдруг - и грех на душе
|
|
|
Re: Как правильно остановить сервер Firebird? [сообщение #2104 является ответом на сообщение #2103] |
Mon, 17 April 2023 21:54 |
shalamyansky
Сообщений: 150 Зарегистрирован: August 2022
|
Senior Member |
|
|
Старый Плюшев писал(а) Mon, 17 April 2023 21:16Вроде как не должно
Вот такой ответ от людей, приближенных к телу коду, меня вполне устроил был. Оставшуюся долю ответственности я взвалил бы на себя. Это можно было бы понимать, что люди думали на эту тему, приняли меры по предотвращению, ну уж а что получилось, отдают как есть, пользуйтесь. Совершенно нормальный и повсеместный подход.
Цитата:по закону Всемирной Подлости это всегда происходит на рабочей базе, а не на тренировочных
Кроме упомянутого закона, который, конечно же, никто не отменял, действует еще и обычная теория вероятности. Во сколько раз больше нагрузка на активно используемую базу, во столько раз больше и вероятность её сбоя.
|
|
|
|
Re: Как правильно остановить сервер Firebird? [сообщение #2114 является ответом на сообщение #2105] |
Tue, 18 April 2023 17:36 |
shalamyansky
Сообщений: 150 Зарегистрирован: August 2022
|
Senior Member |
|
|
Разработчик пришел, увидел, промолчал. Я понял, молчание - знак согласия. Значит, будем продолжать, спасибо.
Ни в одном из руководств администратора Firebird нет рекомендаций или предупреждений по остановке сервера. Можно подумать, что, будучи раз запущенным, сервер будет жить вечно. Только в "Ред База Данных Версия 3.0 Руководство администратора" есть раздел 4.6 "Запуск и остановка сервера", но там в подразделе про Windows приведена лишь картинка менеджера сервисов и два слова, как мышкой сервис запустить. Упоминание возможности перевода одной базы в shutdown есть в рассказе по утилиту gfix, но никакой связи с остановом сервера не проводится.
Если рекомендаций по особым действиям нет, следовательно, особые действия и не нужны.
По своему скромному опыту могу сказать, что ни разу штатное завершение работы сервера к каким-либо неприятностям не привело. Чего, увы, нельзя сказать про нештатное завершение.
|
|
|
|
Переход к форуму:
Текущее время: Wed Nov 27 07:23:03 GMT+3 2024
Общее время, затраченное на создание страницы: 0.01503 секунд
|