DBCC SHRINKFILE: Page 1:123456 could not be moved because it is a work file page.

20-sty-2014

Błąd świadczy o tym, że operacja shrink chciała zmniejszyć plik bazy danych o strony, które są aktualnie wykorzystywane przez tabele znajdujące się w tempdb. Otrzymasz go czasem podczas shrinkowania tempdb:

DBCC shrinkfile (tempdb_data, 5000);

W tej sytuacji można:

1. DBCC FREESYSTEMCACHE (’ALL’)

czyści cache systemowy

2. Wykonać

CHECKPOINT

żeby bufory w pamięci były czyste, a następnie:

DBCC DROPCLEANBUFFERS

3. Wyczyścić cache procedur (skompilowane procedury przechowywane w pamięci):

DBCC FREEPROCCACHE

 

W moim przypadku ponowne uruchomienie shrink znowu skończyło się błędem, ale zwolniona została znacznie większa część pliku niż za pierwszym razem.

Jeśli już nic nie da się zrobić pozostanie tylko restart instancji…

Więcej na ten temat:

http://sqlsunday.com/2013/08/11/shrinking-tempdb-without-restarting-sql-server/

 

Komentarze:

  1. Rafal napisał,

    Moje wyniki, po każdej opisanej tu komendzie wykonywałem shrinkfile. Dopiero po ostatnim poleceniu Current size zbliżył się do tego co sobie życzyłem w SHRINKFILE
    Kolumny to: Dbid/FileId/CurrentSize/Minimumsize/UsedPages/EstimatedPages
    2 1 506432 162872 1136 1136
    2 1 477744 162872 480 480
    2 1 477744 162872 472 472
    2 1 477744 162872 480 480
    2 1 262144 162872 480 480

  2. Mobilo » Blog Archive » Nie można shrinkować bazy napisał,

    […] http://www.mobilo24.eu/dbcc-shrinkfile-page-1123456-could-not-be-moved-because-it-is-a-work-file-pag… […]

Autor: Rafał Kraik