Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
chertik83
Member

Откуда:
Сообщений: 72
Уменьшение размера log файла в SQL Server 2008

Приминимо к SQL 2008

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

источник http://blogs.msdn.com/gaidar/archive/2009/04/10/9542641.aspx
14 сен 09, 19:48    [7657710]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Кудряшка
Member

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

Надо только очень четко понимать, что после переводе в SIMPLE, бэкап лога уже сделать не удастся. А если бэкап лога не делается в принципе вообще, то смысла в FULL recovery model НЕТ.

А если бэкап лога делается, то SHRINK можно сделать и без перевода в SIMPLE recovery... a сразу после бэкапа лога.

кг/ам
19 сен 09, 06:43    [7682355]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Neo1
Member

Откуда:
Сообщений: 6
> Усечение(truncating) лога - это удаление из него информации о завершенных транзакциях. Бэкап лога в том числе производит и усечение лога. Только после записи усекаемых транзакций в устройство архивирования. А опция TRUNCATE_ONLY всего лишь позволяла пропустить этот шаг записи в устройство.
---------------------------------------------------------------------------

Подскажите, пожалуйста в теоретическом вопросе:
При усечении с помощью TRUNCATE_ONLY происходит удаление информации о завершеных транзакциях - даже тех, которые не перенесены из журнала в основную базу данных или только перенесенных?

И еще. В BOL сказано, что TRUNCATE_ONLY удаляет только неактивную часть журнала. Но исходя из того, о чем было написано выше, может быть, что завершенная транзакция окажется активной записью журнала, или нет?? Где я недопонимаю?
20 июл 10, 16:44    [9132626]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31990
Neo1
Подскажите, пожалуйста в теоретическом вопросе:
При усечении с помощью TRUNCATE_ONLY происходит удаление информации о завершеных транзакциях - даже тех, которые не перенесены из журнала в основную базу данных или только перенесенных?
Нет, только перенесённых. Но чаще всего завершённые уже перенесены.

Neo1
И еще. В BOL сказано, что TRUNCATE_ONLY удаляет только неактивную часть журнала. Но исходя из того, о чем было написано выше, может быть, что завершенная транзакция окажется активной записью журнала, или нет?? Где я недопонимаю?
Может. Например, транзакцию ещё нужно перенести на сервер-распространитель для репликации.
20 июл 10, 16:52    [9132740]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Neo1
Member

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

> Может. Например, транзакцию ещё нужно перенести на сервер-распространитель для репликации.
---------------------------------------------------------------------------------

Тогда получается, что TRUNCATE_ONLY усекает не только НЕактивную часть журнала, но и активную?

тогда что имеется в виду в BOL:
"Removes the inactive part of the log without making a backup copy of it and truncates the log. This option frees space". ?

под "inactive part" подразумеваются завершеные транзакции, или это просто ошибка?
20 июл 10, 16:58    [9132817]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Neo1
Member

Откуда:
Сообщений: 6
Собственно вопросы начались после прочтения вот этой статьи:

http://www.interface.ru/home.asp?artId=22199

Если там посмотреть на рис. 1 (до усечения) и рис. 2 (после усечения), то видно, что усечение всегда происходит до MinLSN - самой старой активной транзакции в журнале... это тоже как понимать?
20 июл 10, 17:08    [9132927]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Glory
Member

Откуда:
Сообщений: 104751
Neo1
Собственно вопросы начались после прочтения вот этой статьи:

http://www.interface.ru/home.asp?artId=22199

Если там посмотреть на рис. 1 (до усечения) и рис. 2 (после усечения), то видно, что усечение всегда происходит до MinLSN - самой старой активной транзакции в журнале... это тоже как понимать?

Недоставленная транзакция не является завершенной
Поэтому она видна в команде DBCC OPENTRAN()
20 июл 10, 17:13    [9132969]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Neo1
Member

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

что такое недоставленная транзакция? Незафиксированная или не перенесенная в основную базу? И что тогда подразумевает "активная транзакция"?
20 июл 10, 17:21    [9133043]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Glory
Member

Откуда:
Сообщений: 104751
Neo1
Glory,

что такое недоставленная транзакция? Незафиксированная или не перенесенная в основную базу? И что тогда подразумевает "активная транзакция"?

nondistributed replicated transactions - она зафиксирована на одном из участников репликации
Но недоставлена другим участникам репликации
А активная транзакция - это которая сейчас еще выполняется
20 июл 10, 17:25    [9133070]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Neo1,

IMHO, Вы плаваете в терминологиии (активная транзакция, активная \ неактивная часть лога и т.п.) и от это проблемы с пониманием.

Лучше, все-таки, прильнут к первоисточнику.

BOL->Transaction Log Architecture
BOL->Transaction Log Management
20 июл 10, 17:32    [9133146]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Neo1
Member

Откуда:
Сообщений: 6
Хорошо, давайте тогда рассмотрим простой вариант, когда репликаций нет.

Отрывок из статьи:

"Усечению журнала могут воспрепятствовать две широко известные проблемы:
...
Переключение на модель восстановления FULL, выполнение полной резервной копии и полный отказ от создания резервных копий журнала. Весь журнал транзакций остается активным в ожидании резервного копирования процедурой резервного копирования журнала".

Если в данной ситуации мы применим TRUNCATE_ONLY, он обрежет активный журнал, если все тразакции завершены, но имеет место быть ожидание процедуры резервного копирования журнала?
20 июл 10, 17:34    [9133191]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Neo1
Member

Откуда:
Сообщений: 6
> IMHO, Вы плаваете в терминологиии (активная транзакция, активная \ неактивная часть лога и т.п.) и от это проблемы с пониманием

Именно так)) Просто английский я знаю не особенно глубоко. А по ходе изучения статей на русском возникла некоторая путаница с терминами. Поэтому и спрашиваю, что хотелось бы прийти к какой-то непротиворечивой картине того, что же усекает TRUNCATE_ONLY, а что нет? Хотя бы ну уровне общего представления...
20 июл 10, 17:38    [9133229]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Кудряшка
Member

Откуда: Сидней
Сообщений: 2219
Neo1
> IMHO, Вы плаваете в терминологиии (активная транзакция, активная \ неактивная часть лога и т.п.) и от это проблемы с пониманием

Именно так)) Просто английский я знаю не особенно глубоко. А по ходе изучения статей на русском возникла некоторая путаница с терминами. Поэтому и спрашиваю, что хотелось бы прийти к какой-то непротиворечивой картине того, что же усекает TRUNCATE_ONLY, а что нет? Хотя бы ну уровне общего представления...


TRUNCATE_ONLY - это "опция" команды BACKUP LOG.

backup log ... with truncate only:

1. не смотря на то что backup, никакого бэкапа в виде файла на диске не делает, потому что ->
2. with truncate_only - только с усечением лога. Т.е. освобождением места в ЛОГЕ, того места, которое занято уже завершенными транзакциями. При этом размер лога на диске не меняется.
21 июл 10, 07:40    [9134964]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Neo1
Если в данной ситуации мы применим TRUNCATE_ONLY, он обрежет активный журнал, если все тразакции завершены, но имеет место быть ожидание процедуры резервного копирования журнала?


Короткий ответ(без размышлений на тему what is good?) - ДА, обрежет.
21 июл 10, 19:02    [9140275]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Добрый_Чэ
Member

Откуда:
Сообщений: 4125
BACKUP LOG MyDb TO DISK=’NUL:’




http://www.brentozar.com/archive/2009/08/backup-log-with-truncate-only-in-sql-server-2008/
6 янв 12, 15:24    [11864915]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
Добрый_Чэ
BACKUP LOG MyDb TO DISK=’NUL:’




http://www.brentozar.com/archive/2009/08/backup-log-with-truncate-only-in-sql-server-2008/
А вот интересно зачем надо было вылезать из ПТ с некропостом и давать ссылку на абсолютно вредную статью и приводить инструкцию, не понимая к каким последствиям она приводит?
6 янв 12, 15:39    [11864981]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Lunatikus
Member

Откуда:
Сообщений: 79
Здравствуйте, не сочтите за некропостинг, но также столкнулся с проблемой чрезмерно большого лога транзакций. В моем случае SQL 2005, где сейчас расположена база с simple-восстановлением размером 600 Мб сама по себе + 4.5 Гб журнала транзакций. Причем, интерфейс шринка файлов показывает, что все 4.5 гига используются подо что-то.
Соответственно шринк в данном случае не помогает, как и бэкапирование журнала с опцией with truncate_only. Значит ли это, что весь журнал заполнен незавершенными транзакциями?

возможно, в прошлом, стояла модель восстановления full, в результате чего журнал и разросся. Но он нафик не нужен сейчас. Что я неверно понимаю в процессах shrink и backup log?: ведь после бэкапирования лог должен почиститься от старой информации, после чего шринк освободит физически помеченное как свободное место, которое занимали данные лога. Но этого не происходит.

с уважением, Сергей
1 авг 12, 14:19    [12946505]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lunatikus
Что я неверно понимаю в процессах shrink и backup log?: ведь после бэкапирования лог должен почиститься от старой информации, после чего шринк освободит физически помеченное как свободное место, которое занимали данные лога. Но этого не происходит.

бэкапирования лога не может ничего сделать с активными транзакциями. Только с завершенными

Lunatikus
Значит ли это, что весь журнал заполнен незавершенными транзакциями?

DBCC OPENTRAN
DBCC SQLPERF(LOGSPACE)
1 авг 12, 14:23    [12946533]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Lunatikus
Member

Откуда:
Сообщений: 79
Log Size - 5431,93MB
used - 92,37849%
status - 0

"used" показывает активные транзакции?
Как-то сомнительно, что столько накопилось. Возможно, это повисшие транзакции. Как их тогда можно нивелировать?
1 авг 12, 14:41    [12946653]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lunatikus
"used" показывает активные транзакции?
Как-то сомнительно, что столько накопилось. Возможно, это повисшие транзакции. Как их тогда можно нивелировать?

Лог нельзя усекать выборочно. Одна активная транзакция может "запереть" завершенные
Для определения этого и нужна команда DBCC OPENTRAN
1 авг 12, 14:44    [12946670]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Lunatikus
Member

Откуда:
Сообщений: 79
т.е. есть вероятность, что активно всего несколько транзакций, но они используют 90% завершенных, вследствии чего вся эта куча не может быть очищена? А если остановить все текущие транзакции, оборвав все коннекты к базе? После этого ведь ничего не изменится и лог будет так же весить 5+ Гб.
1 авг 12, 14:51    [12946726]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lunatikus
т.е. есть вероятность, что активно всего несколько транзакций, но они используют 90% завершенных, вследствии чего вся эта куча не может быть очищена? А если остановить все текущие транзакции, оборвав все коннекты к базе? После этого ведь ничего не изменится и лог будет так же весить 5+ Гб.

Одна последняя активная транзакция "блокирует" удаления завершенных транзакций, расположенных раньше
Все это хорошо расписано в хелпе
1 авг 12, 14:53    [12946746]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Lunatikus
Member

Откуда:
Сообщений: 79
т.е. закрытие всех соединений с базой позволит в таком случае бэкапом лога уменьшить его?
1 авг 12, 14:59    [12946789]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
nezhadnye_my
Guest
сделайте
select name, recovery_model_desc, log_reuse_wait_desc
from sys.databases

будет про каждую базу написано, чего лог ждет.
опубликуйте тут, чего ждет лог вашей базы.
заодно убедитесь, что LOG_BACKUP могут ждать только базы в модели FULL
1 авг 12, 15:15    [12946912]     Ответить | Цитировать Сообщить модератору
 Re: BACKUP LOG ... WITH TRUNCATE_ONLY в mssql 2008  [new]
Lunatikus
Member

Откуда:
Сообщений: 79
кхм. REPLICATION он ждет.
1 авг 12, 15:18    [12946935]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить