shared memory и "перехлест" подключений к БД

Обсуждение вопросов по администрированию СУБД Progress OpenEdge
van
Модератор
Сообщения: 407
Зарегистрирован: 12 июл 2001, 03:00

shared memory и "перехлест" подключений к БД

Сообщение van » 14 май 2007, 10:25

дано
------
линуксовый сервер с Progress 9.1D на котором живут две БД с разными именами, естественно.
функционально, это базы текущая и прошлого года.
доступ к базам осуществляется self-service подключениями через shared-memory.
скрипты запуска брокеров обеих БД прописаны в автозагрузку сервера.


суть проблемы
-----------------
при аварийной перезагрузке ОС возможна ситуация, когда процессы одной из БД не успевают полностью завершиться, и видимо при этом остается ссылка на сегменты shared-memory, но lk-файла уже нет. такая база сама не стартанет без "prostrct repair", ругаясь опять же на занятый сегмент shared-memory.
но брокер второй базы, у которой с завершением было все нормально, успешно стартует.
теперь внимание: эта вторая база начинает "прикидываться" первой!
т.е. пользовательские подключения, прописанные для первой базы, на самом деле начинают идти во вторую.
при этом, просмотр всеми стандартными средствами по критериям первой базы, покажет, что работает первая база.. но на самом-то деле она стоит, а работает вторая..
и сообщения о подключениях отражается в логе первой базы..
привожу кусочки логов баз с комментариями.

лог первой базы:
-------------------------------------------------------------------
[-ЗАВЕРШЕНИЕ ПРОЦЕССОВ, ИНИЦИИРОВАННОЕ SHUTDOWN-]
00:15:23 BROKER 0: SIGTERM received. (3694)
00:15:23 WDOG 5: KILL signal received. (298)
00:15:23 BROKER 0: Begin normal shutdown (2248)
00:15:23
00:15:23
00:15:23 Database /base/main/ns302ml was disconnected. (1015)
00:15:23 Database /base/main/ns302ml was disconnected. (1015)
[-НЕ УСПЕЛИ ОСВОБОДИТЬ SHARED MEMORY, СЕРВЕР УЖЕ ЛЕГ-]
[-ДАЛЕЕ, ОС ЗАГРУЗИЛАСЬ, НО ПЕРВАЯ БАЗА НЕ СТАРТУЕТ-]
[-А ЭТО УЖЕ КОННЕКТ, КОТОРЫЙ НА САМОМ ДЕЛЕ ОСУЩЕСТВЛЕН ВО ВТОРУЮ БАЗУ-]
00:25:11 Usr 8: Login by news_sv on /dev/pts/0. (452)
--------------------------------------------------------------------

лог второй базы:
-------------------------------------------------------------------
[-ЗАВЕРШЕНИЕ ПРОЦЕССОВ, ИНИЦИИРОВАННОЕ SHUTDOWN-]
00:15:23 APW 6: KILL signal received. (298)
00:15:23 BROKER 0: SIGTERM received. (3694)
00:15:23 WDOG 5: KILL signal received. (298)
Sat May 12 00:15:23 2007
00:15:23 BIW 7: KILL signal received. (298)
00:15:23 BROKER 0: Begin normal shutdown (2248)
00:15:23
00:15:23 Database /base2/oldmain/ns302old was disconnected. (1015)
00:15:27 BROKER : Removed shared memory with segment_id: 589842
00:15:27 BROKER : Removed shared memory with segment_id: 622611
00:15:27 BROKER : Removed shared memory with segment_id: 655380
00:15:27 BROKER : Removed shared memory with segment_id: 688149
00:15:27 BROKER : Removed shared memory with segment_id: 720918
00:15:27 BROKER : Removed shared memory with segment_id: 753687
00:15:27 BROKER : Multi-user session end. (334)
[-ВСЕ НОРМАЛЬНО ЗАВЕРШИЛОСЬ-]
[-ЗАРУЗИЛАСЬ ОС, СТАРТУЕТ БРОКЕР ВТОРОЙ БАЗЫ-]
Sat May 12 00:19:17 2007
00:19:17 BROKER 0: Multi-user session begin. (333)
00:19:18 BROKER 0: Begin Physical Redo Phase at 192 . (5326)
00:19:19 BROKER 0: Physical Redo Phase Completed at blk 272 off 1518 upd 263. (
00:19:19 BROKER 0: Started for ns302old using tcp, pid 733. (5644)
00:19:19 WDOG 5: Started. (2518)
00:19:19 APW 6: Started. (2518)
00:19:19 BIW 7: Started. (2518)
00:19:20 BROKER 0: PROGRESS Version 9.1D on LINUX. (4234)
00:19:20 BROKER 0: Server started by root on /dev/console. (4281)
00:19:20 BROKER 0: Started using pid: 733. (6574)
00:19:20 BROKER 0: Physical Database Name (-db): /base2/oldmain/ns302old. (4235
00:19:20 BROKER 0: Database Type (-dt): PROGRESS. (4236)
[-ДАЛЕЕ, ОБЫЧНЫЙ ЛОГ СТАРТА-]
-------------------------------------------------------------------

вопросы
----------
1. это мы такие уникальные, или кто-то уже наступал на такие грабли?
прошвырнулись по англоязычным форумам: тишина..
2. чья ошибка, наша или вендора.. и что вообще предпринять?
со своей стороны, есть подозрение только на то, что все базы по сути
сделаны из одной. быть может, "prostrct repair" правит в структуре БД не все идентификаторы?

Аватара пользователя
Arelav
Администратор
Сообщения: 1881
Зарегистрирован: 25 мар 2005, 17:05
Откуда: Progress Technologies

Сообщение Arelav » 14 май 2007, 15:44

глянь сюда, я на это уже нарывался :)



van
Модератор
Сообщения: 407
Зарегистрирован: 12 июл 2001, 03:00

Сообщение van » 14 май 2007, 16:04

и верно!
а я у себя-то и не догадался посмотреть. спасибо!

кстати, обозвал бы тогда тему скромнее и ближе к технике, она бы больше на виду была.. литературный ты наш ;)

Аватара пользователя
dmi
Старожил
Сообщения: 1523
Зарегистрирован: 27 сен 2001, 03:00
Откуда: Москва

Сообщение dmi » 14 май 2007, 23:22


Аватара пользователя
Arelav
Администратор
Сообщения: 1881
Зарегистрирован: 25 мар 2005, 17:05
Откуда: Progress Technologies

Сообщение Arelav » 15 май 2007, 05:23