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

Откуда:
Сообщений: 37
Проблема со всеми FULL-базами этого сервера.

Настроен еженедельный FULL + Transaction Log, усекание журнала после бэкапа лога включено.

Но лог продолжает расти.

Вручную то же самое - FULL+Log_Backup+Shrink ничего не дают.
Принудительный Shrink File журнала - тоже эффекта не имеют, хотя перед выполнением показывает, что свободного места в журнале 95-99%

Что я делаю не так?

При сжатии файла лога ставить "Реорганизовать страницы ... сжать файл до ... Мб" ставить побаиваюсь - какая-то же причина в росте лога есть?

Если бы проблема была в одной базе - попробовал бы сначала FULL+Transaction-Log-Backup, перевод в SIMPLE, сжатие, перевод обратно, FULL Backup и понаблюдал бы дальше - исчезнет ли проблема.
Но это на всех FULL-базах, значит либо что-то я не так делаю (что?) либо сервер.
23 фев 14, 12:39    [15614136]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
transaction_log
Guest
Stepan Razin,

что скажет SELECT name, log_reuse_wait_desc FROM sys.databases WHERE recovery_model = 1?
23 фев 14, 13:46    [15614382]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
aleks2
Guest
Stepan Razin
значит либо что-то я не так делаю (что?) либо сервер.


Канешно не так.
Шринк не нужен.
23 фев 14, 15:19    [15614705]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
Stepan Razin
Member

Откуда:
Сообщений: 37
transaction_log
Stepan Razin,

что скажет SELECT name, log_reuse_wait_desc FROM sys.databases WHERE recovery_model = 1?


model NOTHING
base LOG_BACKUP
zup LOG_BACKUP
CBaseCRM_Fresh LOG_BACKUP
bc_092012 LOG_BACKUP

Но почему? Сервер вроде ребутили.
23 фев 14, 16:10    [15614872]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
Stepan Razin
Но почему? Сервер вроде ребутили.
"Сервер ребутили" никак не связано с вашей проблемой.

Посмотрите, бакап лога делается или нет, когда в последний раз, с какими параметрами.
23 фев 14, 17:02    [15615049]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
Stepan Razin
Member

Откуда:
Сообщений: 37
alexeyvg
Stepan Razin
Но почему? Сервер вроде ребутили.
"Сервер ребутили" никак не связано с вашей проблемой.

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


Я на всякий случай указал, что "сервер ребутили" и это явно не временный глюк, который исчезает после рестарта SQL-сервера (ребутили целиком сервак).

До этого такой проблемы нигде не наблюдал (правда, в других местах везде SQL-2005).
SQL-Server запущен под виртуалкой Hyper-V Windows 2008 R2 x64


Бэкап лога делается после FULL-бэкапа базы:

BACKUP DATABASE [base] TO  DISK = N'D:\Base-Weekly.bak' WITH NOFORMAT, INIT,  NAME = N'base-Полная База данных Резервное копирование', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N'base' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'base' )
if @backupSetId is null begin raiserror(N'Ошибка верификации. Сведения о резервном копировании для базы данных "base" не найдены.', 16, 1) end
RESTORE VERIFYONLY FROM  DISK = N'D:\Base-Weekly.bak' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
GO

BACKUP LOG [base] TO  DISK = N'D:\Base-Weekly-Transaction-Log.bak' WITH NOFORMAT, INIT,  NAME = N'base-Журнал транзакций  Резервное копирование', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N'base' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'base' )
if @backupSetId is null begin raiserror(N'Ошибка верификации. Сведения о резервном копировании для базы данных "base" не найдены.', 16, 1) end
RESTORE VERIFYONLY FROM  DISK = N'D:\Base-Weekly-Transaction-Log.bak' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
GO



Вот что в системном журнале после этого:

Создана резервная копия базы данных. База данных: base, дата (время) создания: 2013/08/22(13:28:36), выгружено из памяти страниц: 2336739, первый номер LSN: 101709:16:224, последний номер LSN: 101709:124:1, число устройств хранения: 1, сведения об устройствах: (FILE=1, TYPE=DISK: {'D:\Base-Weekly.bak'}). Это информационное сообщение. Вмешательство пользователя не требуется.

Создана резервная копия журнала. База данных: base, дата (время) создания: 2013/08/22(13:28:36), первый номер LSN: 101008:9502:1, последний номер LSN: 101709:145:1, число устройств хранения: 1, сведения об устройствах: (FILE=1, TYPE=DISK: {'D:\Base-Weekly-Transaction-Log.trn'}). Это информационное сообщение. Вмешательство пользователя не требуется.
23 фев 14, 17:58    [15615212]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
Stepan Razin
Member

Откуда:
Сообщений: 37
А вот лог самого SQL:


Журнал Журнал заданий (Base-Weekly)

Идентификатор шага 1
Сервер VMSQL01
Имя задания Base-Weekly
Имя шага 1
Продолжительность 00:14:14
Серьезность Sql 0
Идентификатор Sql-сообщения 3262
Оператору отправлено сообщение электронной почты
Оператору отправлено сообщение командой Net send
Оператору отправлено сообщение на пейджер
Предпринято повторов 0

Сообщение
Выполняется от имени пользователя: NT AUTHORITY\система.10 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 20 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 30 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 40 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 50 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 60 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 70 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 80 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 90 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) Обработано 2246048 страниц для базы данных "base", файл "base" для файла 1. [SQLSTATE 01000] (Сообщение 4035) 100 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) Обработано 4 страниц для базы данных "base", файл "base_log" для файла 1. [SQLSTATE 01000] (Сообщение 4035) BACKUP DATABASE успешно обработал 2246052 страниц за 78.279 секунд (224.163 MБ/сек). [SQLSTATE 01000] (Сообщение 3014) Резервный набор данных для файла 1 правильный. [SQLSTATE 01000] (Сообщение 3262) 10 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 20 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 30 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 40 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 50 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 60 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 70 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 80 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 90 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) 100 проц. обработано. [SQLSTATE 01000] (Сообщение 3211) Обработано 8112561 страниц для базы данных "base", файл "base_log" для файла 1. [SQLSTATE 01000] (Сообщение 4035) BACKUP LOG успешно обработал 8112561 страниц за 345.399 секунд (183.496 MБ/сек). [SQLSTATE 01000] (Сообщение 3014) Резервный набор данных для файла 1 правильный. [SQLSTATE 01000] (Сообщение 3262). Шаг успешно выполнен.
23 фев 14, 18:01    [15615216]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
NickAlex66
Member

Откуда:
Сообщений: 319
Stepan Razin,

1. Результаты запроса выполненного в контексте проблемной базы в студию:
+

USE ваша проблемная база

SELECT TOP 15
bs.first_lsn [First LSN],
bs.last_lsn [Last LSN],
bs.backup_start_date [Backup start date],
bs.backup_finish_date [Backup finish date],
CASE bs.[type]
WHEN 'D' THEN 'Full DB'
WHEN 'I' THEN 'Diff DB'
WHEN 'L' THEN 'Log'
WHEN 'F' THEN 'File/FG'
WHEN 'G' THEN 'Diff file'
WHEN 'P' THEN 'Part'
WHEN 'Q' THEN 'Diff part'
END [Type],
bs.recovery_model [Recovery model],
CAST(bs.backup_size/1024. AS decimal(15, 2)) [Size (KB)],
bs.server_name [Server run],
bs.machine_name [Mashine run],
bmf.physical_device_name [Physical device name]
FROM msdb..backupset bs INNER JOIN msdb..backupmediaset bms ON bs.media_set_id = bms.media_set_id
INNER JOIN msdb..backupmediafamily bmf ON bms.media_set_id = bmf.media_set_id
WHERE bs.database_name = DB_NAME() AND bs.[type] = 'L'
ORDER BY bs.last_lsn DESC, bs.backup_start_date DESC
/* [Server run] и [Mashine run] исключите, если что */

2. Что у вас там с репликацией?
23 фев 14, 19:13    [15615415]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
87e458yrt3475
Guest
А DBCC SQLPERF(LOGSPACE) перед бекапом и после него - что говорит?
23 фев 14, 19:14    [15615417]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
Stepan Razin
Member

Откуда:
Сообщений: 37
NickAlex66
Stepan Razin,

1. Результаты запроса выполненного в контексте проблемной базы в студию:
+

USE ваша проблемная база

SELECT TOP 15
bs.first_lsn [First LSN],
bs.last_lsn [Last LSN],
bs.backup_start_date [Backup start date],
bs.backup_finish_date [Backup finish date],
CASE bs.[type]
WHEN 'D' THEN 'Full DB'
WHEN 'I' THEN 'Diff DB'
WHEN 'L' THEN 'Log'
WHEN 'F' THEN 'File/FG'
WHEN 'G' THEN 'Diff file'
WHEN 'P' THEN 'Part'
WHEN 'Q' THEN 'Diff part'
END [Type],
bs.recovery_model [Recovery model],
CAST(bs.backup_size/1024. AS decimal(15, 2)) [Size (KB)],
bs.server_name [Server run],
bs.machine_name [Mashine run],
bmf.physical_device_name [Physical device name]
FROM msdb..backupset bs INNER JOIN msdb..backupmediaset bms ON bs.media_set_id = bms.media_set_id
INNER JOIN msdb..backupmediafamily bmf ON bms.media_set_id = bmf.media_set_id
WHERE bs.database_name = DB_NAME() AND bs.[type] = 'L'
ORDER BY bs.last_lsn DESC, bs.backup_start_date DESC
/* [Server run] и [Mashine run] исключите, если что */

2. Что у вас там с репликацией?


1. Запрос сделаю уже завтра. Но проблемы СО ВСЕМИ базами с моделью FULL, а не с одной конкретной
2. Никаких репликаций не юзается
23 фев 14, 23:36    [15616538]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
Stepan Razin
Member

Откуда:
Сообщений: 37
87e458yrt3475
А DBCC SQLPERF(LOGSPACE) перед бекапом и после него - что говорит?


Одинаково говорит и до, и после. В трех базах юзается от 0.7% до 7%.

То же самое, что явно видно в GUI базы - более 90% свободного места в лог-файле
23 фев 14, 23:39    [15616554]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
Stepan Razin
Принудительный Shrink File журнала - тоже эффекта не имеют, хотя перед выполнением показывает, что свободного места в журнале 95-99%
А какая команда шринка?
23 фев 14, 23:46    [15616577]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 851
С какой частотой производятся бэкапы лога? Раз в неделю?
24 фев 14, 00:22    [15616709]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
Stepan Razin
Member

Откуда:
Сообщений: 37
alexeyvg
Stepan Razin
Принудительный Shrink File журнала - тоже эффекта не имеют, хотя перед выполнением показывает, что свободного места в журнале 95-99%
А какая команда шринка?


Да типовая, из GUI, баз явного указания шринка до размера.
Но, как заметили выше - это тут излишнее - так как базы должны ШТАТНО урезаться при бэкапе логов, чего не происходит, причем со всеми базами одновременно
24 фев 14, 01:08    [15616816]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
Stepan Razin
Member

Откуда:
Сообщений: 37
flexgen
С какой частотой производятся бэкапы лога? Раз в неделю?


Раз в неделю - FULL+Transaction Log (см. выше)
Раз в сутки - Diffirential+Log

PS: Сегодня сделал на двух базах FULL+LOG Backup, затем принудительно убил логи переводом в Simple и последующим FULL Backup
Проверим их поведение в дальнейшем - будет ли резаться лог.
24 фев 14, 01:10    [15616825]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 851
Stepan Razin
flexgen
С какой частотой производятся бэкапы лога? Раз в неделю?


Раз в неделю - FULL+Transaction Log (см. выше)
Раз в сутки - Diffirential+Log

PS: Сегодня сделал на двух базах FULL+LOG Backup, затем принудительно убил логи переводом в Simple и последующим FULL Backup
Проверим их поведение в дальнейшем - будет ли резаться лог.


Я делаю так:
раз в неделю, скажем в ночь с субботы на воскресенье, - full backup
каждый день, кроме субботы, - differential backup
каждые 15 минут - transaction log backup

При размере файлов данных в 500 ГБ размер логов не превышает 150 ГБ, но это уже зависит от нагрузки и очень индивидуально.
24 фев 14, 01:35    [15616860]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
Stepan Razin
Но, как заметили выше - это тут излишнее - так как базы должны ШТАТНО урезаться при бэкапе логов, чего не происходит, причем со всеми базами одновременно
Не должны.

После бакапа логов получается (должно получаться) это: "более 90% свободного места в лог-файле"

Но сам файл размеры менять не будет.
24 фев 14, 09:41    [15617255]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
flexgen
каждый день, кроме субботы, - differential backup
каждые 15 минут - transaction log backup

При размере файлов данных в 500 ГБ размер логов не превышает 150 ГБ, но это уже зависит от нагрузки и очень индивидуально.
150 - это приличная нагрузка, это значит, что за 15 минут в лог успевает записаться 150 гигов.
Впрочем, может, это какие то разовые операции обслуживания, типа ребилда индексов...
24 фев 14, 09:45    [15617272]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
Stepan Razin
Member

Откуда:
Сообщений: 37
alexeyvg
Stepan Razin
Но, как заметили выше - это тут излишнее - так как базы должны ШТАТНО урезаться при бэкапе логов, чего не происходит, причем со всеми базами одновременно
Не должны.

После бакапа логов получается (должно получаться) это: "более 90% свободного места в лог-файле"

Но сам файл размеры менять не будет.


Ну, в общем, проблема в том, что после бэкапа операция сжатия базы или прямо лога не уменьшает его, несмотря на то, что в свойствах четко сказано: "95% свободно"

Посмотрим, что будет после принудительного отрезания переводом модели нескольких баз в SIMPLE и назад, но боюсь, что это что-то, действующее на весь сервер, а не на конкретную базы (см. выше - проблема наблюдается со всеми базами с моделью FULL)
24 фев 14, 11:02    [15617873]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
Glory
Member

Откуда:
Сообщений: 104751
Stepan Razin
Ну, в общем, проблема в том, что после бэкапа операция сжатия базы или прямо лога не уменьшает его, несмотря на то, что в свойствах четко сказано: "95% свободно"

dbcc opentran()
что вернет
24 фев 14, 11:06    [15617902]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
Stepan Razin,

Если журнал резервируется один раз в неделю и сразу после полной резервной копии, то, скорее всего, вы просто не понимаете что такое полная модель восстановления и она вам не нужна.
24 фев 14, 11:21    [15618014]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
Stepan Razin
Member

Откуда:
Сообщений: 37
invm
Stepan Razin,

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


Журнал резервируется каждый день, вместе с создание разностной копии. Раз в неделю делается FULL + журнал.
Я понимаю, что такое FULL и она мне нужна
24 фев 14, 11:49    [15618199]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
Stepan Razin
Member

Откуда:
Сообщений: 37
Glory
Stepan Razin
Ну, в общем, проблема в том, что после бэкапа операция сжатия базы или прямо лога не уменьшает его, несмотря на то, что в свойствах четко сказано: "95% свободно"

dbcc opentran()
что вернет


Вот:
Нет активных открытых транзакций.
24 фев 14, 11:51    [15618211]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
Stepan Razin
Журнал резервируется каждый день, вместе с создание разностной копии.
Т.е. допустимо потерять данные за день работы?
24 фев 14, 12:48    [15618685]     Ответить | Цитировать Сообщить модератору
 Re: SQL2008, не усекаются журналы транзакций после FULL+Log_Backup+Shrink на всех FULL-базах  [new]
Glory
Member

Откуда:
Сообщений: 104751
Stepan Razin
Журнал резервируется каждый день, вместе с создание разностной копии. Раз в неделю делается FULL + журнал.

Значит надо чаще бэкапить журнал
24 фев 14, 13:25    [15619116]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить