Ошибка при Update statistics

Update statistics
Дата: 18.02.2013 10:31:46
Пытаюсь обновить статистику, получаю в error log следующую ошибку
[298] SQLServer Error: 9002, The transaction log for database 'tempdb' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases [SQLSTATE 42000] (ConnExecuteCachableOp)


Смотрю что с логами, вроде все в порядке.

DBCC SQLPERF (LOGSPACE)

master	1.742188	68.60986	0
tempdb	1585.359	53.65281	0
model	0.9921875	35.43307	0
msdb	3.742188	43.73695	0
db1	5000.992	2.385542	0
db2	3250.992	0.8250787	0
db3	7000.992	1.122985	0

Смотрим, указывают причину, связанную с репликацией

SELECT NAME, log_reuse_wait_desc FROM sys.databases d
master	NOTHING
tempdb	NOTHING
model	NOTHING
msdb	NOTHING
db1	REPLICATION
db2	NOTHING
db3	NOTHING

Сама репликация настроена и работает, проверил на 3-ёх базах фиктивными изменениями данных.

DBCC OPENTRAN на базу db1

Transaction information for database 'db1'.

Replicated Transaction Information:
        Oldest distributed LSN     : (2095197:238104:106)
        Oldest non-distributed LSN : (0:0:0)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.


В чем может быть дело? Неужели придется пересоздать работающую репликацию.
Glory
Дата: 18.02.2013 10:37:04
Update statistics
Пытаюсь обновить статистику,

Какой командой ?

Update statistics
В чем может быть дело? Неужели придется пересоздать работающую репликацию.

А причем тут база db1 ?
В тексте ошибке речь идет про "The transaction log for database 'tempdb' is full"
Гость333
Дата: 18.02.2013 10:38:01
Update statistics
Error: 9002, The transaction log for database 'tempdb' is full.

Если заполнен лог-файл базы tempdb, то зачем нужно изучать лог-файлы каких-то других баз? Проверьте параметры автоприращения лог-файлов tempdb и свободное место на диске, где эти файлы расположены.
Update statistics
Дата: 18.02.2013 11:01:45
Вот результат запроса по базе tempdb

SELECT file_id, name, df.physical_name, type_desc, SIZE, max_size, growth, df.is_percent_growth
  FROM sys.database_files df


file_id	name	physical_name	type_desc	SIZE	max_size	growth	is_percent_growth
1	tempdev	        C:\DATA\tempdb.mdf	ROWS	1024	-1	0	0
2	templog	        C:\DATA\templog.ldf	LOG	64	-1	0	0
3	tempdev51	e:\DATA\tempdev51.ndf	ROWS	700424	-1	10	1
4	templog51	e:\DATA\templog51.ldf	LOG	202864	268435456	10	1

На диске C: места 5 гигабайт осталось, на E: много. Но на файлах, расположенных на C:, не стоит возможность расширения. Вроде все нормально.

Меня беспокоит, почему у db1 значение у колонки log_reuse_wait_desc = REPLICATION
Glory
Дата: 18.02.2013 11:04:26
Update statistics
Меня беспокоит, почему у db1 значение у колонки log_reuse_wait_desc = REPLICATION

Потому что там репликация. Транзакционная.

Update statistics
На диске C: места 5 гигабайт осталось, на E: много. Но на файлах, расположенных на C:, не стоит возможность расширения. Вроде все нормально.

Какая команда вызвала ошибку ?
Update statistics
Дата: 18.02.2013 11:09:45
Glory
Update statistics
Меня беспокоит, почему у db1 значение у колонки log_reuse_wait_desc = REPLICATION

Потому что там репликация. Транзакционная.


То есть это нормально. Для баз с транзакционной репликацией будет стоять такое значение.

Glory
Update statistics
На диске C: места 5 гигабайт осталось, на E: много. Но на файлах, расположенных на C:, не стоит возможность расширения. Вроде все нормально.

Какая команда вызвала ошибку ?



SELECT 'update statistics kit71e.dbo.['+ name  + '] WITH FULLSCAN, ALL ' name 
 INTO #test from db1..sysobjects
where type='U'

EXEC MASTER..ExecThreads '#test', 15
Glory
Дата: 18.02.2013 11:13:35
Update statistics
То есть это нормально. Для баз с транзакционной репликацией будет стоять такое значение.

Что для вас есть "нормально" ?
Запрос показал причину того, почему не усекается журнал базы.
А все ли нормально с репликацией этот запрос показать не может

Update statistics
SELECT 'update statistics kit71e.dbo.['+ name  + '] WITH FULLSCAN, ALL ' name 
 INTO #test from db1..sysobjects
where type='U'

EXEC MASTER..ExecThreads '#test', 15

Теперь нужно угадать, какая команда в ExecThreads вызвала ошибку ?
Update statistics
Дата: 18.02.2013 11:33:58
Glory
Update statistics
То есть это нормально. Для баз с транзакционной репликацией будет стоять такое значение.

Что для вас есть "нормально" ?
Запрос показал причину того, почему не усекается журнал базы.
А все ли нормально с репликацией этот запрос показать не может


3 базы, для каждой из них настроена репликация. Вызывало вопрос, почему только для одной из них указана причина REPLICATION как причина не усечения лога.


Glory
Update statistics
SELECT 'update statistics kit71e.dbo.['+ name  + '] WITH FULLSCAN, ALL ' name 
 INTO #test from db1..sysobjects
where type='U'

EXEC MASTER..ExecThreads '#test', 15

Теперь нужно угадать, какая команда в ExecThreads вызвала ошибку ?


Login failed for user 'ThreadUser'
Glory
Дата: 18.02.2013 11:35:39
Update statistics
3 базы, для каждой из них настроена репликация. Вызывало вопрос, почему только для одной из них указана причина REPLICATION как причина не усечения лога.

Ну так что вам мешает проверить репликацию этой базы

Update statistics
Login failed for user 'ThreadUser'

Это текст команды ?
Update statistics
Дата: 18.02.2013 12:02:42
[quot Glory]
Update statistics
3 базы, для каждой из них настроена репликация. Вызывало вопрос, почему только для одной из них указана причина REPLICATION как причина не усечения лога.

Ну так что вам мешает проверить репликацию этой базы

Она в порядке, как и репликации с двух других. Отсюда вопрос, почему для одной из трех баз другое значение столбца.


Glory
Update statistics
Login failed for user 'ThreadUser'

Это текст команды ?


Текст ошибки. Текст команды профайлером поймать или другой способ?