powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / подскажите способ запретить подключиться к базе (на время)
25 сообщений из 28, страница 1 из 2
подскажите способ запретить подключиться к базе (на время)
    #39983884
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация:
FB 2.1, Win
Базы в синхронизации, работает служба, подключающаяся к обеим базам.
Наступает время обновления ПО

Надо конвертировать метаданные БД, и на это время запретить службе синхронизации подключаться к БД.

Подскажите, в какую сторону мне смотреть. если учитывать что и служба и конвертер подключается к БД под одним и тем же SYSDBA.
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39983891
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747
Ситуация:
FB 2.1, Win
Базы в синхронизации, работает служба, подключающаяся к обеим базам.
Наступает время обновления ПО

Надо конвертировать метаданные БД, и на это время запретить службе синхронизации подключаться к БД.

Подскажите, в какую сторону мне смотреть. если учитывать что и служба и конвертер подключается к БД под одним и тем же SYSDBA.

Я делаю так:
1. Из обновлятора посылаю эвэнт с просьбой отключиться;
2. Жду минутку;
3. В это время клиенты отключаются, и начинают ждать, когда база перестанет быть доступной; после этого - они начинают ждать, когда база снова станет доступной;
4. Через минутку обновлятор тушит службу FB;
5. Переименовывает файл базы; (дубликат сохраняет за одно)
6. Запускает FB, подключается к этому переименованному файлу БД, обновляет базу (при ошибке - возвращает дубликат);
7. Тушит FB, переименовывает файл базы назад, запускает FB;
8. Всё, клиенты подключаются.
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39983892
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747,

Еще в gfix есть ключ, который выгоняет всех пользователей принудительно, можно даже SYSDBA, еще можно поудалять записи из MON$ATTACHMENTS.
Но лично мне такое не подходит по ряду причин.
Да и не помню, как с этим в 2.1.
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39983898
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747на это время запретить службе синхронизации подключаться к БД.

net stop <твоя служба синхронизации>
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39983903
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747> Подскажите, в какую сторону мне смотреть

Зависит от.

Про переименование после стопа сервера
уже подсказали, это дедовский способ.
Про стоп службы синхронизации тоже.
Я бы ещё уточнил, какие есть способы
управления/настройки у самой службы
синхронизации - возможно, у неё есть
команда "стоп", наверняка есть параметр
"строка коннекта к БД" и т.д.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39983978
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
net stop <твоя служба синхронизации>

Увы, служба может располагаться на удаленном ПК.
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39983980
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам

Про переименование после стопа сервера
уже подсказали, это дедовский способ.


Я бы попросил... Дедовский способ - ремня за SYSDBA для службы для начала, а дальше банальный gfix -shut -f 0. Коннекты от других SYSDBA он тоже отсечёт, но если они настырно полезут снова, то влезут. Потому и ремня.
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39983994
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747служба может располагаться на удаленном ПК.
Ты не поверишь, но NET способен остановить и удалённую службу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984098
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Cobalt747служба может располагаться на удаленном ПК.
Ты не поверишь, но NET способен остановить и удалённую службу.

Остановить всю синхронизацию на несколько десятков ПК только для обновления одного ПК - это перебор.
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984105
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747Остановить всю синхронизацию на несколько десятков ПК только для обновления одного ПК -
это перебор.

Обновлять только одного клиента из нескольких десятков, на которых идёт синхронизация -
самая большая глупость, которую я только слышал. Ты хочешь, чтобы новые таблицы не
синхронизировались или синхронизация падала на удалённых таблицах или чтобы
синхронизировалась только часть данных в модифицированных таблицах?

Обычно либо весь кластер обновляется за раз в одно технологическое окно, либо обновляется
мастер-нода, а изменения расползаются на подчинённые автоматически с помощью той же
синхронизации.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984119
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Посылаю эвент приложению. Приложение включает таймер на 5 минут и выводит сообщение, мол прошу завершить
работу, иначе через 5 минут приложение будет завершено принудительно.
Кто за компьютером, им 5 минут хватает на завершение, а кто ушел и оставил комп, ну, значит не надо, приложение
само завершает работу по таймеру.
2. Чтобы за эти 5 минут не подключились новые пользователи, в триггере на подключение
"отшиваю" всех, кроме себя
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
CREATE OR ALTER TRIGGER "_CONNECT"
ACTIVE ON CONNECT POSITION 0
AS
.........................
declare variable Err varchar(150);
............................
begin
.........................
  Err='Извините, но доступ к данным временно закрыт в связи с профилактическими работами. тел. 8-905..........7, ...........';
...........................
  if ((current_user<>'SYSDBA') and (current_user<>'********')) then
    begin
       if (gen_id(gen_close_*****,0)<>0) then exception e_exception_1(:err);
       if (gen_id(gen_close_*****,0)<>0) then exception e_exception_1(:err);
 ...................     
       if (gen_id(gen_close_all_app,0)<>0) then exception e_exception_1(:err);
    end
end
^


закрытие приложений (их может быть несколько на одну БД) регулирую состоянием соответствующих генераторов.
gen_close_all_app закрывает всю БД от всех приложений
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984121
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СПМ> Я бы попросил... Дедовский способ

Я ж с маленькой буквы написал.
Сисдба менять, конечно, надо, но
я говорил с т.з. их текущих реалий.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984127
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Я вас умоляю, какой кластер?
просто десятки касс, разбросанных по городу/городам.
такое обновление может идти даже не один день
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984137
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747такое обновление может идти даже не один день

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

Да там-то проблем нет - где обновились на новую версию - там идёт синхронизация, где не обновились - не идёт.

При том реально-то проблем с конвертированием баз-то пока не было зарегистрировано, но клиент жалуется непонятно на что, вот я и подумал, что тут МОЖЕТ возникать именно такая проблема.
Но клиент жалуется на другое )))
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984196
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747,

ну хорошо. Обновление на ЦБД прошло. А как потом синхронизатор синхронизирует DDL и DML после обновления?
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984307
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747такое обновление может идти даже не один день

Тогда просто останавливаешь сервер, обновляешь базу в embedded mode, запускаешь сервер
обратно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984310
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для (Linux) классика - не "просто". Но это уже отмечалось.

P.S.
В очередной раз повторил: "Я буду внимательнее".
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984312
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Тогда просто останавливаешь сервер, обновляешь базу в embedded mode, запускаешь сервер обратно.
Для извращенных почиталей сисдба,для котрых шатдаун не указ - есть файрвол, ну как полумера, чтоб сосем не гасить сервак.
Хотя я бы рекомендовал выпилить сисдба.
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984315
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в чём проблема его погасить-то? Ах да, в 2.1, я тоже должен тренировать внимательность.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984326
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да внимательность и сейчас не вредно тренировать.
Просто потому, что fbguard может вернуть ошибку при остановке процесса firebird и сервис будет перестартован, как "упавший". Не часто, но бывает. Ну и для винды сценарий "процесс завершился с ненулевым кодом и SCM его перестартовал" - вполне реален.
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984352
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Да внимательность и сейчас не вредно тренировать.
Просто потому, что fbguard может вернуть ошибку при остановке процесса firebird и сервис будет перестартован, как "упавший". Не часто, но бывает. Ну и для винды сценарий "процесс завершился с ненулевым кодом и SCM его перестартовал" - вполне реален.
даже на ХР гвардеец нахрен не нужен.
он был оправдан на 95/98.
но стюардессу до сих пор не закопали...
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984364
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
А в чём проблема его погасить-то?
один инстанс может обслуживать более одной бд, гасить весь... а как остальные базы?
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984373
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky
есть файрвол
Хотя как в виндах его заскриптовать, чтобы по команде гасли определенные айпи я решительно не в курсе, для айпитаблес как два байта переслать, а вот кнопочки в виндовом гуи для меня темный лес с партизанами...
...
Рейтинг: 0 / 0
подскажите способ запретить подключиться к базе (на время)
    #39984379
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
даже на ХР гвардеец нахрен не нужен.
fbguard/firebird это для линукса. Хотя и там можно без него.
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / подскажите способ запретить подключиться к базе (на время)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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