|
MSSQL SHRINKDATABASE SLEEP TASK | ☑ | ||
---|---|---|---|---|
0
Geroy
25.01.23
✎
13:23
|
MSSQL 2016
База 1.7 Тб Для разработчиков делаем урезанную копию (без 10 больших таблиц) Таблица убираем Truncate, после выполняем SHRINKDATABASE Через некорое время, задание засыпает Task State - SUSPENDED Command - DbccFilesCompact Wait type - SLEEP TASK Как найти причину, почему оно не выполняется?) |
|||
1
ptiz
25.01.23
✎
13:37
|
(0) А оно точно не выполняется? Нагрузки нет на диски и процессор?
|
|||
2
Geroy
25.01.23
✎
13:45
|
К базе не соединений, к кластеру 1С не подключена
Нагрузки нет В логах DBCC SHRINKDATABASE for database ID 11 is waiting for the snapshot transaction with timestamp 5101448 and other snapshot transactions linked to timestamp 5101448 or with timestamps older than 123707744 to finish. Куда копать? что это за транзакции |
|||
3
Kassern
25.01.23
✎
13:47
|
(0) Проще наверное выгрузить чистую конфу и на нее накатить через выгрузку/загрузку данных нужные справочники и документы за обрезанный период. Все, что связано само догрузится.
|
|||
4
OldCondom
25.01.23
✎
13:50
|
Гугл на первых выводах говорит:
Разрешить эту проблему можно одним из следующих способов. Прервите выполнение транзакции, которая блокирует операцию сжатия. Прервите операцию сжатия. При прерывании операции сжатия вся уже выполненная работа сохраняется. Пока операция сжатия ожидает завершения блокирующей транзакции, ничего делать не нужно. |
|||
5
ptiz
25.01.23
✎
13:51
|
(2) Долго висит? Часов 6 может работать эта операция.
|
|||
6
Geroy
25.01.23
✎
13:53
|
(4) Видел данное описание, какую транзакцию ? откуда она
1. размер базу из бэкапа 2. перевёл в режим Simple 3. Обрезал ненужные таблицы 4. Запускаю шринк (5) бесконечно долго, она засыпает и ждет DBCC SHRINKDATABASE for database ID 11 is waiting for the snapshot transaction with timestamp 5101448 and other snapshot transactions linked to timestamp 5101448 or with timestamps older than 123707744 to finish. |
|||
7
OldCondom
25.01.23
✎
13:54
|
зашринкуй сначала лог транзакций
|
|||
8
Geroy
25.01.23
✎
13:58
|
(7) делаю так
DBCC SHRINKFILE (N'base_log' , 0, TRUNCATEONLY) DBCC SHRINKFILE (N'base' , 0, TRUNCATEONLY) DBCC SHRINKDATABASE(N'base') |
|||
9
OldCondom
25.01.23
✎
14:13
|
DBCC OPENTRAN
затем KILL |
|||
10
Geroy
25.01.23
✎
14:17
|
(9) это выполнить перед ?
|
|||
11
OldCondom
25.01.23
✎
14:28
|
(10) Это список активных транзакций. Очевидно, что надо грохнуть ту, что мешает. Очевидно, что ПЕРЕД
|
|||
12
Geroy
26.01.23
✎
09:57
|
(11)
1.DBCC OPENTRAN No active open transactions. DBCC execution completed. If DBCC printed error messages, contact your system administrator. Completion time: 2023-01-26T09:54:01.6915629+03:00 2. sys.dm_exec_requests Status wait_type Command DatabaseName cpu_time total_elapsed_time percent_complete suspended SLEEP_TASK DbccFilesCompact base 4326958 5087912 29.47133 3. Логи Date 1/26/2023 9:53:17 AM Log SQL Server (Current - 1/26/2023 7:01:00 AM) Source spid70 Message DBCC SHRINKDATABASE for database ID 11 is waiting for the snapshot transaction with timestamp 739176370 and other snapshot transactions linked to timestamp 739176370 or with timestamps older than 778886028 to finish. Куда копать? |
|||
13
Mihenius
26.01.23
✎
10:58
|
А точно ничего больше не мешает?
USE master GO SELECT * FROM sys.sysprocesses WHERE dbid = DB_ID('Имя базы') GO EXEC sp_who2 -- ищем мешающий номер процесса KILL --убиваем номер мешающего процесса |
|||
14
katamoto
26.01.23
✎
11:32
|
(12) OPENTRAN без параметров в контексте текущей базы выполнится, скорее всего у вас это master был. DBCC OPENTRAN ('base') запускайте
|
|||
15
Geroy
26.01.23
✎
12:38
|
(13) Только 1 строка с этим заданием
lastwaittype SLEEP_TASK cmd DbccFilesCompact status suspended (14) DBCC OPENTRAN ('base') - пусто No active open transactions. DBCC execution completed. If DBCC printed error messages, contact your system administrator. Completion time: 2023-01-26T12:33:42.5876795+03:00 |
|||
16
Geroy
26.01.23
✎
12:39
|
В логах каждые 5 минут
Message DBCC SHRINKDATABASE for database ID 11 is waiting for the snapshot transaction with timestamp 739176370 and other snapshot transactions linked to timestamp 739176370 or with timestamps older than 824183246 to finish. |
|||
17
Проводкин
26.01.23
✎
12:53
|
(16)"waiting for the snapshot transaction with timestamp" архивчик делается (снимок). может как-то эти процессы начинают друг друга ждать ?... по итогу все стоит
|
|||
18
katamoto
26.01.23
✎
12:54
|
select * from sys.dm_tran_active_snapshot_database_transactions и там в sequence_num ищите эти таймстампы и смотрите к каким сессиями принадлежат
|
|||
19
DrZombi
гуру
26.01.23
✎
14:48
|
(0) Думается оно таки не долго выполняется.
https://learn.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-shrinkdatabase-transact-sql?view=sql-server-ver16 Уменьшает размер файлов данных и журналов в указанной базе данных. Проверьте файлик, возможно он ужо ужался. Перед ужатем вы должны удалить сами данные :) |
|||
20
DrZombi
гуру
26.01.23
✎
14:51
|
(16) Переведите базу в режим "Модель восстановления - Простая" :)
|
|||
21
Geroy
26.01.23
✎
15:10
|
(19) ну вы уж слишком, советы для начинающих - это уже давно сделано
|
|||
22
Geroy
26.01.23
✎
15:12
|
(18) Спасибо большое, с помощью "sys.dm_tran_active_snapshot_database_transactions" нашел причину
Проблемное задание в базе источник, с которого выполнялся бекап для дальнейшего развертывания и урезания таблиц Странно, но факт |
|||
23
ptiz
26.01.23
✎
15:20
|
(22) Как вариант, можно было в single user перевести перед шринком.
|
|||
24
Geroy
26.01.23
✎
15:21
|
(23) пробовал, не помогло
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |