Олег Солодков
Дата: 11.09.2006 08:30:17
База данных (модель FULL) размером 45GB. Нормальное состояние лога - небольшое. :) В 7:30 база снимается полностью, далее каждый час дифференцированное копирование (размер дифференциальной копии растет постепенно, к концу дня вырастает до пары гигабайт); в 19:30 опять полная копия. С некоторого момента размер лога стал неконтролируемо расти. Вырастает до 35-65GB. Бекапы снимаются, судя по размеру бекапа - ничего нужного в логе остаться не должно, однако же лог в размерах не уменьшается. Переведешь базу в SIMPLE, урежешь лог до маленького размера, обратно в FULL (WITH NO_LOG работает только в SIMPLE) - потихоньку начинается то же самое. Размер лога не ограничен. Неприятность заключается в том, что до того пару лет все было тихо.
http://www.sql.ru/articles/mssql/03102701TransactionLogSQL2K.shtml#13В модели Full место в журнале транзакций высвобождается только когда будет сделана его резервная копия. Когда это происходит, все изменения, зарегистрированные в журнале транзакций, будут записаны в резервную копию, и занимаемое ими в журнале место освободится.
И полная и разностная копии базы данных должны очищать лог транзакций? Однако же, его размер без ручного вмешательства только увеличивается. Данные в логе внутри бекапа очищаются и в бекапе лежит лог, заполненный на 0.002%. С офигенным размером. Данные в логе базы после бекапа как будто-бы не удаляются - лог заполнен на 90+%, приходится делать вышеописанные процедуры.
Что нужно сделать? С учетом частоты разностных бекапов бекапить еще и лог не вижу смысла. Тем более, в ситуациях, когда как будто-бы бекап не приводит к очистке завершенных транзакций.
Олег Солодков
Дата: 11.09.2006 08:38:38
Да, sql2000sp4+hotfix, на windows2003sp1+hofix. Все обновляется посредством WSUS, состояние обновлений = все, что вышло.
Олег Солодков
Дата: 11.09.2006 09:30:51
pavel73 |
Так там все и написано, лог очишаеться но размер остаеться то же самый, надо его еще сжать |
Если бы он очищался, я бы не так беспокоился. Но проблема в том, что он самостоятельно не очищается - заходишь в EM и смотришь - лог базы в реале набит данными, хотя внутри бекапа лог пусть и большого размера, но пустой! Смена модели восстановления, урезание лога и возврат к прежней модели решает проблему, но со временем лог опять растет.
Основной вопрос - почему может не очищаться лог транзакций после выполнения бекапа базы.
pavel73
Дата: 11.09.2006 09:49:24
Не надоело еще спрашивать

автор |
заходишь в EM и смотришь - лог базы в реале набит данными, хотя внутри бекапа лог пусть и большого размера, но пустой |
Как вы это определяете.
И еще порядок резервного копирование может по другому сделать типа:
7.30 полный
каждый час бэкап журнала транзакций
18.30 полный или деффиринацальный
для чего каждый час деффиринцальный?
Олег Солодков
Дата: 11.09.2006 09:57:44
pavel73 |
Не надоело еще спрашивать  Как вы это определяете. И еще порядок резервного копирование может по другому сделать типа: 7.30 полный каждый час бэкап журнала транзакций 18.30 полный или деффиринацальный для чего каждый час деффиринцальный? |
1. Прихожу утром - смотрю в EM - лог офигенный и непустой.
2. Поднимаю утренний бекап на другом сервере - лог офигенный, но пустой.
Предполагаю, что лог не очищается после выполнения полного бекапа.
Мне удобнее иметь дифф бекап на каждый час, ибо выковыривать транзакции, которые нужно откатить из всего лога несколько проблематично ввиду объема работы. Потеря некоторой работы некритична, а хранить n-ое количество журналов не хочется.
pavel73
Дата: 11.09.2006 10:03:45
Вы путаете размер физический журнала транзакции, и наличие в нем данных, он у вас и будет после восстановления полного бэкапа, большой и пустой. Вы пишите что уже все прочитали вдоль и поперек, значит еще раз почитайте.
А вот как раз если бы делали каждый час резер.копию лога, он бы и не рос.