powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Перенос Interbase из Windows в Linux
12 сообщений из 12, страница 1 из 1
Перенос Interbase из Windows в Linux
    #39741971
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня, знатокам InterBase.
Проблема такая. Нужно перенести базу из Винды в Линух.
Gbak - ом все перенес. UDF перетранслировал в Линухе и как мог протестировал.
Теперь бы поменять DDL для этих UDF, но КАК?
DROP старых процедур не проходит из-за зависимостей (они используются во внешних процедурах).
С внешними процедурами тоже ничего сделать не получается (ни удалить, ни 'деактивировать') - выдает сообщение:

This operation is not defined for system tables.
unsuccessful metadata update.
ERASE RDB$PROCEDURE_PARAMETERS failed.
invalid request BLR at offset 280.
function TIMEMINPLUS is not defined.
module name or entrypoint could not be found.

Естественно этого модуля нет, т.к. эта UDF изначально описана в модуле (.dll) для windows.

Подскажите, что-нибудь, плиииз.
...
Рейтинг: 0 / 0
Перенос Interbase из Windows в Linux
    #39741977
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa,

комментируй тела зависимых процедур. Потом как пересоздашь UDF с новой точкой входа раскоментриуй.
...
Рейтинг: 0 / 0
Перенос Interbase из Windows в Linux
    #39741979
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а на 1.5 можно было подменять BLR...
(чем я кстати и воспользовался до "переезда")
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перенос Interbase из Windows в Linux
    #39741984
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

Не получается. (Собственно это и делает деактивация.) Но ответ тот же - она хочет модуль, где описана UDF

....
function TIMEMINPLUS is not defined.
module name or entrypoint could not be found.
...
Рейтинг: 0 / 0
Перенос Interbase из Windows в Linux
    #39741986
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraaЕстественно этого модуля нет, т.к. эта UDF изначально описана в модуле (.dll) для windows.

Посмотри как они объявлены в системных таблицах. Если с расширением - просто переименуй
"перетранслированные" библиотеки (например libmyudf.so в myudf.dll.so). Если ещё и с путём
- зависит от версии сервера.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перенос Interbase из Windows в Linux
    #39741993
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Спасибо за идею.
Попробую.

Есть еще, конечно, вариант - деактивировать эти процедуры еще на Винде, перед тем, как сжимать
А на Линухе просто восстановить тела
Но боюсь, что заказчик взвоет.
...
Рейтинг: 0 / 0
Перенос Interbase из Windows в Linux
    #39741998
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
линки на линухе создай.
чтоб ничего не переименовывать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перенос Interbase из Windows в Linux
    #39742002
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraaUDF перетранслировал в Линухе и как мог протестировал.
Теперь бы поменять DDL для этих UDF, но КАК?

Ну я бы перерегистрировал их в винде без указания расширения (вместо myudf.dll просто myudf)
При сборке под Линуксом собрал-бы в файл myudf.so
и усе
...
Рейтинг: 0 / 0
Перенос Interbase из Windows в Linux
    #39742127
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovvoraaЕстественно этого модуля нет, т.к. эта UDF изначально описана в модуле (.dll) для windows.

Посмотри как они объявлены в системных таблицах. Если с расширением - просто переименуй
"перетранслированные" библиотеки (например libmyudf.so в myudf.dll.so). Если ещё и с путём
- зависит от версии сервера.


Переименовывать не стал. На Винде исторически сложилось, что эти UDF были в разных библиотеках, тем более, что в объявлениях они где большими буквами, где маленькими. А на Линухе их решили свести в одну.
Создал для каждого варианта ссылку. Почти прокатило.
Внешние процедуры удалось деактивировать - закомментарить тела. Зависимости убрались.
Но сами UDF удалить не получается. На DROP EXTERNAL FUNCTION BLABLABLA;
Выдает

This operation is not defined for system tables.
unsuccessful metadata update.
ERASE RDB$FUNCTION_ARGUMENTS failed.
lock conflict on no wait transaction.

Что это такое?
...
Рейтинг: 0 / 0
Перенос Interbase из Windows в Linux
    #39742139
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa,

есть ещё активные соединения. У тебя они в кеше метаданных застряли
...
Рейтинг: 0 / 0
Перенос Interbase из Windows в Linux
    #39742151
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

Наверно есть. А как от них избавиться. Ведь, что через isql, что через IBExpert все равно соединяться приходится.
Других быть не должно - база пока стоит локально на виртуальной машине.
...
Рейтинг: 0 / 0
Перенос Interbase из Windows в Linux
    #39742153
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraaА как от них избавиться.

Просто используй wait-транзакцию.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Перенос Interbase из Windows в Linux
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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