Проблема с nbackup
Проблема с nbackup
FB 2.01 CS, Win2003, Размер базы 1.5Г
Решил вынести сюда проблему из этой темы http://forum.ibase.ru/phpBB2/viewtopic.php?t=3888.
Суть проблемы состоит в том, что после резервного копирования nbackup-ом не всегда удаляется файл дельты. Точнее он таки удаляется, но не сразу, а через неопределенное время, каждый раз разное, от нескольких секунд до часов, дней.
Я начал изучать это явление и обнаружил особенность работы nbackup. Эксперимент простой. Делаю nbackup -L, создается дельта. В isql пишу COMMIT тем самым начинаю новую транзакцию. Делаю nbackup -N, дельта на месте. В isql пишу опять COMMIT, дельта исчезает. Аналогичный эксперимент провел на базе help.fdb c тем же результатом. Понятно тогда почему у меня дельта в рабочей базе иногда по долгу не исчезала, оборванный коннект и застрявшая транзакция могли привести к такому положению вещей.
Это нормальное функционирование или баг?
Решил вынести сюда проблему из этой темы http://forum.ibase.ru/phpBB2/viewtopic.php?t=3888.
Суть проблемы состоит в том, что после резервного копирования nbackup-ом не всегда удаляется файл дельты. Точнее он таки удаляется, но не сразу, а через неопределенное время, каждый раз разное, от нескольких секунд до часов, дней.
Я начал изучать это явление и обнаружил особенность работы nbackup. Эксперимент простой. Делаю nbackup -L, создается дельта. В isql пишу COMMIT тем самым начинаю новую транзакцию. Делаю nbackup -N, дельта на месте. В isql пишу опять COMMIT, дельта исчезает. Аналогичный эксперимент провел на базе help.fdb c тем же результатом. Понятно тогда почему у меня дельта в рабочей базе иногда по долгу не исчезала, оборванный коннект и застрявшая транзакция могли привести к такому положению вещей.
Это нормальное функционирование или баг?
в классике дельту разделяют все процессы. Файл удаляется после того, как все участники закроют его дескриптор. Первым это делает процесс, выполняющий END BACKUP. Остальные узнают об окончании слияния дельты лишь когда им понадобиться знать состояние страничного кеша. В случае отсутствия активности в коннекте, это может занять неопределенное время.
Спасибо, ясно.. Перешел бы на Super, но второй проц будет отдыхать. Да и нельзя так как данные в БД льются непрерывно, а если какой-нибудь стат запрос загрузит процесс сервера, возникнут тормоза с добавлением данных. Хотя фиг знает, еще подумаю. Придется выбирать из двух зол наименьшее: либо отказываться от nbackup, либо от преимуществ CS.
-
- Сообщения: 52
- Зарегистрирован: 28 сен 2007, 10:19