MSSQLSERVER_3023
Si applica a: SQL Server
Dettagli
Attributo | valore |
---|---|
Nome prodotto | SQL Server |
ID evento | 3023 |
Origine evento | MSSQLSERVER |
Componente | SQLEngine |
Nome simbolico | DB_IN_USE_DUMP |
Testo del messaggio | Le operazioni di backup e di manipolazione di file (ad esempio ALTER DATABASE ADD FILE) e le modifiche alla crittografia eseguite su un database devono essere serializzate. Eseguire nuovamente l'istruzione al termine dell'operazione corrente di backup o manipolazione di file. |
Spiegazione
Si tenta di eseguire un comando Backup, compattare o modificare il database in SQL Server e vengono visualizzati i messaggi seguenti:
Messaggio 3023, livello 16, stato 2, riga 1
Le operazioni di backup e di manipolazione di file (ad esempio ALTER DATABASE ADD FILE) e le modifiche alla crittografia eseguite su un database devono essere serializzate. Eseguire nuovamente l'istruzione al termine dell'operazione corrente di backup o manipolazione di file.
Messaggio 3013, livello 16, stato 1, riga 1
Interruzione anomala di BACKUP DATABASE in corso.
Inoltre, il log degli errori di SQL Server contiene messaggi simili ai seguenti:
<Errore di backup datetime> : 3041, gravità: 16, stato: 1.
<Backup datetime> BACKUP non è riuscito a completare il comando BACKUP DATABASE MyDatabase WITH DIFFERENTIAL. Per messaggi più dettagliati, controllare il log dell'applicazione di backup.
Si potrebbe anche notare che questi comandi rilevano wait_type = LCK_M_U
e wait_resource = DATABASE: <id> [BULKOP_BACKUP_DB]
quando lo stato di questi comandi viene visualizzato dalle varie viste a gestione dinamica (DMV), ad esempio da sys.dm_exec_requests
o sys.dm_os_waiting_tasks
.
Possibili cause
Esistono diverse regole per le operazioni consentite o non consentite quando è in corso un backup completo del database per un database. Di seguito sono riportati alcuni esempi:
- È possibile eseguire un solo backup dei dati alla volta (durante un backup completo del database non è possibile eseguire contemporaneamente backup differenziali o incrementali).
- È possibile eseguire un solo backup del log alla volta, ovvero un backup del log è consentito durante l'esecuzione di un backup completo del database.
- Non è possibile aggiungere o eliminare file in un database mentre è in corso un backup.
- Non è possibile compattare i file mentre sono in corso backup del database.
- Sono consentite modifiche al modello di recupero limitate durante l'esecuzione dei backup.
Quando viene eseguita una di queste operazioni in conflitto, i comandi rileveranno le attese di blocco indicate nella sezione "Spiegazione" seguite dalla ricezione dei messaggi 3023 e 3041.
Azione utente
Esaminare le pianificazioni delle diverse attività di manutenzione del database, quindi modificare le pianificazioni in modo che tali operazioni o comandi non siano in conflitto.
Ulteriori informazioni
SQL Server registra l'ora di inizio e l'ora di fine del backup nel msdb
database. È possibile esaminare la cronologia di backup per determinare se era in corso un backup completo del database durante il tentativo di eseguire un backup incrementale, causando pertanto l'errore. Per semplificare questo processo, è possibile usare la query seguente:
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
È anche possibile usare l'evento User Error Message nella traccia di SQL Profiler o l'evento error_reported negli eventi estesi per ricollegare la segnalazione dei messaggi 3023 all'applicazione che ha avviato il backup o un altro comando di manutenzione.