He leído muchos enfoques y soluciones diferentes que persiguen varias personas al intentar resolver el problema con el procedimiento almacenado extendido xp_delete. Las soluciones son:
- : asegúrese de no tener un período en la extensión de la configuración de la tarea de mantenimiento de SSIS (.).
- Asegúrese de hacer clic en las subcarpetas Incluir primer nivel si existen para cada copia de seguridad de la base de datos.
- Asegúrese de hacer clic en los archivos de copia de seguridad en la parte superior. La tarea de mantenimiento comprueba el tipo de archivo. Para las copias de seguridad de la base de datos, creo que verifica el encabezado del archivo de respaldo.
En mi escenario, todo lo anterior era correcto. Hay pocos comentarios en la web donde algunos dijeron que la rutina xp_delete tiene errores.
Cuando los archivos de la copia de seguridad no se borraron, extraje el SQL para el mantenimiento y lo ejecuté desde SSMS. El mensaje resultante fue que el archivo no era un archivo de copia de seguridad del servidor SQL. Este mensaje fue erróneo, ya que la copia de seguridad se pudo restaurar con éxito, lo que dio como resultado una base de datos operativa.
Los comandos de base de datos utilizados para verificar la base de datos fueron:
RESTORE HEADERONLY FROM DISK = N'<file path\filename>.Bak'
RESTORE VERIFYONLY FROM DISK = N'<file path\filename>.bak'
Tanto de los comandos anteriores indicaron el archivo de copia de seguridad válida.
Siguiente Abrí el visor de eventos y encontré mensajes que indicaban que había errores de inicio de sesión para el administrador de conexión. Esto fue extraño porque había validado la conexión con el botón de conexión de prueba. Los errores no estaban relacionados con ninguna cuenta que había creado.
Mensaje Visor de sucesos:
*The description for Event ID 17052 from source MS SQL SERVER cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer. If the event originated on another computer, the display information had to be saved with the event.
La siguiente información se incluye con el evento:
Severity: 16 Error:18456, OS: 18456 [Microsoft][SQL Server Native Client 11.0][SQL Server]Login failed for user 'domain\servername$'.*
siguiente que ha iniciado sesión en un equipo en el que xp_delete estaba funcionando correctamente. Después de revisar el directorio activo y no encontrar la cuenta del sistema, procedí al visor de eventos para encontrar mensajes similares. Aquí se hizo evidente que la cuenta de dominio \ server $ está asignada a la seguridad del sistema.
El siguiente paso fue comparar la seguridad de la base de datos donde xp_delete funcionaba en contra de la base de datos donde no funcionaba. Hubo 2 inicios de sesión faltantes en seguridad en la base de datos donde xp_delete no funcionó. Los inicios de sesión 2 desaparecidos fueron: NT AUTHORITY \ SYSTEM NT Service \ MSSQLSERVER
Después de agregar el servicio NT \ MSSQLSERVER, xp_delete trabajado con éxito.
Un enfoque para probar es utilizar la tarea de mantenimiento para eliminar un archivo individual.
Tomalak: eso no funcionó. – GernBlandston
Me imaginé, después de leer el resumen que acabo de publicar. Una publicación equivocada del foro en algún lugar apuntaba en la dirección de mi primera respuesta. – Tomalak