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

Откуда:
Сообщений: 13
Всем добрый день. Столкнулся с проблемой безмерного расширения лога базы tempdb. Может расти до бесконечности пока не закончится место.
Собственно закономерный вопрос, как то можно сделать что бы это автоматом чистилось?
Все дело в том, что начальный размер базы возрастает с ростом размера лога и вручную соответственно не регулируется, т.е. я выставляю нужное мне значение нажимаю окей и ничего не происходит.
Пробовал глянуть незавершенные транзакции, выдает следующее:


Сведения о транзакциях для базы данных "tempdb".
Самая старая активная транзакция:
SPID (идентификатор процесса сервера): 80
UID (идентификатор пользователя) : -1
Имя: user_transaction
Номер LSN : (710:16384:478)
Время запуска : апр 16 2019 2:08:26:237AM
Идентификатор безопасности : 0x01
Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.

Скуль работает совместно с 1с сервер, крутится порядка 10 баз данных. Раньше никогда такого не было и вообще на tempdb внимания не обращали ровно до момента когда он не съел все дисковое пространство.
Как то можно отловить в какой из БД висит незавершенная транзация из за которой судя по всему не усекается лог (в идеале бы понять обработка кака ято виновата или отчет или бог знает что еще). Пробовал вручную делать шринк, если через остнастку: задачи - сжать - файл, ничего не происходит, если через запрос DBCC SHRINKDATABASE (TEMPDB), идет выполнение, но ничего не происходит.

Перелопатил весь форум, тем не мало создано, но не нашел ничего что бы могло помочь.
17 апр 19, 08:46    [21864403]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
TaPaK
Member

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

на tempdb DBCC OPENTRAN
17 апр 19, 08:50    [21864408]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
BratishkaNVKZ
Member

Откуда:
Сообщений: 13
Сейчас пообщался программистами 1с, они перед этим обновли конфигурацию 1с ЕРП, возможно конечно еще в этом дело.
17 апр 19, 08:52    [21864409]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
BratishkaNVKZ
Member

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

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

Самая старая активная транзакция:
SPID (идентификатор процесса сервера): 80
UID (идентификатор пользователя) : -1
Имя: user_transaction
Номер LSN : (710:16384:478)
Время запуска : апр 16 2019 2:08:26:237AM
Идентификатор безопасности : 0x01
Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.
17 апр 19, 08:53    [21864411]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
TaPaK
Member

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

SELECT * FROM sysprocesses WHERE spid= 80
17 апр 19, 09:00    [21864413]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
aleks222
Member

Откуда:
Сообщений: 756
TaPaK
BratishkaNVKZ,

SELECT * FROM sysprocesses WHERE spid= 80


Так у страдальца транзакция не прошлого года и даже не вчерашнего дня.
Бесполезно.

Прикола ради: модель восстановления базы tempdb?
17 апр 19, 09:13    [21864428]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6680
aleks222
TaPaK
BratishkaNVKZ,

SELECT * FROM sysprocesses WHERE spid= 80


Так у страдальца транзакция не прошлого года и даже не вчерашнего дня.
Бесполезно.

Прикола ради: модель восстановления базы tempdb?

Время запуска : апр 16 2019 2:08:26:237AM

у меня вчера 16 апреля было
17 апр 19, 09:14    [21864431]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
aleks222
Member

Откуда:
Сообщений: 756
TaPaK
aleks222
пропущено...


Так у страдальца транзакция не прошлого года и даже не вчерашнего дня.
Бесполезно.

Прикола ради: модель восстановления базы tempdb?

Время запуска : апр 16 2019 2:08:26:237AM

у меня вчера 16 апреля было


Вчера и у страдальца было 16 апреля.
17 апр 19, 09:27    [21864445]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
BratishkaNVKZ
Member

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

SELECT * FROM sysprocesses WHERE spid= 80


Даже не знаю как тут красиво оформить то что получилось, в файлик прикрепил.

К сообщению приложен файл (S.csv - 1Kb) cкачать
17 апр 19, 09:30    [21864449]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
BratishkaNVKZ
Member

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

SELECT * FROM sysprocesses WHERE spid= 80


Так у страдальца транзакция не прошлого года и даже не вчерашнего дня.
Бесполезно.

Прикола ради: модель восстановления базы tempdb?

Модель простая, на полную её и не перевести на сколько мне известно
17 апр 19, 09:32    [21864452]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
invm
Member

Откуда: Москва
Сообщений: 8839
BratishkaNVKZ,

Узнавайте у ваших 1С-ников, что их драгоценный 1С-сервер запускал в два часа ночи и потом не завершил транзакцию.
17 апр 19, 09:40    [21864467]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
TaPaK
Member

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

ну с ваше 1с сервера,

DBCC INPUTBUFFER(80)
17 апр 19, 09:42    [21864476]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
BratishkaNVKZ
Member

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

ну с ваше 1с сервера,

DBCC INPUTBUFFER(80)

Language Event0(@P1 varbinary(16))SELECT T1._Fld6153 FROM dbo._InfoRg6151 T1 WHERE (T1._Fld6152_TYPE = 0x08 AND T1._Fld6152_RTRef = 0x000000C6 AND T1._Fld6152_RRRef = @P1)


Так?
17 апр 19, 09:52    [21864491]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29559
BratishkaNVKZ
они перед этим обновли конфигурацию 1с ЕРП, возможно конечно еще в этом дело.
Понятно, если что то стало работать по другому, ищи, что поменялось. Значит, либо это из за изменения конфигурации, либо поменялось что то ещё.

BratishkaNVKZ
Пробовал глянуть незавершенные транзакции, выдает следующее:
Вы гогда выполнили этот запрос? Сейчас?
Транзакция висит с утра вчерашнего дня, это ненормально.

Но, конечно, это может быть и не транзакция-виновник.

Вам нужно:
1) посмотреть, пустая tempdb, или заполнена.
2) если заполнена, узнать, какой процесс создал объекты. Может, этот, №80, а может и другой
3) если не заполнена, то придётся ловить, кто её заполняет
17 апр 19, 10:10    [21864512]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
TaPaK
Member

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

SELECT log_reuse_wait_desc	FROM sys.databases WHERE Name = 'tempdb'
17 апр 19, 10:18    [21864527]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
BratishkaNVKZ
Member

Откуда:
Сообщений: 13
alexeyvg
BratishkaNVKZ
они перед этим обновли конфигурацию 1с ЕРП, возможно конечно еще в этом дело.
Понятно, если что то стало работать по другому, ищи, что поменялось. Значит, либо это из за изменения конфигурации, либо поменялось что то ещё.

BratishkaNVKZ
Пробовал глянуть незавершенные транзакции, выдает следующее:
Вы гогда выполнили этот запрос? Сейчас?
Транзакция висит с утра вчерашнего дня, это ненормально.

Но, конечно, это может быть и не транзакция-виновник.

Вам нужно:
1) посмотреть, пустая tempdb, или заполнена.
2) если заполнена, узнать, какой процесс создал объекты. Может, этот, №80, а может и другой
3) если не заполнена, то придётся ловить, кто её заполняет

Где глянуть можно заполнена таблица или нет? сам размер базы полтора гигабайта, в ветке временных таблиц приличествуют данные формата : dbo.#tt1_________0000000ee88
Что касается вчерашнего дня, там получается что с понедельника на вторник ночью эта транзакция запустилась, и размера лога уже 48 гигабайт и продолжает помаленьку расти. Т.е. через пару дней он упрется в размер диска и все встанет колом.
17 апр 19, 10:36    [21864557]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
BratishkaNVKZ
Member

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

SELECT log_reuse_wait_desc	FROM sys.databases WHERE Name = 'tempdb'

На это выплыло - ACTIVE_TRANSACTION
17 апр 19, 10:36    [21864558]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
TaPaK
Member

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

прибили бы уже давно или чего ждёте?
17 апр 19, 10:37    [21864561]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
BratishkaNVKZ
Member

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

прибили бы уже давно или чего ждёте?

Ды вот толку если оно так будет каждый раз расти и жрать место, опять же прибить это перезапустить службу sqlserver но чета как это не правильно.
17 апр 19, 11:07    [21864612]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6680
BratishkaNVKZ
TaPaK
BratishkaNVKZ,

прибили бы уже давно или чего ждёте?

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

kill отменили?

ну и что в
SELECT log_reuse_wait_desc	FROM sys.databases WHERE Name = 'tempdb'
17 апр 19, 11:10    [21864615]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
BratishkaNVKZ
Member

Откуда:
Сообщений: 13
TaPaK
BratishkaNVKZ
пропущено...

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

kill отменили?

ну и что в
SELECT log_reuse_wait_desc	FROM sys.databases WHERE Name = 'tempdb'

А как прибить, чукча не научен?

К сообщению приложен файл. Размер - 26Kb
17 апр 19, 11:13    [21864624]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6680
BratishkaNVKZ
TaPaK
пропущено...

kill отменили?

ну и что в
SELECT log_reuse_wait_desc	FROM sys.databases WHERE Name = 'tempdb'

А как прибить, чукча не научен?

kill 80
17 апр 19, 11:16    [21864627]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29559
BratishkaNVKZ
alexeyvg
Вам нужно:
1) посмотреть, пустая tempdb, или заполнена.
2) если заполнена, узнать, какой процесс создал объекты. Может, этот, №80, а может и другой
3) если не заполнена, то придётся ловить, кто её заполняет

Где глянуть можно заполнена таблица или нет? сам размер базы полтора гигабайта, в ветке временных таблиц приличествуют данные формата : dbo.#tt1_________0000000ee88
Не, тут важно посмотреть, пустая база или нет. Просто в свойствах можно, или sp_spaceused.

Но если растёт, значит, не пустая.
17 апр 19, 11:26    [21864646]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29559
BratishkaNVKZ
Где глянуть можно заполнена таблица или нет? сам размер базы полтора гигабайта, в ветке временных таблиц приличествуют данные формата : dbo.#tt1_________0000000ee88
Что касается вчерашнего дня, там получается что с понедельника на вторник ночью эта транзакция запустилась, и размера лога уже 48 гигабайт и продолжает помаленьку расти. Т.е. через пару дней он упрется в размер диска и все встанет колом.
Ну и можно посмотреть, какая таблица большая. Если вообще такая есть.

+
use tempdb
SELECT 
	schema_name(o.schema_id) + '.' +  o.name as [Table Name], 
	fg.name as [File Group],
	SUM (p.reserved_page_count) as [reserved_page_count],
	convert(decimal(13,2), SUM (p.reserved_page_count) * 8. / 1024 / 1024) as [reservedpages GB],
	SUM (p.used_page_count) as [used_page_count],
	convert(decimal(13,2), SUM (p.used_page_count) * 8. / 1024 / 1024) as [usedpages GB],
	SUM (
		CASE
			WHEN (p.index_id < 2) THEN (p.in_row_data_page_count + p.lob_used_page_count + p.row_overflow_used_page_count)
			ELSE p.lob_used_page_count + p.row_overflow_used_page_count
		END
		) as pages,
	SUM (
		CASE
			WHEN (p.index_id < 2) THEN p.row_count
			ELSE 0
		END
		) as [rowCount]
FROM sys.dm_db_partition_stats p (nolock)
	join sys.objects as o (nolock)
		on o.object_id = p.object_id
		and o.type = 'U'
	join sys.sysindexes i (nolock)
		on i.id = o.object_id
		and i.indid in (0,1)
	join sys.filegroups fg (nolock)
		on fg.data_space_id = i.groupid
group by o.name, o.schema_id, fg.name
order by [reservedpages GB] desc
17 апр 19, 11:29    [21864658]     Ответить | Цитировать Сообщить модератору
 Re: Опять TempDB  [new]
BratishkaNVKZ
Member

Откуда:
Сообщений: 13
Всем огромное спасибо за ответы и активное участие, буду вникать разбираться, отпишусь еще. Транзакцию прибил, оказалось была еще одна запущенная в это же время, после ее убийства смог вручную сжать лог.
17 апр 19, 11:41    [21864684]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить