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

Откуда: Бийск, Новосибирск
Сообщений: 13666
Всем привет,
по этому вопросу, конечно, много информации в интернете уже написано, но боюсь не правильно что-то понять.

У меня лог файл 130 гигабайт уже весит, какой самый корректный способ уменьшать его размер, чтобы потом "не попасть"?

В инете много статей, что нужно поставить модель Simple, потом трункейтить лог и возвращать модель на Full. Но как понимаю, в случае чего база не сможет восстановиться?
8 янв 16, 17:22    [18652951]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
komrad
Member

Откуда:
Сообщений: 5910
Hett
Всем привет,
по этому вопросу, конечно, много информации в интернете уже написано, но боюсь не правильно что-то понять.

У меня лог файл 130 гигабайт уже весит, какой самый корректный способ уменьшать его размер, чтобы потом "не попасть"?

В инете много статей, что нужно поставить модель Simple, потом трункейтить лог и возвращать модель на Full. Но как понимаю, в случае чего база не сможет восстановиться?


покажите результат

select DATABASEPROPERTYEX('ИМЯ БАЗЫ','Recovery'),@@version
dbcc sqlperf(logspace)
8 янв 16, 17:27    [18652966]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13666
Как-то так

К сообщению приложен файл. Размер - 12Kb
8 янв 16, 17:42    [18653004]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Перевести БД в SIMPLE либо регулярно делать бекап лога. Что Вам подходит лучше согласно бизнес-требований, то и нужно делать.

А статьи которые советую такие "радости" лучше обходить стороной.
8 янв 16, 17:45    [18653008]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
komrad
Member

Откуда:
Сообщений: 5910
Hett
В инете много статей, что нужно поставить модель Simple, потом трункейтить лог и возвращать модель на Full. Но как понимаю, в случае чего база не сможет восстановиться?


это подходит в том случае, когда других вариантов нет

если выполнить такую рекомендацию, то не сможете восстановить базу на момент времени между последним фулл-бекапом (и дифф, если есть) и текущим моментом

я бы на вашем месте удостоверился в том, что базе _нужно_ быть в симпле
если это так и есть 130ГБ свободного места, то
- надо забекапить лог
- обрезать лог-файл (не до нуля, но соразмерно базе; хотя это эмпирическая величина)
- настроить регулярные лог-бекапы
- проверить и настроить при необходимости регулярные фулл-бекапы

если места нет, база должна быть в фулл режиме, но лог (130ГБ накопленного добра) не нужен, то можно забекапиться в устройство NUL
и далее аналогично предыдущему списку шагов
8 янв 16, 18:29    [18653125]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
komrad
Member

Откуда:
Сообщений: 5910
очепятка
я бы на вашем месте удостоверился в том, что базе _нужно_ быть в симпле фулле
8 янв 16, 18:31    [18653131]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13666
Что-то я совсем теперь запутался. Точнее начинаю понимать, что не правильно все понимаю.
Я думал, что лог нужен для восстановления с момента последнего бэкапа (базы) на любую точку времени.
И для чего нужен бэкап лога, и в чем тогда разница между самим логом и его бэкапом?

Есть приложение, которое останавливается крайне редко и ему очень критичны остановки БД даже на несколько секунд (игровой сервер).

Если делать инкрементные бэкапы, например, каждый день, то в логе, как понимаю необходимости не будет, если в крайнем случае будем возвращаться только к точкам бэкапа и можно перевести в simple?
Инкрементный бэкап делается без каких либо локов в БД?
8 янв 16, 18:41    [18653165]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
komrad
Member

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

если база "сломалась", то имея на руках
1) фулл бекап, можно восстановиться на момент его создания
2) фулл+инкремент, можно восстановиться на момент инкремента
3) фулл+логи, можно восстановиться на любой момент времени, на который есть непрерывная и последовательная цепочка лог-бекапов

пара ссылок на почитать:
https://www.mssqltips.com/sqlservertip/1284/sql-server-backup-plan/
http://www.brentozar.com/sql/backup-best-practices/
8 янв 16, 18:50    [18653201]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13666
Ну, вроде разобрался примерно.
Правильно ли я понял, при FULL модели, бэкапы делаются на основе транзакшен лога и работу базы не останавливают? Если переключиться на simple, то каждый бэкап будет локать базу на время снятия дампа, как это делается в том же MySQL ?
11 янв 16, 08:48    [18660833]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13666
И во время бэкапа лога транзакций, опять же, не будет ли все залочено?
11 янв 16, 09:00    [18660847]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
Glory
Member

