Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 The transaction log for database 'db_name' is full или опять 25  [new]
GreyAlex
Member

Откуда:
Сообщений: 6
Всем доброго утра.
Сразу скажу, ДА, поиск использовал, FAQ читал.
Да, я не опытный пользователь SQL, умею выполнять запросы, действовать по инструкции, искать ответы.

Пишу, потому что так и не догнал решение вопроса, в моем варианте + есть подозрение что моя ситуация чуток не обычна.
Суть проблемы, база выдает ошибку The transaction log for database 'имя базы' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases.
Само собой, log_reuse_wait_desc я не смотрел, база не у меня, мне до нее далеко ехать, я вижу только удаленно такую ошибку.
Я знаю что ldf файл занимает 150 гигов, mdf 14 гигов, тип восстановления simple. Тут-то и собака, база была восстановлена на SQL 2008R2 Enterprise, восстановили с Full model видимо, потом поменяли на Simple, но это не спасло от роста журнала транзакций.
Сейчас мне сообщают, что база еще и не жмется.

Отсюда вопрос, что можно сделать в этой ситуации. Как правильно выполнить шринк лога, чтобы он не только очистился от законченных транзакций, но ужался в своем размере на диске.
Так же, как про диагностировать, почему этот лог растет после перевода в Simple?

Надеюсь на помощь, и спасибо за внимание.
8 окт 12, 10:57    [13282827]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
Glory
Member

Откуда:
Сообщений: 104760
GreyAlex
Отсюда вопрос, что можно сделать в этой ситуации.
Как правильно выполнить шринк лога, чтобы он не только очистился от законченных транзакций, но ужался в своем размере на диске.

Для начала завершить транзакции, которые мешают усечению лога.
8 окт 12, 11:02    [13282851]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
GreyAlex
Member

Откуда:
Сообщений: 6
Каким образом это можно сделать?
База данных соединена программой. В программу приходят файлы, и записываются в БД, выкладываются на диск и прочее. После выхода из программы, ее взаимодействие с базой прекращается. Можно ли выход из не, считать закрытием всех транзакций, или это делается как-то иначе?
8 окт 12, 11:23    [13283009]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
GreyAlex
Я знаю что ldf файл занимает 150 гигов, mdf 14 гигов, тип восстановления simple. Тут-то и собака, база была восстановлена на SQL 2008R2 Enterprise, восстановили с Full model видимо, потом поменяли на Simple, но это не спасло от роста журнала транзакций.
Сейчас мне сообщают, что база еще и не жмется.
Возможно, это следы репликации.

Нужно, чтоб админ на месте определял причину, "по рассказам" это невозможно.
8 окт 12, 11:25    [13283021]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
Glory
Member

Откуда:
Сообщений: 104760
GreyAlex
Каким образом это можно сделать?

log_reuse_wait_desc
DBCC OPENTRAN()
8 окт 12, 11:25    [13283022]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
GreyAlex
Member

Откуда:
Сообщений: 6
log_reuse_wait log_reuse_wait_desc
6 REPLICATION


Сведения о транзакциях для базы данных "имя базы".

Самая старая активная транзакция:
SPID (идентификатор процесса сервера): 54
UID (идентификатор пользователя) : -1
Имя: MoveBlob
Номер LSN : (83456:2977:1)
Время запуска : окт 8 2012 10:45:29:617AM
Идентификатор безопасности : 0x010500000000000515000000bf5bea069011c922a04b727e23e20300

Сведения о реплицированных транзакциях:
Самый старый номер LSN : (0:0:0)
Самый старый нераспределенный номер LSN : (82574:322:1)
Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.
8 окт 12, 11:59    [13283304]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
GreyAlex
Member

Откуда:
Сообщений: 6
Результаты выше, что можете посоветовать?

Проблема в том, что админы не справились и сами не в курсе что делать, а с инетом у них проблемы(
Еще сообщили, что пробовали делать сжатие БД через GUI SQL Managment Studio, Задачи-Сжать, делали как для БД так и для Файлов, эффекта ноль.
8 окт 12, 14:05    [13284416]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
Glory
Member

Откуда:
Сообщений: 104760
GreyAlex
Результаты выше, что можете посоветовать?

А что непонятного то ?
wait log_reuse_wait_desc - REPLICATION

Сведения о реплицированных транзакциях: - Самый старый нераспределенный номер LSN : (82574:322:1)

Кто-то следит за репликацией ? Или она уже никому нафиг не нужна ?
8 окт 12, 14:14    [13284501]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
nezhadnye_my
Guest
ну лог ждет, когда его отреплицируют.
репликация есть у Вас или это отголоски?
если есть, отсылайте лог, если нет, убирайте остатки репликации
8 окт 12, 14:15    [13284508]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
sp_removedbreplication
8 окт 12, 14:20    [13284545]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
Алексей Дарьин
Member

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

Тут-то и собака, база была восстановлена на SQL 2008R2 Enterprise, восстановили с Full model видимо, потом поменяли на Simple, но это не спасло от роста журнала транзакций...
Так же, как про диагностировать, почему этот лог растет после перевода в Simple?

После перевода модели из Full в Simple нужно сделать полный бэкап базы, только после этого лог начнет автоматически обрезаться.
8 окт 12, 14:43    [13284786]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Алексей Дарьин
GreyAlex,

Тут-то и собака, база была восстановлена на SQL 2008R2 Enterprise, восстановили с Full model видимо, потом поменяли на Simple, но это не спасло от роста журнала транзакций...
Так же, как про диагностировать, почему этот лог растет после перевода в Simple?

После перевода модели из Full в Simple нужно сделать полный бэкап базы, только после этого лог начнет автоматически обрезаться.
Это ваши фантазии.
8 окт 12, 15:39    [13285316]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
GreyAlex
Member

Откуда:
Сообщений: 6
Спасибо за ваши ответы.
С репликациями, нет не следит никто и не известно, нужны ли они.
С Full>Simple, спасибо за информацию, бэкап не делался, судя по всему это и есть источник проблемы.

Сейчас мы пробуем отсоединить базу, переименовать лог, подсоединить заново убрав подключение лога и посмотреть что будет на выходе. На тест машине такой маневр прошел и вроде даже без проблем.

Кстати, какие вообще могут быть проблемы при отсутствии ldf файла или его, скажем, изменений чем-либо?
8 окт 12, 16:00    [13285509]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
Glory
Member

Откуда:
Сообщений: 104760
GreyAlex
Сейчас мы пробуем отсоединить базу, переименовать лог, подсоединить заново убрав подключение лога и посмотреть что будет на выходе.

Вот почему люди вырезают гланды через анальный проход ?


GreyAlex
Кстати, какие вообще могут быть проблемы при отсутствии ldf файла или его, скажем, изменений чем-либо?

Придется долго и нудно вручную восстанавливать все данные из базы.
8 окт 12, 16:08    [13285572]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
Алексей Дарьин
Member

Откуда:
Сообщений: 13
Гавриленко Сергей Алексеевич,

http://msdn.microsoft.com/en-us/library/ms178052(v=sql.105).aspx
After Switching to the Simple Recovery Model
If you switch from the full or bulk-logged recovery model to the simple recovery model, you break the backup log chain. Therefore, we strongly recommend that you back up the log immediately before switching, which allows you to recover the database up to that point. After switching, you need to take periodic data backups to protect your data and to truncate the inactive portion of the transaction log.
8 окт 12, 16:08    [13285579]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
Glory
Member

Откуда:
Сообщений: 104760
Алексей Дарьин
Therefore, we strongly recommend

Это вы переводите, как "нужно сделать полный бэкап базы, только после этого лог начнет автоматически обрезаться." ?
8 окт 12, 16:10    [13285594]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
GreyAlex
Member

Откуда:
Сообщений: 6
Не имея информации по действиям с репликациями (не ясно, стоит ли их закрывать или нет) был выбран такой вариант.

Учитывая, что админ говорит, что такой вариант у него не срабатывал, мы еще успеем попробовать провести sp_removedbreplication
8 окт 12, 16:11    [13285604]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Алексей Дарьин
Гавриленко Сергей Алексеевич,

http://msdn.microsoft.com/en-us/library/ms178052(v=sql.105).aspx
After Switching to the Simple Recovery Model
If you switch from the full or bulk-logged recovery model to the simple recovery model, you break the backup log chain. Therefore, we strongly recommend that you back up the log immediately before switching, which allows you to recover the database up to that point. After switching, you need to take periodic data backups to protect your data and to truncate the inactive portion of the transaction log.
Без полного бэкапа отлично получается сделать truncate the inactive portion of the transaction log, но хреново protect your data.
8 окт 12, 16:13    [13285621]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
Алексей Дарьин
Member

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

Нет, я так не перевожу. В прошлом была проблема с переводом из Simple в Full. Лог продолжал обрезаться, пока не был сделан полный бэкап базы. Я допускаю, что в данном случае тоже самое.
8 окт 12, 16:15    [13285631]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Алексей Дарьин
Glory,

Нет, я так не перевожу. В прошлом была проблема с переводом из Simple в Full. Лог продолжал обрезаться, пока не был сделан полный бэкап базы. Я допускаю, что в данном случае тоже самое.
Вот наоборот он как раз полный бэкап и нужен. Здесь-то зачем?
8 окт 12, 16:22    [13285688]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
Glory
Member

Откуда:
Сообщений: 104760
Алексей Дарьин
В прошлом была проблема с переводом из Simple в Full. Лог продолжал обрезаться, пока не был сделан полный бэкап базы. Я допускаю, что в данном случае тоже самое.

А вы точно читали все, что написал автор темы ?
8 окт 12, 16:24    [13285700]     Ответить | Цитировать Сообщить модератору
 Re: The transaction log for database 'db_name' is full или опять 25  [new]
Алексей Дарьин
Member

Откуда:
Сообщений: 13
Гавриленко Сергей Алексеевич,

Да, перепутал.
8 окт 12, 17:42    [13286294]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить