Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2012.02.12;
Скачать: [xml.tar.bz2];

Вниз

Получить список компьютеров, подключенных к конкретной БД   Найти похожие ветки 

 
fearless   (2010-04-19 12:38) [0]

Вступление:
Есть какая-то убожеская программа, писанная на питоне, работает с Firebird-ом 1.5.6 (классик). В центральном офисе на сервере работают одновременно с 3-мя БД: (своя, 1-ого филиала, 2-ого филиала). На филиалах создается резервная копия БД gbak-ом, пересылается по почте на центральный офис. Здесь тем же gbak-ом идет восстановление БД из присланной резервной копии. На центральном офисе работают с офф-лайн копией филиальной БД, поэтому изменений не вносят, просто формируют какие-то отчеты. Теперь суть проблемы: Когда начинаю процесс восстановления БД - выдает ошибку, т.к. база кем-то занята. По имени пользователя установить пользователя, сидящего в БД невозможно из-за дебильности самой программы - все юзеры как на центральном офисе, так и на всех филиалах работают под SYSDBA/masterkey, причем строка подключения записана в самописных библиотеках питона, код которых недоступен. Остается выход один - вычислять по IP-адерсу или имени компьютера. И даже нашел такую программу - InterBase Connections. В ней можно закрыть соединение по IP-адресу, но нет возможности глянуть к какой БД подключен пользователь. В итоге надо или рубить всех, кто потенциально там засиживается, либо обзванивать всех и просить выйти из БД филиала. Пока обзвонишь последнего - первый уже опять залезет.
Хотелось бы иметь нечто, что сначало выкинуло всех из указанной БД, а потом уже запустило gbak.
Есть какие-то соображения по этому поводу?


 
turbouser ©   (2010-04-19 12:48) [1]


> fearless   (19.04.10 12:38)  


> работают одновременно с 3-мя БД: (своя, 1-ого филиала, 2-
> ого филиала)

Oo кошмар.. так трудно наладить репликацию??

> Хотелось бы иметь нечто, что сначало выкинуло всех из указанной
> БД

database shutdown


 
turbouser ©   (2010-04-19 14:47) [2]


> turbouser ©   (19.04.10 12:48) [1]


> работают под SYSDBA/masterkey

А..
тогда shutdown не поможет..


 
turbouser ©   (2010-04-19 14:56) [3]

В FB 2.1 есть табличка MON$ATTACHMENTS с информацией о коннектах..
если же нельзя перейти с 1.5 то остается только смотреть кто подключен к порту FB (3050 по умолчанию) например утилиткой tcpview


 
fearless   (2010-04-19 15:07) [4]

shutdown не помогает, только что опробовал((

На FB 2.1 пытался перейти - не хочет, вываливает огромное кол-во ошибок в консоль отладки. Кто подключен к порту - узнать не проблема, а вот кто к какой БД подключен - вот в чем вопрос. Т.е. из одной базы можно легко выкинуть пользователя (т.к. она посути оффлайн версия актуальной базы), а вот с другой (БД самого офиса) такой фокус делать нельзя (пропадут еще не дай бог какие-то бесценные наборки).


 
turbouser ©   (2010-04-19 15:20) [5]


> fearless   (19.04.10 15:07) [4]

Тогда административно всем объявить - "с 2-х до 3-х у нас на сервере профилактика. Все соединения с бд будут автоматически сброшены. Кто не успел - ССЗБ"
Но все-таки лучше соорудить нормальную репликацию и работать с одной бд.


 
Sergey13 ©   (2010-04-19 15:36) [6]

Можно запускать восстановление ночью, по расписанию.


 
turbouser ©   (2010-04-19 16:00) [7]


> Sergey13 ©   (19.04.10 15:36) [6]
>
> Можно запускать восстановление ночью, по расписанию.
>

А если кто-то не закрыл на ночь программу и коннект болтается?
IMO надо официально предупредить пользователей, чтоб отключались, а в заданный час restart service & backup -)


 
turbouser ©   (2010-04-19 16:02) [8]

Хотя, бардак это, конечно.. Мало того, что юзеры с админскими правами работают, так еще и пароль админский стандартный.. да еще и куча баз..


 
fearless   (2010-04-19 16:16) [9]

>> turbouser

Совершенно согласен (на счет бардака). И если бы была какая-нибудь номинация "Самая дебильная программа года" - это убожище всегда бы брало там Гран-при.

С правами там вообще весело: имен пользователей там нет, есть только пароли, прежде чем создать пользователя надо придумать ему уникальный цифровой пассворд. А если надо дать какие-то особые права на некоторые проводки/операции и т.п. - тогда только через разработчиков. Высылают несколько обновленных скриптов (а их там 6500!!!), в которых будет прописано приблизительно следующее:

если (пароль = "123") тогда делать то-то.... // 123 - это пароль главбуха, ему эта операция разрешена
иначе МесседжБокс("Доступ запрещен")

Кстати, все это зовется "Система управления предприятием"


 
sniknik ©   (2010-04-19 16:38) [10]

> причем строка подключения записана в самописных библиотеках питона, код которых недоступен.
этого не может быть, питон скриптовый язык, если нет исходников то должны быть скомпилированные в его байт-код модули (которые должны нормально "раскомпилироваться", правда не знаю как, не занимался этим (подозреваю что аналогично фохпрошному разборшику, чем занимался раньше, и есть утилита для этого)), если же используется левая "сборка в exe" то она у него тоже разбирается (там что-то типа архива из тех же модулей + интерпретатор питона).


 
fearless   (2010-04-19 17:10) [11]

>>sniknik
строчка ....sysdba ....... masterkey.... содержится в файле password2.pyc
что здесь такого невозможного?

Файл действительно скомпилирован в питоновский байт-код. Декомпилятор питона когда-то видел на сайте, он тоже писан на питоне. В общем не было ни времени ни желания разбираться с этой фигней. Да и смысл какой? Поменять имя пользователя/пароль по умолчанию разве что. Ну будет не sysdba, а ivan, не masterkey, а pupkin. Но его все равно прийдется сделать администратором БД (иначе что-нибудь, но неприменно перестанет там работать). Главная проблема - права доступа раздаются на уровне скриптов, а не БД, и она ведь от этого не уйдет.

Начал копать в сторону репликации БД.


 
sniknik ©   (2010-04-19 17:24) [12]

> ... содержится в файле password2.pyc
> что здесь такого невозможного?
не невозможно то, что содержится, невозможно то что код не доступен... т.к. этот файл из байткода должен легко "разбираться" в обратку. и + для питона, даже с форматированием (отступы), т.к. у него это часть синтаксиса.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2012.02.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.004 c
11-1241182092
DmitriyR
2009-05-01 16:48
2012.02.12
KOL & WinCE


6-1239173060
MindWork
2009-04-08 10:44
2012.02.12
IdHTTPProxyServer и tmStreaming


15-1319446323
Dennis I. Komarov
2011-10-24 12:52
2012.02.12
Что за моде пошла - инсталлить exe в AppData?


15-1319421182
Nic
2011-10-24 05:53
2012.02.12
Автоматическая сортировка DBGridEh


15-1319187613
George
2011-10-21 13:00
2012.02.12
Расчет индекса Хирша





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский