Страница 1 из 1

Зависание сервера FB 2.1.3 при ресторе

Добавлено: 19 май 2010, 16:38
TAV
Два сервера Windows 2003 SP2 RU (все обновления).
Сервер FB 2.1.3 SS на обоих.

Разное только железо:
Сервер 1:
Тип ЦП Intel Celeron D 320, 2400 MHz (18 x 133)
Системная плата Asus P4P800S-X
Чипсет системной платы i848P
ОЗУ 512 Мб

Название ОС Microsoft Windows Server 2003, Standard Edition
Версия ОС 5.2.3790 (Win2003 Retail)
Сервер 2:
Тип ЦП DualCore Intel Celeron E1400, 2000 MHz (10 x 200)
Системная плата Foxconn G31MVP
ОЗУ 1 Гб

Название ОС Microsoft Windows Server 2003, Standard Edition
Версия ОС 5.2.3790 (Win2003 Retail)
запускается одна и та же команда восстановления БД.

Код: Выделить всё

gbak.exe -c -user SYSDBA -pass m -se localhost:service_mgr -p 4096 -rep -v -y C:\BATBACKUP\BSRrst.log D:\Work\Court\IbsData\ExtBsr.fbk C:\BATBACKUP\ExtBsr.fdb
на "Сервер 1" все проходит нормально.
на "Сервер 2" зависание сервера FB на моменте "commiting metadata", то есть уже в самом конце восстановления.
Восстановление проводил и через IBExpert и через данную команду - ситуация одинаковая.
Причем сервер FB можно поднять только перезагрузив компьютер либо сняв процесс fbserver в диспетчере задач. При этом процессор не загружен и fbserver тихо молчит не ест даже память.
Потом БД нормально открывается и работает.

в логе FB вот такое сообщение:

Код: Выделить всё

SERVER35 (Client)	Wed May 19 18:10:14 2010
INET/inet_error: read errno = 10054

Re: Зависание сервера FB 2.1.3 при ресторе

Добавлено: 19 май 2010, 17:27
hvlad
TAV писал(а):на "Сервер 1" все проходит нормально.
на "Сервер 2" зависание сервера FB на моменте "commiting metadata", то есть уже в самом конце восстановления.
Восстановление проводил и через IBExpert и через данную команду - ситуация одинаковая.
Причем сервер FB можно поднять только перезагрузив компьютер либо сняв процесс fbserver в диспетчере задач. При этом процессор не загружен и fbserver тихо молчит не ест даже память.
А диск что-то делает ?
Бекап один и тот же ?
Что изменено в firebird.conf ?
TAV писал(а):Потом БД нормально открывается и работает.
gfix -v -full что-то выдаёт ?

Re: Зависание сервера FB 2.1.3 при ресторе

Добавлено: 19 май 2010, 17:47
kdv
вдогонку - опция -rep используется осознанно? А то мало-ли что.

Re: Зависание сервера FB 2.1.3 при ресторе

Добавлено: 20 май 2010, 07:58
TAV
hvlad писал(а):А диск что-то делает ?
ничего
hvlad писал(а):Бекап один и тот же ?
Нет, перед восстановлением делается бекап с основного сервера БД. И на том, и на том.
Команда:

Код: Выделить всё

gbak.exe -b -user SYSDBA -pass m server51:db_name D:\Work\Court\IbsData\ExtBsr.fbk
Провел эксперимент. Взял бекап с "Сервер 1". Тот же эффект.
hvlad писал(а):Что изменено в firebird.conf ?
По умолчанию.
hvlad писал(а):gfix -v -full что-то выдаёт ?

Код: Выделить всё

gfix -v -full -user SYSDBA -pass m localhost:db_name
Ничего не выдает

Лог gbak

Код: Выделить всё

gbak:    committing metadata 
после этого зависание. Потом если снять процесс сервера FB, IBExpert выдает:

Код: Выделить всё

IBE: Unsuccessful execution caused by a system error that precludes
     successful execution of subsequent statements.
     Unable to complete network request to host "localhost".
     Error reading data from the connection.
     Удаленный хост принудительно разорвал существующее подключение. .
IBE: Restore completed. Current time: 9:55:08. Elapsed time: 00:04:19

Re: Зависание сервера FB 2.1.3 при ресторе

Добавлено: 20 май 2010, 08:01
TAV
kdv писал(а):вдогонку - опция -rep используется осознанно? А то мало-ли что.
Да, осознанно. БД восстанавливается НЕ на рабочую базу поверх, которая потом копируется с остановкой сервера.

Re: Зависание сервера FB 2.1.3 при ресторе

Добавлено: 20 май 2010, 11:08
kdv
все равно, использовать -rep - плохая привычка. на рабочую, на нерабочую, не на рабочую - какая разница? Шваркнете в какой-то момент поверх рабочей, и привет.

Re: Зависание сервера FB 2.1.3 при ресторе

Добавлено: 20 май 2010, 11:38
hvlad
Ставишь сборку с pdb и настраиваешь ватсона
В момент зависания убиваешь процесс ватсоном : drwtsn32 -p PID
Креш лог шлёшь мне на посмотреть

Re: Зависание сервера FB 2.1.3 при ресторе

Добавлено: 21 май 2010, 07:37
TAV
hvlad писал(а):Ставишь сборку с pdb и настраиваешь ватсона
В момент зависания убиваешь процесс ватсоном : drwtsn32 -p PID
Креш лог шлёшь мне на посмотреть
вот лог
http://ifolder.ru/17803473

Re: Зависание сервера FB 2.1.3 при ресторе

Добавлено: 22 май 2010, 00:58
hvlad
У тебя там UDF есть - AGORA_CONTEXT.DLL.
Движок её загружает, она инициализируется и висит в CoCreateInstance.
Выше по стеку есть DcomChannelSetHResult - она часом не удалённый объект создаёт ?

Вообще-то в DllMain мало что можно делать. Я не уверен, что CoCreateInstance - вызывать безопасно...

Re: Зависание сервера FB 2.1.3 при ресторе

Добавлено: 24 май 2010, 07:39
TAV
hvlad писал(а):У тебя там UDF есть - AGORA_CONTEXT.DLL.
Движок её загружает, она инициализируется и висит в CoCreateInstance.
Выше по стеку есть DcomChannelSetHResult - она часом не удалённый объект создаёт ?

Вообще-то в DllMain мало что можно делать. Я не уверен, что CoCreateInstance - вызывать безопасно...
Да есть такая UDF.
Исходников ее нет. Сказать точно не могу что там вызывается в DllMain. Предположительно там инициализируется объект модуля морфологического разбора, который ставится отдельно.
После его инсталляции рестор прошел нормально.

Но интересно другое, на компьютере с неустановленным модулем морф.-го разбора рестор проходит нормально, правда система там Windows 7.

Re: Зависание сервера FB 2.1.3 при ресторе

Добавлено: 25 июн 2010, 11:46
sergei7
У тебя там UDF есть - AGORA_CONTEXT.DLL.
Движок её загружает, она инициализируется и висит в CoCreateInstance.
Общий вопрос: А зачем при ресторе это (загружать и инициализировать) делать?
С чем связано такое ограничение?

Re: Зависание сервера FB 2.1.3 при ресторе

Добавлено: 25 июн 2010, 12:35
hvlad
sergei7 писал(а):
У тебя там UDF есть - AGORA_CONTEXT.DLL.
Движок её загружает, она инициализируется и висит в CoCreateInstance.
Общий вопрос: А зачем при ресторе это (загружать и инициализировать) делать?
Движок парсит BLR и строит зависимости (RDB$DEPENDENCIES). Зависимости не бекапятся, а строятся заново при ресторе.
sergei7 писал(а):С чем связано такое ограничение?
Какое ограничение ?

Re: Зависание сервера FB 2.1.3 при ресторе

Добавлено: 25 июн 2010, 12:46
sergei7
hvlad писал(а):Какое ограничение ?
Ограничением я называю необходимость инициализации UDF при restore.
И все-таки я не понял - какое отношение построение зависимостей имеет к инициализации UDF? Если не сложно - объясните, пожалуйста, подробнее.

Re: Зависание сервера FB 2.1.3 при ресторе

Добавлено: 25 июн 2010, 13:36
hvlad
sergei7 писал(а):
hvlad писал(а):Какое ограничение ?
Ограничением я называю необходимость инициализации UDF при restore.
И все-таки я не понял - какое отношение построение зависимостей имеет к инициализации UDF? Если не сложно - объясните, пожалуйста, подробнее.
Когда BLR парсится, все зависимые объекты (в частности - DLL с UDF) также загружаются в память.
Никакой "инициализации UDF движком" не существует.

Re: Зависание сервера FB 2.1.3 при ресторе

Добавлено: 25 июн 2010, 13:37
sergei7
Спасибо за пояснение.