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

Откуда:
Сообщений: 3
На сервере распухают файлы логов.

При этом бэкап логов на ленту выполняется каждые 4-ре часа TSM-кой. Шринкование лога, запускаемое из Job-а помогает только в случае если выполняется относительно быстро сразу после бэкапа. Иначе файл лога может шринкануться частично (например через минуту он шринканулся с 30 GB до 8GB) или не шринкануться вообще. Хотелось бы понять что именно делается не так...
14 май 19, 18:27    [21884695]     Ответить | Цитировать Сообщить модератору
 Re: Распухание лог-файлов  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4930
KtoToGde
На сервере распухают файлы логов.

При этом бэкап логов на ленту выполняется каждые 4-ре часа TSM-кой. Шринкование лога, запускаемое из Job-а помогает только в случае если выполняется относительно быстро сразу после бэкапа. Иначе файл лога может шринкануться частично (например через минуту он шринканулся с 30 GB до 8GB) или не шринкануться вообще. Хотелось бы понять что именно делается не так...


проверьте модель восстановления базы - соответствует ли она требованиям по аварийному восстановлению
может ее надо раз в неделю бекапить?

если модель верная, то следующее:
- увеличить частоту бекапов лога до требуемой по сценарию аварийного восстановления либо в соответствии с реальной нагрузкой на лог и типом транзакций (много коротких / немного длинных)
во втором случае увеличение частоты не особо поможет

- перестать резать лог - это борьба с ветряными мельницами и искусственное замедление выполняющихся транзакций (задержка на отращивание лога и его обнуление)

- установить размер лога в соответствии с реальной нагрузкой


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

команды на проверку (на выбор, в зависимости от версии сиквела):
dbcc sqlperf(logspace)
dbcc loginfo()
select name, log_reuse_wait_desc from sys.databases  where name ='DBNAME'
select * from sys.dm_db_log_info (DBID)  -- sql2016+
select * from sys.dm_db_log_space_usage   -- sql2012+
select * from sys.dm_db_log_stats (DBID) -- sql2016+
14 май 19, 18:48    [21884712]     Ответить | Цитировать Сообщить модератору
 Re: Распухание лог-файлов  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 28880
KtoToGde
Шринкование лога, запускаемое из Job-а помогает только в случае если выполняется относительно быстро сразу после бэкапа. Иначе файл лога может шринкануться частично (например через минуту он шринканулся с 30 GB до 8GB) или не шринкануться вообще. Хотелось бы понять что именно делается не так...
Относитесь к лог (или дата) файлам базы как к дискам.
Вы же не меняете размеры дисков после каждого добавления/удаления файлов?
Вот и для лог файла так же - выберите правильный размер, правильное расписение бакапов, соотнесите расписание с обслуживанием базы, с другими тяжёлыми операциями, и никогда его не шринкуйте.
Ещё изучите вашу стсему бакапов, и посмотрите на модель восстановления, а то, может, у вас и бакапов лога нету.
14 май 19, 21:17    [21884790]     Ответить | Цитировать Сообщить модератору
 Re: Распухание лог-файлов  [new]
PizzaPizza
Member

Откуда:
Сообщений: 271
KtoToGde,

Лог это лог. Лог всех событий вашей базы с момента бекапа (при полной модели).
Насколько у вас лог с бекапа распухает - столько данных меняется.

Прикиньте объемы данных для начала. Если есть четкое несоответствие, то смотрите на транзакции, что там происходит. Может откатов много или ещё каких лишних операций.
15 май 19, 00:29    [21884854]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить