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

Откуда:
Сообщений: 68
Добрый день форумчане.

Исходные данные:
SQL server 2016
версия:
Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64)
Oct 28 2016 18:17:30
Copyright (c) Microsoft Corporation Developer Edition (64-bit)
on Windows Server 2016 Standard Evaluation 6.3 <X64> (Build 14393: )

База данных:
Какое-то время использовалась при модели восстановления "Полная", потом переведена в режим "Простая"

Файлы базы данных:
Логическое имяТип файлаФайловая группа Начальный размер
Billing_SB_DataДанные строкPrimary 4 064 MB
Billing_SB_Heating_LogЖурналНеприменимо 79 445 MB



DBCC OPENTRAN()

автор
Нет активных открытых транзакций.
Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.


DBCC CHECKDB

Ошибок не обнаружил.

BACKUP LOG BILLING TO DISK= 'NUL:'

автор
Сообщение 4208, уровень 16, состояние 1, строка 17
Инструкция BACKUP LOG недопустима в модели восстановления SIMPLE. Используйте инструкцию BACKUP DATABASE или измените модель восстановления с помощью инструкции ALTER DATABASE.
Сообщение 3013, уровень 16, состояние 1, строка 17
BACKUP LOG прервано с ошибкой.

Если перевести в Full - проходит, размер лога остается прежним.

DBCC SHRINKFILE ('Billing_SB_Heating_Log' , 0, TRUNCATEONLY)

DbId FileId CurrentSize MinimumSize UsedPages EstimatedPages
7 2 10168952 63 10168952 56


Пробовал переводить базу в модель восстановления "Полная", бекапить, после делать бекап лога с усечением, не помогло.

Может кто-то сталкивался с такими проблемами на 2016 сервере, или просто знает где копнуть ?

п.с.

К сообщению приложен файл. Размер - 10Kb
27 мар 18, 16:55    [21290716]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36691
Навсякий, log_reuse_wait_desc в sys.databases что пишет?

Ну если там и правда simple, то разве что активная часть лога находится в конце файла и мешает его усечению.
27 мар 18, 17:03    [21290751]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
SharedNoob,

что для вашей базы
SELECT log_reuse_wait FROM sys.databases 
27 мар 18, 17:06    [21290768]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
SharedNoob
Member

Откуда:
Сообщений: 68
DBCC SHRINKDATABASE ('BAS_BILLING ')


Не удалось сжать файл журнала 2 (Billing_SB_Heating_Log) из-за необходимого минимального пространства для журналов.
DbId FileId CurrentSize MinimumSize UsedPages EstimatedPages
------ ----------- ----------- ----------- ----------- --------------
7 2 10168952 63 10168952 56

(затронута одна строка)

Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.
Весьма странное сообщение, физически свободного места на дисках больше терабайта.
27 мар 18, 17:07    [21290769]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
SharedNoob
Member

Откуда:
Сообщений: 68
SELECT log_reuse_wait FROM sys.databases 


log_reuse_wait
--------------
0
0
0
0
0
0
4
0
4
2
0
0
0
0
0
0
0
0
2
0
27 мар 18, 17:07    [21290774]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36691
Для вашей базы, а не для всех баз. И log_reuse_wait_DESC.

Сообщение было отредактировано: 27 мар 18, 17:08
27 мар 18, 17:08    [21290777]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
SharedNoob
Member

Откуда:
Сообщений: 68
Ой, упустил ...

log_reuse_wait
--------------
0
27 мар 18, 17:11    [21290790]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
SharedNoob
Member

Откуда:
Сообщений: 68
log_reuse_wait log_reuse_wait_DESC
0 NOTHING
27 мар 18, 17:13    [21290801]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36691
DBCC SHRINKFILE ('Billing_SB_Heating_Log' , 1)
27 мар 18, 17:14    [21290806]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
SharedNoob
Member

Откуда:
Сообщений: 68
DBCC SHRINKFILE ('Billing_SB_Heating_Log' , 1)

Не удалось сжать файл журнала 2 (BAS_Billing_SB_Heating_Log) из-за необходимого минимального пространства для журналов.
DbId FileId CurrentSize MinimumSize UsedPages EstimatedPages
------ ----------- ----------- ----------- ----------- --------------
7 2 10207352 63 10207352 56

(затронута одна строка)

Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.
О каком минимальном пространстве идет речь ?
На дисках места достаточно.
27 мар 18, 17:17    [21290817]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
SharedNoob,

DBCC OPENTRAN

CHEKPOINT
27 мар 18, 17:19    [21290825]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
SharedNoob
Member

Откуда:
Сообщений: 68
DBCC OPENTRAN

Нет активных открытых транзакций.
Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.

CHEcKPOINT

Выполнение команд успешно завершено.
27 мар 18, 17:20    [21290837]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
SharedNoob
Member

Откуда:
Сообщений: 68
После каждого перезапуска сервера база данных какое-то время находиться в состоянии "(В процессе восстановления)".
Всегда.
27 мар 18, 17:22    [21290847]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
SharedNoob,

эмммм, а

автор
DBCC SHRINKFILE ('Billing_SB_Heating_Log' , 63)
27 мар 18, 17:25    [21290863]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
SharedNoob
Member

Откуда:
Сообщений: 68
TaPaK,
Не удалось сжать файл журнала 2 (BAS_Billing_SB_Heating_Log) из-за необходимого минимального пространства для журналов.
DbId FileId CurrentSize MinimumSize UsedPages EstimatedPages
------ ----------- ----------- ----------- ----------- --------------
7 2 10207352 63 10207352 56

(затронута одна строка)

Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.
27 мар 18, 17:29    [21290884]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
SharedNoob,

так а поставить initsize на нормальный?
27 мар 18, 17:47    [21290944]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
SharedNoob
Member

Откуда:
Сообщений: 68
TaPaK,
А какой должен быть нормальный ?
ни 0, ни 100, ни 1000 поставить не дает. Сбрасывает самостоятельно в 79 445 MB.
27 мар 18, 17:56    [21290982]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
Максим Чистяков
Member

Откуда:
Сообщений: 23
Давайте посмотрим, сколько там свободного места
SELECT name ,size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS 'Свободное место в Мб'
FROM sys.database_files
27 мар 18, 20:02    [21291259]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
SharedNoob
Member

Откуда:
Сообщений: 68
В общем итоге:

Перешерстив весь форум, msdn, хабр и т п решение найдено не было. Возможно какая-то "бага" этой версии сервера.
После каждого перезапуска сервера лог база данных была в состоянии "Восстановление". После каждого восстановления журнал транзакций выростал еще на несколько гигабайт. Никакие манипуляции с журналом транзакций не помогли. Свободного места в журнале транзакций не было (1-2 мегабайта). В конечном итоге журнал транзакций, после попыток его усечь вырос до 300+ гигабайт. Пересоздать лог журнала не вышло, так как "SQL server не поддерживает пересоздания журнала транзакций в базах данных, в которых используются таблицы оптимизированные для работы в памяти".

Создал новую БД. Заскриптовал "поврежденную". Скриптами воссоздал структуру. Скриптами перенес данные.

Вот как то так.
30 мар 18, 15:10    [21299784]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
SharedNoob
TaPaK,
А какой должен быть нормальный ?
ни 0, ни 100, ни 1000 поставить не дает. Сбрасывает самостоятельно в 79 445 MB.

сколько VLF в логе?
dbcc loginfo
30 мар 18, 15:19    [21299844]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
SharedNoob
Member

Откуда:
Сообщений: 68
Это скриншот запроса из базы данных, до попыток ее сжатия.

К сообщению приложен файл. Размер - 55Kb
30 мар 18, 15:26    [21299877]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
SharedNoob
Member

Откуда:
Сообщений: 68
Уже сложно, что -либо воссоздать, так как поврежденная бд занимала слишком много места и была удалена.
30 мар 18, 15:27    [21299883]     Ответить | Цитировать Сообщить модератору
 Re: Не усекается лог базы данных  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2374
SharedNoob
поврежденная бд занимала слишком много места и была удалена.

сурово у вас там! не забалуешь!
2 апр 18, 10:57    [21304164]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить