SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Падение fb3 при параллельном подключении (firebird, nbackup, mklink)
Падение fb3 при параллельном подключении [сообщение #5541] Tue, 08 October 2024 23:07 Переход к предыдущему сообщению
shavluk в настоящее время в онлайне  shavluk
Сообщений: 80
Зарегистрирован: June 2022
Географическое положение: Одеса
Member
У меня часто возникает потребность работать с большими базами (20-40 Gb).

Типичная моя работа выглядит так:
1. Делаю рестор базы data.fdb
2. После рестора делаю файловую копию в data-0.fdb
3. Проверяю, делаю модификации. У меня есть эталонная БД с которой можно сравнивать данные и метаданные.
4. Если запорол БД, то вместо повторного рестора, я копирую data-0.fdb в data.fdb


При таком подходе все нормально, кроме того, что копирование занимает много времени и базы занимают много места.
Сейчас я решил сэкономить место таким подходом:

1. Делаю рестор базы data.fdb
2. Блокирую файл базы  
nbackup -L data.fdb -user SYSDBA -password masterkey
3. Создаю жесткую ссылку на файл
mklink /h data-0.fdb data.fdb
В Far делается при помощи Alt+F6
4. Делаю копию файла data.fdb.delta в data-0.fdb.delta
5. Опционально. Архивирую data.fdb.delta в data-0.fdb.delta для возможности легко вернуться в исходное состояние

Таким образом у меня есть "общее тело" базы данных и независимые дельты.
При необходимости вернуть БД в исходное состояние, копируем только дельту, копия базы не занимает дополнительного места, "копий" можно сделать неограниченно много.

Минусы такого подхода:

1. Подключаться только через Classic или SuperClassic
2. Если каким-то образом разблокировали любую из БД, в лучшем случае остальные БД превращаются в тыкву.

Но такой подход в моих условиях очень удобен.

А теперь собственно ошибка.

В IBExpert
1. Подключаюсь к обеим БД одновременно.
2. Просматриваю любую таблицу в первой БД
3. Пытаюсь просмотреть любою таблицу во второй БД и получаю падение сервера с сообщением

Цитата:
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
connection shutdown.
  ------------------------------------------------------------ -------------------------------------------------
SQLCODE: -902
SQLSTATE: 08003
GDSCODE: 335544856
Connection will be closed immediately.
В firebird.log пусто

Такое поведение повторяется всегда сразу после рестора. Может повторяться еще несколько раз, потом прекращается. И все работает стабильно
Если подключаться/отключаться к БД по очереди ошибки не возникает.

Можно повторить на любой БД хоть employee.fdb

3.0.11 x64 Win10

[Обновления: Tue, 08 October 2024 23:35]

Известить модератора

 
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Предыдущая тема: Вышел Firebird 5 Release Candidate!
Следующая тема: Архив "старого" скруля
Переход к форуму:
  


Текущее время: Tue Oct 22 20:44:07 GMT+3 2024

Общее время, затраченное на создание страницы: 0.01204 секунд