DEV Community

Cover image for Recuperación de Microsoft Dynamics NAV 2009 R2 y SQL Server en Windows Server 2022
Ivaj O'Franc
Ivaj O'Franc

Posted on • Edited on • Originally published at dev.to

Recuperación de Microsoft Dynamics NAV 2009 R2 y SQL Server en Windows Server 2022

id: 2781883
title: "Recuperación de Microsoft Dynamics NAV 2009 R2 y SQL Server en Windows Server 2022"
published: true
tags: ["dynamicsnav", "sqlserver", "windowsserver", "recovery"]
series: "Lo Arreglé y No  Cómo"
description: "📝 Recuperación de Microsoft Dynamics NAV 2009 R2 y SQL Server   🇬🇧 Also read this post in..."
canonical_url: "https://dev.to/ivajofranc/recuperacion-de-microsoft-dynamics-nav-2009-r2-y-sql-server-en-windows-server-2022-4gpc"
cover_image: "https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjci633q2o59qd4yu187q.png"
Enter fullscreen mode Exit fullscreen mode

📝 Recuperación de Microsoft Dynamics NAV 2009 R2 y SQL Server

🇬🇧 Also read this post in English

🎯 Objetivo del proceso

Restaurar el entorno de Microsoft Dynamics NAV 2009 R2 que había dejado de funcionar debido a un fallo crítico en la instancia de SQL Server 2008 R2 (x86) en un servidor actualizado con Windows Server 2022 Datacenter.

⚠️ Problemas encontrados

1. SQL Server 2008 R2 x86 no arrancaba

Mensajes clave en el ERRORLOG:

TDSSNIClient initialization failed with error 0x139f
Unable to initialize SSL support
security.dll missing or corrupt
Enter fullscreen mode Exit fullscreen mode

Dependency Walker mostró muchas dependencias faltantes (API-MS-WIN-CORE-*).

2. Reparación e instalación de SQL Server 2014 fallida

  • Fallos en servicios críticos (Motor de BD, Reporting Services, etc.).
  • Tras reparación y reinicio, el servicio no iniciaba por errores en schannel.dll, bcrypt.dll, etc.

3. SQL Server 2014 arrancaba pero con errores graves

Buscaba archivos .mdf y .ldf en rutas internas de compilación como:

E:\sql12_main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj\
Enter fullscreen mode Exit fullscreen mode

El servicio se detenía automáticamente.

🔧 Acciones realizadas

SQL Server

Se ejecutó:

CREATE DATABASE [NombreBD]
ON (FILENAME='...mdf'), (FILENAME='...ldf')
FOR ATTACH;
Enter fullscreen mode Exit fullscreen mode

Rutas de datos confirmadas en:

C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA

NAV y DLL extendida

  • Copia de xp_ndo_x64.dll a C:\Windows\System32.
  • Ejecución:
EXEC sp_addextendedproc 'xp_ndo_enumusergroups', 'xp_ndo_x64.dll';
Enter fullscreen mode Exit fullscreen mode

Licencia NAV

  • Importada desde cliente Classic en: Herramientas > Información de licencia > Importar.
  • La licencia correcta permitió más de 2 empresas.

🔐 Permisos y errores corregidos

Errores iniciales:

xp_ndo_enumusergroups – acceso denegado

VIEW SERVER STATE – requerido por cliente NAV

Solución:

-- Para usuario específico
GRANT EXECUTE ON xp_ndo_enumusergroups TO [DOMINIO\usuario];
GRANT VIEW SERVER STATE TO [DOMINIO\usuario];

-- O para todos los usuarios:
GRANT EXECUTE ON xp_ndo_enumusergroups TO [public];
GRANT VIEW SERVER STATE TO [public];
Enter fullscreen mode Exit fullscreen mode

🧪 Conectividad desde cliente NAV

  • Cliente Classic conectaba correctamente desde el servidor.
  • Desde otros equipos fallaba por:
    • Puerto cerrado
    • SQL Browser detenido
    • Usuario sin permisos

Configuración final:

SERVIDOR:7046/DynamicsNAV
Enter fullscreen mode Exit fullscreen mode

✅ Resultado final

  • Instancia recuperada en SQL Server 2008 R2 x64.
  • NAV funcionando en cliente Classic y RTC.
  • Todas las bases de datos restauradas con licencia original y usuarios activos.

📁 Archivos utilizados

  • TESTNAV2009R2_Data.mdf
  • TESTNAV2009R2_log.ldf
  • xp_ndo_x64.dll
  • .flf de licencia NAV

🛠️ Recomendaciones

  • Realizar backup de .mdf, .ldf y licencia .flf.
  • Documentar paso a paso el procedimiento de recuperación.
  • Evitar versiones modernas de SQL Server en NAV 2009 sin compatibilidad garantizada.
  • Verificar puertos y servicios (SQL Browser, SQL Server) activos permanentemente.

Top comments (0)