Дано: база FireBird, 2 шт.
Одна-до заполнения, вторая — после. (заполнение происходило при получении писем программой).
Довольно странная вещь произошла — таблица, в которую должны были быть слиты письма осталась пустой (в других таблицах — без изменений), однако вес базы вырос с 5 до 14 метров.
Но данных не видно О_о
Какой диагноз может быть?
Система боевая, все работало исправно, первый случай такой.
Здравствуйте, irbis3003, Вы писали:
I>Какой диагноз может быть? I>Система боевая, все работало исправно, первый случай такой.
Мож стартовали транзакцию, а коммита не было? Данные то нужно куда записывать, не в памяти же из держать, вот размер и увеличился. А делее либо не было коммита, либо был роллбек, я черт мусор вычищать теперь надо. bacjup restore если сделать — база будет как новая, маленькая
Здравствуйте, elmal, Вы писали:
E>Мож стартовали транзакцию, а коммита не было? Данные то нужно куда записывать, не в памяти же из держать, вот размер и увеличился. А делее либо не было коммита, либо был роллбек, я черт мусор вычищать теперь надо. bacjup restore если сделать — база будет как новая, маленькая
Коммит программно ставится, но любая система может глючить, так что х.з.
А куда мусор-то забился, если данных не видно новых, а место они занимают?
Здравствуйте, irbis3003, Вы писали:
I>Коммит программно ставится, но любая система может глючить, так что х.з. I>А куда мусор-то забился, если данных не видно новых, а место они занимают?
Подробностей не знаю, более того, вторую версию FB я даже и не видел. В 1.5 все в одном файле хранилось, какая там структура — ХЗ. В любом случае не очень правильно давать разработчикам доступ к деталям реализации, так что скорее всего их достать сейчас проблематично.
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, irbis3003, Вы писали:
I>>Коммит программно ставится, но любая система может глючить, так что х.з. I>>А куда мусор-то забился, если данных не видно новых, а место они занимают? E>Подробностей не знаю, более того, вторую версию FB я даже и не видел. В 1.5 все в одном файле хранилось, какая там структура — ХЗ. В любом случае не очень правильно давать разработчикам доступ к деталям реализации, так что скорее всего их достать сейчас проблематично.
On 08.12.2010 10:54, irbis3003 wrote:
> Дано: база FireBird, 2 шт. > Одна-до заполнения, вторая — после. (заполнение происходило при получении писем > программой). > Довольно странная вещь произошла — таблица, в которую должны были быть слиты > письма осталась пустой (в других таблицах — без изменений), однако вес базы > вырос с 5 до 14 метров. > Но данных не видно О_о > > Какой диагноз может быть?
Одна большая транзакция на добавление была запущена, в конце работы НЕ БЫЛА
закомичина (COMMIT). Физически записи есть, но они принадлежат к откаченной
транзакции, первая же сборка мусора должна их почистить.
Здравствуйте, MasterZiv, Вы писали:
MZ>Одна большая транзакция на добавление была запущена, в конце работы НЕ БЫЛА MZ>закомичина (COMMIT). Физически записи есть, но они принадлежат к откаченной MZ>транзакции, первая же сборка мусора должна их почистить.
А можно не почистить мусор, а вытащить повисшие данные? (коммит-таки сделать)
On 08.12.2010 12:18, irbis3003 wrote:
> А можно не почистить мусор, а вытащить повисшие данные? (коммит-таки сделать)
Не знаю точно, я не фанат IB/FB. Но думаю, что скорее всего уже нет.
Подозреваю, что данные могут быть в таком раскладе и частично почищены.
Сборщик мусора логично организовывать так, чтобы он читал последовательно
страницы данных и из каждой вычищал убитые транзакции. В старых версиях IB,
говорят, так и было: select-ты читающие, если натыкались в читаемых страницах
на старые записи, их чистили.
В таком случае у тебя просто старых данны ВСЕХ может и не быть, таким образом
их не восстановить.