Откуда:
Сообщений: 104751
Hett
Правильно ли я понял, при FULL модели, бэкапы делаются на основе транзакшен лога и работу базы не останавливают?

Для начала вам нужно узнать, что есть два вида бэкапов - бэкап базы и бэкап журнала.

Hett
Если переключиться на simple, то каждый бэкап будет локать базу на время снятия дампа, как это делается в том же MySQL ?

Это не так
11 янв 16, 09:14    [18660876]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32173
Hett
Если переключиться на simple, то каждый бэкап будет локать базу на время снятия дампа, как это делается в том же MySQL ?
Бакапы всех видов в сиквеле не мешают работе, и ничего не лочат (ну, кроме обычного потребления ресурсов и лока некоторых редких операций)

simple модель отличается от FULL только тем, что в первой сервер постоянно удаляет ненужные ему для текущей работы логи из лог-файла. Тем самым лишая вас возможности сделать их бакап, и сделать при необходимости восстановление на произвольный момент времени. В остальном (если упростить) разницы нет.
11 янв 16, 10:08    [18661012]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
человек_ниоткуда
Guest
Я думаю тебе на все вопросы ответят эти статьи:
https://technet.microsoft.com/ru-ru/library/ms191239(v=sql.105).aspx
https://technet.microsoft.com/ru-ru/library/ms191164(v=sql.105).aspx
11 янв 16, 11:50    [18661424]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
Hett
Всем привет,
по этому вопросу, конечно, много информации в интернете уже написано, но боюсь не правильно что-то понять.

У меня лог файл 130 гигабайт уже весит, какой самый корректный способ уменьшать его размер, чтобы потом "не попасть"?

В инете много статей, что нужно поставить модель Simple, потом трункейтить лог и возвращать модель на Full. Но как понимаю, в случае чего база не сможет восстановиться?


ну если боишься, сделай полный бэкап БД до действа.
потом - после.
11 янв 16, 12:00    [18661476]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13666
Спасибо.
Вот тут написано, что лог урезается автоматически при бэкапе, в рамках простой модели
https://technet.microsoft.com/ru-ru/library/ms178037(v=sql.105).aspx

Установил простую модель для базы, сделал бэкап FULL, но лог как был так и остался почти 130 гигов.
11 янв 16, 16:31    [18663232]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
Glory
Member

Откуда:
Сообщений: 104751
Hett
Вот тут написано, что лог урезается автоматически при бэкапе, в рамках простой модели
https://technet.microsoft.com/ru-ru/library/ms178037(v=sql.105).aspx

Там такого НЕ написано автоматическое сжатие. Там написано автоматическое усечение.
И еще там написано "В ряде случаев сжатие невозможно до тех пор, пока не выполнена следующая операция усечения журнала."
11 янв 16, 16:34    [18663259]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13666
Да, сделал shrink, он до 10 мегабайт сократился. Перед этим бэкап делал.
Всем спасибо
11 янв 16, 16:46    [18663345]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13666
Только лог теперь больше 10 МБ не растет в simple модели. Это нормально?
12 янв 16, 15:51    [18667796]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
Glory
Member

Откуда:
Сообщений: 104751
Hett
Это нормально?

А у вас есть транзакции, размер которых больше 10Мб ?
Или у вас есть множество параллельных транзакций, суммарных размер которых больше 10Мб ? ?
12 янв 16, 15:53    [18667809]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 13666
Значит я не так понял суть этого лога, думал он при каждой контрольной точке будет очищать.
12 янв 16, 15:54    [18667825]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
Glory
Member

Откуда:
Сообщений: 104751
Hett
думал он при каждой контрольной точке будет очищать.

Вы опять что-то не дочитали или прочитали неправильно или придумали.
12 янв 16, 15:56    [18667836]     Ответить | Цитировать Сообщить модератору
 Re: Большой лог файл  [new]
o-o
Guest
Hett
Значит я не так понял суть этого лога, думал он при каждой контрольной точке будет очищать.

и что не то с контрольными точками?
ну, перезеписывает он лог, если можно.
и не перезаписывает, если какая-то незавершенная транзакция держит VLF-ы с какого-то и до конца.
удалите одним DELETE-ом данные из гигабайтной таблицы и вырастет на гигабайт.
---
и откуда этот левый термин "очищать лог"?
12 янв 16, 16:07    [18667890]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить