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

Откуда: Москва
Сообщений: 78
Всем доброго дня!
Вырос лог файл до 75 гб
Версия SQL server 2008 R2

Пишут, что надо сначала поменять модель восстановления на Simple.
Далее выполнить команду dbcc shrinkfile.
После этого вернуть модель восстановления в Full.

USE ИмяБазы 
ALTER DATABASE ИмяБазы SET RECOVERY SIMPLE 
DBCC SHRINKFILE (ИмяФайлаЛога, ЖелаемыйРазмер); 
ALTER DATABASE ИмяБазы SET RECOVERY FULL


Подскажите, чтоб уж до конца быть уверенным, после такой операции все останется работоспособным? Есть ли возможность установить автоматическое обрезание файла?
2 июл 13, 09:32    [14508244]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Spartakich
Member

Откуда: Riga
Сообщений: 380
Tdmitry,

Для какой цели у вас стоит модель восстановления "FULL"
2 июл 13, 09:33    [14508258]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Tdmitry
Member

Откуда: Москва
Сообщений: 78
Spartakich,
да как-то автоматически стояло. Нет конкретного понимания, в чем отличие. В одном блоге пишут в ответ на подобный вопрос
а
Во время активной работы с базами очень хочется иметь возможность откатиться до предыдущего состояния - все просто.

Если не сложно, поясните пожалуйста
2 июл 13, 09:38    [14508298]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
Tdmitry
Spartakich,
да как-то автоматически стояло. Нет конкретного понимания, в чем отличие. В одном блоге пишут в ответ на подобный вопрос
а
Во время активной работы с базами очень хочется иметь возможность откатиться до предыдущего состояния - все просто.

Если не сложно, поясните пожалуйста


Здесь хорошо описано
2 июл 13, 09:42    [14508326]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
Tdmitry
Spartakich,
да как-то автоматически стояло. Нет конкретного понимания, в чем отличие. В одном блоге пишут в ответ на подобный вопрос
а
Во время активной работы с базами очень хочется иметь возможность откатиться до предыдущего состояния - все просто.

Если не сложно, поясните пожалуйста


Это для кого написали ?
2 июл 13, 09:44    [14508352]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5133
Tdmitry, доброго!
Вы переводите БД в Simple и делаете dbcc shrinkfile? )
В режиме Simple как бы нечего резать, в нем логов нет, поэтому не нужно переводить в Simple.

Делаете бэкап, потом шринк. Вот и все : )
автоматически соответственно 2 команды:
- BACKUP
- shrinkfile

Скрипт-пример shrink:

USE Complaint 
BACKUP LOG Complaint TO DISK= 'NUL:'
DBCC SHRINKFILE([Complaint_log],1000)
go
2 июл 13, 11:34    [14509278]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
HelenM
Member

Откуда: Москва
Сообщений: 53
Tdmitry,

если Вы не выполняете рез.копирование журналов (для последующего восстановления), если рез.копирование базы осуществляется только полное (Вы же делаете регулярные рез.копии, правда?), то вам достаточно Simple.
2 июл 13, 11:43    [14509359]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Александр Волок (def1983)
Member

Откуда: Rotterdam
Сообщений: 4959
Александр52
Tdmitry, доброго!
Вы переводите БД в Simple и делаете dbcc shrinkfile? )
В режиме Simple как бы нечего резать, в нем логов нет, поэтому не нужно переводить в Simple.

Есть там логи, еще как есть..
И если у автора темы нет понятия зачем нужен FULL, а тем более нет автоматических бэкапов лога, то в Simple очень даже стоит перевести. По крайней мере, пока не разберутся в Recovery моделях


Александр52
Делаете бэкап, потом шринк. Вот и все : )
автоматически соответственно 2 команды:
- BACKUP
- shrinkfile

Скрипт-пример shrink:

USE Complaint 
BACKUP LOG Complaint TO DISK= 'NUL:'
DBCC SHRINKFILE([Complaint_log],1000)
go


Делать это - это симуляция симпл рековери модели. Я не говорю правда о том, что в симпле некоторые операции менее затратно логируются нежели в фуле.
более того, такой бэкап создаст жирный файл: NUL: в папке бэкапов.. :D
Поэтому, имхо, смысла в таком скрипте - 0.
2 июл 13, 11:46    [14509374]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5133
Александр Волок (def1983), согласен, есть. Но я думаю для Tdmitry не нужно уходить в такие дебри, а просто показать чем отличается Simple от Full.


Делать это - это симуляция симпл рековери модели. Я не говорю правда о том, что в симпле некоторые операции менее затратно логируются нежели в фуле.
более того, такой бэкап создаст жирный файл: NUL: в папке бэкапов.. :D

Вы подошли к данному вопросу с теоретической стороны, на практике же вы получите ошибку при переводе в симпл и последующем шринке. C NUL же все пройдет как по маслу. Хотя с "эмуляцией" согласен.
2 июл 13, 11:53    [14509415]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Александр Волок (def1983)
Member

Откуда: Rotterdam
Сообщений: 4959
Александр52
Александр Волок (def1983), согласен, есть. Но я думаю для Tdmitry не нужно уходить в такие дебри, а просто показать чем отличается Simple от Full.


Главное отличие - не надо парится с бэкапами логов, ибо используемый диск спейс этих логов повторно используется, как только выполняется чекпоинт по текущему активному сегменту.
О том, что такое VLF я вдаваться не буду, при желании автом темы сам нагуглит

Александр52
Делать это - это симуляция симпл рековери модели. Я не говорю правда о том, что в симпле некоторые операции менее затратно логируются нежели в фуле.
более того, такой бэкап создаст жирный файл: NUL: в папке бэкапов.. :D

Вы подошли к данному вопросу с теоретической стороны, на практике же вы получите ошибку при переводе в симпл и последующем шринке. C NUL же все пройдет как по маслу. Хотя с "эмуляцией" согласен.


USE master
CREATE DATABASE test
ALTER DATABASE [test] SET RECOVERY SIMPLE WITH NO_WAIT

USE test
DBCC SHRINKFILE(test_log,1000)


DbId	FileId	CurrentSize	MinimumSize	UsedPages	EstimatedPages
26 2 72 72 72 72

На практике, даже в симпле, логи иногда ростут на десятки гигабайт... причин уйма.. и их тоже надо обрезать до вменяемых размеров
2 июл 13, 12:05    [14509483]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Александр Волок (def1983)
жирный файл: NUL: в папке бэкапов..

Ваша версия Windows позволяет создавать файлы с двоеточием в имени?
2 июл 13, 12:06    [14509487]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Александр Волок (def1983)
Member

Откуда: Rotterdam
Сообщений: 4959
Гость333
Александр Волок (def1983)
жирный файл: NUL: в папке бэкапов..

Ваша версия Windows позволяет создавать файлы с двоеточием в имени?


Да, пардон, проглядел двоеточие. Файл создан не будет.
2 июл 13, 12:13    [14509529]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Tdmitry
Member

Откуда: Москва
Сообщений: 78
ого, какая дискуссия. полное рез. копирование делается раз в сутки
возможно стоит перевести на simple. всем спасибо!
2 июл 13, 15:59    [14511270]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Spartakich
Member

Откуда: Riga
Сообщений: 380
Tdmitry
ого, какая дискуссия. полное рез. копирование делается раз в сутки
возможно стоит перевести на simple. всем спасибо!



сервер падает за 30 минут до начала полного бэкапа.
Теряете данные за весь рабочий день.
Если такое устраивает, тогда да.
2 июл 13, 16:11    [14511403]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Tdmitry
Member

Откуда: Москва
Сообщений: 78
Spartakich
Теряете данные за весь рабочий день.

это модель симпл затирает все данные?
2 июл 13, 16:22    [14511476]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Glory
Member

Откуда:
Сообщений: 104760
Tdmitry
это модель симпл затирает все данные?

Нет, это вы так делаете бэкапы
2 июл 13, 16:23    [14511498]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Tdmitry
Member

Откуда: Москва
Сообщений: 78
Сейчас бэкапы делаются корректно. Только лог растет
2 июл 13, 16:44    [14511712]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Glory
Member

Откуда:
Сообщений: 104760
Tdmitry
Сейчас бэкапы делаются корректно.

Только вот при падении сервера за 5 мин до бэкапа придется восстанавливать бэкап сутки назад.
А так все корректно.
2 июл 13, 16:47    [14511741]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Tdmitry
Member

Откуда: Москва
Сообщений: 78
аа, не так понял. делаются еще бэкапы журнала транзакций раз в час
2 июл 13, 16:52    [14511777]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Glory
Member

Откуда:
Сообщений: 104760
Tdmitry
аа, не так понял. делаются еще бэкапы журнала транзакций раз в час

Зачем вы тогда переключаете модель восстановления ?
Ведь после этого нарушается цепочка бэкапов журнала и нужно делать полный бэкап
2 июл 13, 16:55    [14511809]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Александр Волок (def1983)
Member

Откуда: Rotterdam
Сообщений: 4959
Tdmitry
аа, не так понял. делаются еще бэкапы журнала транзакций раз в час


Тогда, вот это вам не годится:

Tdmitry
Пишут, что надо сначала поменять модель восстановления на Simple.
Далее выполнить команду dbcc shrinkfile.
После этого вернуть модель восстановления в Full.


А нужно лишь разовый:

DBCC SHRINKFILE (ИмяФайлаЛога, 2000); 


оставляя базу в FULL recovery model, чтобы усечь лог.

Увы, вопреки всем мифам, сам по себе объем использованного места лог файлом не уменьшается ни в simple ни в full рекавери.
2 июл 13, 16:59    [14511847]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Tdmitry
Member

Откуда: Москва
Сообщений: 78
пока ничего не делаю... ок, то есть правильно непосредственно перед полным бэкапом поменять модель?
2 июл 13, 17:00    [14511848]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Tdmitry
пока ничего не делаю... ок, то есть правильно непосредственно перед полным бэкапом поменять модель?
Правильно модель данных не менять.
2 июл 13, 17:02    [14511869]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
Tdmitry
пока ничего не делаю... ок, то есть правильно непосредственно перед полным бэкапом поменять модель?

Правильно иногда прислушиваться к советам...

1
2
3
2 июл 13, 17:04    [14511894]     Ответить | Цитировать Сообщить модератору
 Re: обрезать log файл  [new]
Glory
Member

Откуда:
Сообщений: 104760
Александр Волок (def1983)
Увы, вопреки всем мифам, сам по себе объем использованного места лог файлом не уменьшается ни в simple ни в full рекавери.

Да что вы говорите
2 июл 13, 17:06    [14511900]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить