Eliminación manual de restos de Microsoft DPM tras una desinstalación incompleta

Durante la retirada de un entorno de copias de seguridad basado en Microsoft System Center Data Protection Manager (DPM), puede ocurrir que el asistente de desinstalación no consiga eliminar correctamente todos los componentes asociados: bases de datos, trabajos de SQL Server, grupos locales, almacenamiento o servicios vinculados.

En uno de nuestros últimos procesos de retirada de infraestructura nos encontramos con varios errores típicos de desinstalación parcial de DPM sobre Windows Server 2022 y SQL Server 2017.

Síntomas habituales tras desinstalar DPM

El desinstalador puede mostrar mensajes similares a:

  • No se pudo eliminar la base de datos DPMDB
  • No se pudieron eliminar trabajos SQL (SQL Agent Jobs)
  • Persisten grupos AutoRecoverableSnapShotReaders_*
  • No se eliminan componentes de Reporting Services
  • Fallos relacionados con MICROSOFT$DPM$Acct
  • Servicios SQL que ya no arrancan

En nuestro caso, además, la instancia SQL dejó de iniciar correctamente tras la desinstalación parcial debido a un problema de inicio de sesión del servicio asociado a la cuenta administrada de DPM.

Identificación de la instancia SQL utilizada por DPM

Desde services.msc localizamos la instancia:

SQL Server (MSDPMINSTANCE)

También es habitual encontrar:

  • SQL Server Agent
  • SQL Browser
  • Reporting Services
  • SQL VSS Writer

Recuperar temporalmente el acceso a la instancia SQL

En nuestro caso el servicio SQL no arrancaba debido a un error de inicio de sesión de la cuenta administrada MICROSOFT$DPM$Acct.

La solución temporal consistió en:

  1. Abrir propiedades del servicio SQL Server (MSDPMINSTANCE)
  2. Pestaña “Iniciar sesión”
  3. Cambiar temporalmente la cuenta del servicio a:
  • Sistema local
  • o Servicio de red
  1. Reiniciar el servicio

Una vez arrancado correctamente, pudimos acceder mediante sqlcmd usando autenticación integrada de Windows.

Comprobación de bases de datos existentes

sqlcmd -E -S localhost\MSDPMINSTANCE -Q "SELECT name FROM sys.databases"

La salida mostraba:

master
tempdb
model
msdb
ReportServer$MSDPMINSTANCE
ReportServer$MSDPMINSTANCETempDB
DPMDB

Eliminación manual de la base de datos DPMDB

sqlcmd -E -S localhost\MSDPMINSTANCE -Q "ALTER DATABASE DPMDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE DPMDB"

Limpieza de trabajos huérfanos de SQL Agent

Listado de jobs:

sqlcmd -E -S localhost\MSDPMINSTANCE -Q "SELECT name FROM msdb.dbo.sysjobs"

En este caso aparecían varios jobs identificados únicamente por GUID.

Eliminación individual:

sqlcmd -E -S localhost\MSDPMINSTANCE -Q "EXEC msdb.dbo.sp_delete_job @job_name='GUID_DEL_JOB'"

Verificación posterior:

sqlcmd -E -S localhost\MSDPMINSTANCE -Q "SELECT name FROM msdb.dbo.sysjobs"

Eliminación de categorías DPM en SQL Agent

Listado:

sqlcmd -E -S localhost\MSDPMINSTANCE -Q "SELECT name FROM msdb.dbo.syscategories WHERE name LIKE 'DPM%'"

Eliminación:

sqlcmd -E -S localhost\MSDPMINSTANCE -Q "EXEC msdb.dbo.sp_delete_category @class='JOB', @name='DPM_XXXX-XXXX-XXXX-XXXX-XXXX000XXXXX'"

Limpieza restante recomendada

Además de SQL, todavía pueden quedar restos manuales.

Grupos locales

Eliminar grupos:

  • AutoRecoverableSnapShotReaders_*

Desde:

  • Administración de equipos
  • Usuarios y grupos locales

Usuarios COM distribuidos

Eliminar:

  • MICROSOFT$DPM$Acct
  • Equipos protegidos antiguos

Discos de almacenamiento DPM

El desinstalador normalmente no elimina automáticamente el almacenamiento utilizado por DPM.

Antes de formatear o eliminar discos:

  • verificar que no contienen otros datos
  • comprobar que no existen retenciones pendientes
  • validar que no haya otros servidores DPM utilizando esos volúmenes

Para terminar…

Aunque la desinstalación de DPM puede parecer sencilla inicialmente, en entornos reales es relativamente frecuente encontrar:

  • instancias SQL huérfanas
  • trabajos de SQL Agent residuales
  • Reporting Services incompletos
  • cuentas administradas inválidas
  • almacenamiento no liberado

Realizar una limpieza controlada permite:

  • evitar errores posteriores en Windows
  • liberar correctamente recursos
  • simplificar futuras reutilizaciones del servidor
  • y reducir alertas innecesarias en monitorización y eventos del sistema.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.