Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 Доступ к базе клиентами разной разрядности  [new]
Док
Member

Откуда: Казань
Сообщений: 7136
В качестве эксперимента: запустил два сервера разной разрядности в дефолтными конфигами в одной ОСи (венда)

"D:\<skiped>\Firebird_3_0_7_x32\firebird.exe" -a -p 30732 (x32)
"D:\<skiped>\Firebird_3_0_7_x64\firebird.exe" -a -p 30764 (x64)

Цепляюсь птичкой x64 по TCP/IP (из своего софта) - коннект есть. Параллельно пытаюсь открыть эту же базу через 32-битный сервер (IBE) - получаю отлуп:
Error Message:
----------------------------------------
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
I/O error during "CreateFile (open)" operation for file "D:\ARCHIVE\CODE_SOURCE\LEYBASOFT_ARM_V5\DBASE\ARMDOC_5000_UNICODE_FB3.FDB".
Error while trying to open file.
Процесс не может получить доступ к файлу, так как этот файл занят другим процессом. .
------------------------------------------------------------------------------------------------------------------------------------
SQLCODE: -902
SQLSTATE: 08001
GDSCODE: 335544344


Если закрыть коннект 64-битного сервера, то коннект в 32-битном проходит успешно. Также коннекты успешны, если цепляться к базе через сервер одной и той же разрядности в пределах одной ОСи.

Так должно быть? Или что-то в конфигах крутить надо?
=================
Док.

Win10 Ultim x64/Deb 10 amd64/Darwin Cocoa:
FB 3.0.7.33374, Lazarus 2.1(trunk); FPC 3.3.1(trunk)
13 сен 21, 22:57    [22371477]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30059
Док,

если суперсервер, то даже одинаковой разрядности два разных не пройдут.
А если классик или суперклассик - то да, разная разрядность - отказать, одинаковая - можно.
Собственно, 32-разрядные сервера ФБ сейчас имеет смысл пользовать только если у тебя есть 32разрядные UDF, которые нечем заменить для 64 (ни перекомпилировать, ни заменить встроенными функциями).
13 сен 21, 23:00    [22371480]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 1037
Я наверное мохом порос, но от идеи цепляться к одной базе двумя серверами одновременно у меня что-то глаза на лоб лезут независимо от разрядностей...
13 сен 21, 23:01    [22371482]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30059
Старый плюшевый мишка,

так-то, если оба классика, смысла и правда нет. А вот если один классик, а другой суперклассик - да.
Настраиваем на суперклассике память сортировок, и отправляем туда отчетные запросы.
Тогда - профит. Хотя, опять же, память сортировок можно вздуть и на классике, она же выделяется только по мере надобности.

Так что, самое осмысленное - это несколько приложений в режиме embedded на одном компе. Тут - да, они все типа суперсклассик.
13 сен 21, 23:07    [22371485]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
hvlad
Member

Откуда:
Сообщений: 11452
kdv
А если классик или суперклассик - то да, разная разрядность - отказать
В 4-ке уже можно
13 сен 21, 23:15    [22371489]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
Док
Member

Откуда: Казань
Сообщений: 7136
Старый плюшевый мишка,

это от нужды: IDE (Лазарь) в дебаге собирает х64 экшеник, соответственно требует 64-битного клиента. А вот IBE, как выяснилось, бывает в природе только 32-битный. Вот и приходится, как светофору, пускать движение поочередно :)


kdv
Собственно, 32-разрядные сервера ФБ сейчас имеет смысл пользовать только если у тебя есть 32разрядные UDF, которые нечем заменить для 64 (ни перекомпилировать, ни заменить встроенными функциями).

IBE, к сожалению, кушает только 32-битного клиента. Что-то другое для отладки запросов ставить не хочется
13 сен 21, 23:46    [22371498]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30059
Док
А вот IBE, как выяснилось, бывает в природе только 32-битный. Вот и приходится, как светофору, пускать движение поочередно

ну что ты, ей-богу. 32битный ИБЕ прекрасно коннектится к 64бит серверу. Ну клиент 32битный ему нужен, и что? Для этого разве надо ставить 32битный сервер?
14 сен 21, 00:44    [22371509]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
Док
Member

Откуда: Казань
Сообщений: 7136
kdv,

ох..ть! Дим, ты мне щас Америку открыл. И правда, так можно о_О
14 сен 21, 00:50    [22371510]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
Gallemar
Member

Откуда:
Сообщений: 5616
Док
ты мне щас Америку открыл

Серьёзно?
14 сен 21, 09:13    [22371564]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 11021
Док
Старый плюшевый мишка,

это от нужды: IDE (Лазарь) в дебаге собирает х64 экшеник, соответственно требует 64-битного клиента. А вот IBE, как выяснилось, бывает в природе только 32-битный. Вот и приходится, как светофору, пускать движение поочередно :)


kdv
Собственно, 32-разрядные сервера ФБ сейчас имеет смысл пользовать только если у тебя есть 32разрядные UDF, которые нечем заменить для 64 (ни перекомпилировать, ни заменить встроенными функциями).

IBE, к сожалению, кушает только 32-битного клиента. Что-то другое для отладки запросов ставить не хочется


очень странно. Я таких проблем не замечал. Ты точно подцепляешься через TCP/IP? И из IBE и из прикладухи? Или всё же у тебя embedded?
14 сен 21, 09:34    [22371585]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
ggreggory
Member

Откуда:
Сообщений: 143
kdv
Тогда - профит.


Круто, не знал о такой возможности!

Независимо от темы топика: Firebird-у не хватает варианта сервера типа "Суперсервер в рамках одной базы, но на каждую базу свой процесс". Имеется ввиду автоматически, а не создавая экземпляры вручную.
14 сен 21, 10:15    [22371611]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11265
Не хватает, на самом деле, общего страничного ARC-кэша.
Чтобы набор кэшируемых страниц автоматически "подбирался" под ввод-вывод (по всем базам).
14 сен 21, 10:27    [22371622]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 3731
Док
kdv,

ох..ть! Дим, ты мне щас Америку открыл. И правда, так можно о_О
Ну ты дал, конечно...
14 сен 21, 13:36    [22371722]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30059
rdb_dev
Ну ты дал, конечно..

"у tcp нет разрядности" :-) А локальный протокол в тройке и далее лучше оставить для embedded.
14 сен 21, 14:11    [22371736]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
ggreggory
Member

Откуда:
Сообщений: 143
Basil A. Sidorov
Не хватает, на самом деле, общего страничного ARC-кэша.
Чтобы набор кэшируемых страниц автоматически "подбирался" под ввод-вывод (по всем базам).


Пока меня больше вопрос надежности волнует.

Я с суперсервером только начинаю знакомиться. Вот, подскажите, как в суперсервере разрешается такая ситуация. Посыпалась база, откатились до копии. Народ подключается к обоим базам и пытается вручную переносить свою работу (то, что было занесено с момента сохранения копии), из глючной базы в работающую копию и периодически натыкаясь на внутренние ошибки сервера. Как суперсервер справляется, если одна из баз глючная? Не приведет ли это к повреждению уже второй, рабочей, базы?
14 сен 21, 14:51    [22371751]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
KreatorXXI
Member

Откуда: Москва
Сообщений: 1091
ggreggory,

а что так можно? Пользователи никого ещё не убили? :)
14 сен 21, 15:15    [22371756]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2363
ggreggory
Basil A. Sidorov
Не хватает, на самом деле, общего страничного ARC-кэша.
Чтобы набор кэшируемых страниц автоматически "подбирался" под ввод-вывод (по всем базам).


Пока меня больше вопрос надежности волнует.

Я с суперсервером только начинаю знакомиться. Вот, подскажите, как в суперсервере разрешается такая ситуация. Посыпалась база, откатились до копии. Народ подключается к обоим базам и пытается вручную переносить свою работу (то, что было занесено с момента сохранения копии), из глючной базы в работающую копию и периодически натыкаясь на внутренние ошибки сервера. Как суперсервер справляется, если одна из баз глючная? Не приведет ли это к повреждению уже второй, рабочей, базы?

Сервер может упасть даже при исправной базе, например - из-за ошибок в коде сервера. Код сервера вряд ли заточен под работу с непредсказуемо кривыми файлами базы, т.обр., вероятность падения, наверное, должна повышаться.
Файл базы может глючить, например, и из-за сбоя файловой системы. В этом случае работа с другими, якобы исправными файлами, может привести к порче и исправных файлов.
Не надо так делать, короче.
14 сен 21, 15:20    [22371758]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30059
ggreggory
Народ подключается к обоим базам и пытается вручную переносить свою работу (то, что было занесено с момента сохранения копии), из глючной базы в работающую копию и периодически натыкаясь на внутренние ошибки сервера. Как суперсервер справляется, если одна из баз глючная? Не приведет ли это к повреждению уже второй, рабочей, базы?

вторая, рабочая база никак не может быть "повреждена ошибками из первой", это какие-то невообразимые домыслы, если выражаться мягко. Просто потому что в нее вливаются данные штатным sql.

А вот с первой, битой базой - чаще всего из-за повреждений с ней невозможно работать, или как минимум поврежденный участок не скопируется и не прочитается никак. Сервер (и тут до лампочки, суперсервер это или что-то еще) при обнаружении серьезных ошибок прекращает работать с базой принудительно, о чем выдает соответствующее сообщение.
Нормально и по максимуму экспортировать базу можно экспортом в FirstAid, поскольку тут Firebird не задействован для чтения поврежденных данных.
Читаем
https://ib-aid.com/download/docs/firebird_firstaid_recovery_guide_ru.pdf
с 10й страницы - "Ремонт с помощью извлечения данных"
14 сен 21, 15:20    [22371759]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
ggreggory
Member

Откуда:
Сообщений: 143
ъъъъъ
Код сервера вряд ли заточен под работу с непредсказуемо кривыми файлами базы, т.обр., вероятность падения, наверное, должна повышаться.
Файл базы может глючить, например, и из-за сбоя файловой системы. В этом случае работа с другими, якобы исправными файлами, может привести к порче и исправных файлов.


Да-да, вот про это я и спрашиваю.

kdv

вторая, рабочая база никак не может быть "повреждена ошибками из первой", это какие-то невообразимые домыслы, если выражаться мягко. Просто потому что в нее вливаются данные штатным sql.


Смысл в том, что в момент "вливания" активны как коннекты к хорошей базе, так и коннекты к глючной базе. Последние приводят к внутренним ошибкам сервера. Это имелось ввиду. И да, речь не о ремонте, а именно о ручном переносе данных операторами, без привлечения каких-либо специалистов по БД.

Просто классику по-барабану: ну упал процесс, ну стала глючная база ещё более глючной, что уж тут поделать.

Сообщение было отредактировано: 14 сен 21, 15:33
14 сен 21, 15:41    [22371767]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54027

ggreggory
Да-да, вот про это я и спрашиваю.

Если у вас сдохла файловая система, то боржоми уже можно не пить.

Posted via ActualForum NNTP Server 1.5

14 сен 21, 15:54    [22371771]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30059
ggreggory
Да-да, вот про это я и спрашиваю.

про что - если первая база повредилась на компе из-за глюков памяти или файловой системы, и там же сделали вторую базу, которая может быть аналогично повреждена?
Это не вопрос, и ФБ тут вообще ни при чём.
ggreggory
Последние приводят к внутренним ошибкам сервера. Это имелось ввиду. И да, речь не о ремонте, а именно о ручном переносе данных операторами

ну, тогда да, имеет смысл обезопаститься, 2 супера на разных портах. Но в таких случаях, когда с исходной базой возникают
internal Firebird consistency check
"работа операторов" - вообще бред. Как можно что-то перенести, если любой тычок в поврежденные данные приводит к ошибке, и последующей невозможности работы с базой?
Я понимаю, что у вас идет проработка сценариев, но этот сценарий совсем хреновый. Тут при ремонте-то приходится всякие действия повторять по 2-3 раза, а вы про "операторов" говорите. Которые ничего кроме тупого тыканья кнопки сделать не могут.
Гораздо эффективнее и быстрее отремонтировать или экспортировать БД, а уже потом переносить данные.

Кроме того, в подобных случаях нет никаких бэкапов, а если и есть, то битая база от сентября, а ее копия - от января. И залить данные из сентябрьской в январскую не всегда возможно.
А есть еще такие, когда дают базу на ремонт, и продолжают с ней работать. А потом спрашивают - как из побитой базы перенести данные в починенную? В 80% случаев - никак. А даже если и "как", то это может сделать только разработчик приложения и БД. Оператор этого сделать никак не сможет.
14 сен 21, 15:55    [22371772]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к базе клиентами разной разрядности  [new]
ggreggory
Member

Откуда:
Сообщений: 143
Dimitry Sibiryakov

ggreggory
Да-да, вот про это я и спрашиваю.

Если у вас сдохла файловая система, то боржоми уже можно не пить.


Есть только битая БД. Почему да как это произошло - за скобками. Откатились до копии, всё работает, но данных немного не хватает. Надо довнести.

kdv
Как можно что-то перенести, если любой тычок в поврежденные данные приводит к ошибке, и последующей невозможности работы с базой?


Голь на выдумки хитра!

kdv

ну, тогда да, имеет смысл обезопаститься, 2 супера на разных портах.


Ясно. В общем, это и предполагал, но думал - а вдруг? :)
14 сен 21, 17:54    [22371844]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить