Compartir por


MSSQLSERVER_3023

Se aplica a:SQL Server

Detalles

Atributo Value
Nombre de producto SQL Server
Id. de evento 3023
Origen de eventos MSSQLSERVER
Componente SQLEngine
Nombre simbólico DB_IN_USE_DUMP
Texto del mensaje Las operaciones de copia de seguridad y manipulación de archivos (como ALTER DATABASE y ADD FILE) deben hacerse en serie. Vuelva a emitir la instrucción al completar la operación actual de copia de seguridad o manipulación de archivos.

Explicación

Intenta ejecutar un comando BACKUP, SHRINK o ALTER DATABASE en SQL Server y encuentra los siguientes mensajes:

Mensaje 3023, nivel 16, estado 2, línea 1
Las operaciones de copia de seguridad y manipulación de archivos (como ALTER DATABASE y ADD FILE) deben hacerse en serie. Vuelva a emitir la instrucción al completar la operación actual de copia de seguridad o manipulación de archivos.

Mensaje 3013, nivel 16, estado 1, línea 1
Fin anómalo de BACKUP DATABASE.

Además, el registro de errores de SQL Server contiene mensajes como estos:

<Error de copia de seguridad de fecha y hora> : 3041, gravedad: 16, estado: 1.
<Datetime> Backup BACKUP no pudo completar el comando BACKUP DATABASE MyDatabase WITH DIFFERENTIAL. Compruebe el registro de la aplicación de copia de seguridad para ver los mensajes detallados.

También puede observar que estos comandos encuentran los elementos wait_type = LCK_M_U y wait_resource = DATABASE: <id> [BULKOP_BACKUP_DB] cuando se consulta el estado de los comandos desde las diversas vistas de administración dinámica (DMV), como sys.dm_exec_requests o sys.dm_os_waiting_tasks.

Causas posibles

Hay varias reglas en las que se permiten o no las operaciones cuando se ejecuta una copia de seguridad de base de datos completa en una base de datos. Algunos ejemplos son los siguientes:

  • Solo se puede realizar una copia de seguridad de datos cada vez (cuando se produce una copia de seguridad completa de la base de datos, no se pueden realizar al mismo tiempo copias de seguridad diferenciales o incrementales).
  • Solo se puede realizar la copia de seguridad de un registro cada vez (se permite una copia de seguridad de registros cuando se está haciendo una copia de seguridad completa de la base de datos).
  • No se pueden agregar o quitar archivos en una base de datos mientras se está realizando una copia de seguridad.
  • No se pueden reducir los archivos mientras se están realizando copias de seguridad de la base de datos.
  • Se permiten cambios limitados en el modelo de recuperación mientras se hacen las copias de seguridad.

Cuando se lleva a cabo alguna de estas operaciones en conflicto, los comandos se encuentran con las esperas de bloqueo que se mencionan en la sección de explicación, y después se reciben los mensajes 3023 y 3041.

Acción del usuario

Examine las programaciones de las diversas actividades de mantenimiento de bases de datos y, después, ajústelas para que las operaciones o los comandos no entren en conflicto entre sí.

Más información

SQL Server registra la hora de inicio y la hora de finalización de la copia de seguridad en la base de datos msdb. Puede examinar el historial de copias de seguridad para determinar si se ha producido una copia de seguridad completa de la base de datos mientras se intentaba realizar una copia de seguridad incremental y por eso se ha producido el error. Puede usar la siguiente consulta para llevar a cabo este proceso:

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

También puede usar el evento User Error Message en un archivo de seguimiento de SQL Server Profiler o el evento error_reported en los eventos extendidos para realizar el seguimiento de los informes de los mensajes 3023 y determinar la aplicación que inició la copia de seguridad u otro comando de mantenimiento.