Страница 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
после этого зависание. Потом если снять процесс сервера 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
Спасибо за пояснение.