MSSQLSERVER_3023

platí pro:SQL Server

Details

Attribute Value
Název produktu SQL Server
ID události 3023
Zdroj události MSSQLSERVER
Součást SQLEngine
Symbolický název DB_IN_USE_DUMP
Text zprávy Zálohování a manipulace se soubory (například ALTER DATABASE ADD FILE) v databázi musí být serializovány. Příkaz znovu vydat po dokončení aktuální zálohy nebo manipulace se souborem

Vysvětlení

Snažíte se spustit příkaz Záloha, zmenšení nebo úprava databáze v SQL Server a narazíte na následující zprávy:

Msg 3023, úroveň 16, stav 2, linka 1
Zálohování a manipulace se soubory (například ALTER DATABASE ADD FILE) v databázi musí být serializovány. Po dokončení aktuální operace zálohování nebo operace se soubory zadejte příkaz znovu.

Msg 3013, úroveň 16, stav 1, řádek 1
BACKUP DATABASE abnormálně končí.

Navíc chybový log SQL Server obsahuje zprávy jako například:

<Chyba zálohy datového času> : 3041, závažnost: 16, stav: 1.
<Záloha BACKUP datového času> nedokázala dokončit příkaz BACKUPDATABASE MyDatabase S DIFERENCIÁLEM. Podrobné zprávy najdete v protokolu zálohované aplikace.

Můžete si také všimnout, že tyto příkazy se setkávají s a wait_type = LCK_M_Uwait_resource = DATABASE: <id> [BULKOP_BACKUP_DB] a při pohledu na stav těchto příkazů z různých dynamických manažerských pohledů (DMV), například z sys.dm_exec_requests nebo sys.dm_os_waiting_tasks.

Možné příčiny

Existuje několik pravidel, která určují, která operace jsou povolena nebo nepovolena, když je v současnosti probíhající celá databáze proti databázi. Některé příklady jsou následující:

  • Může proběhnout pouze jedna záloha dat najednou (když dojde k úplné databázové zálohě, nelze současně provádět diferenciální nebo inkrementální zálohy).
  • Záloha pouze jednoho logu může proběhnout najednou (záloha logu je povolena, když probíhá kompletní záloha databáze).
  • Během zálohování nemůžete přidávat ani odebírat soubory do databáze.
  • Soubory nelze zmenšovat, dokud probíhají zálohy databáze.
  • Během zálohování jsou povoleny omezené změny modelu obnovy.

Když je provedena některá z těchto protichůdných operací, příkazy narazí na čekání na uzamčení, která jsou uvedena v sekci "Vysvětlení", následovaná obdržením zpráv 3023 a 3041.

Akce uživatele

Prohlédněte si harmonogramy různých aktivit údržby databáze a poté je upravte tak, aby tyto operace nebo příkazy nekolidovaly mezi sebou.

Více informací

SQL Server zaznamenává čas začátku a konec zálohy do databázemsdb. Můžete si prohlédnout historii záloh, abyste zjistili, zda při pokusu o inkrementální zálohování proběhla kompletní databázová záloha, a zda to způsobilo chybu. Můžete použít následující dotaz, který vám pomůže s tímto procesem:

select database_name, type, backup_start_date, backup_finish_date
from msdb.dbo.backupset
order by database_name, type, backup_start_date, backup_finish_date
go

Můžete také použít událost User Error Message v SQL Profiler Trace nebo událost error_reported v Extended Events ke sledování hlášení zpráv 3023 zpět aplikaci, která spustila příkaz Backup nebo jiný údržbový příkaz.