Desfragmentando la MetaData de nuestro Active Directory {HowTo}

win7-defrag-icon-200x200Hace un tiempo grabe un video sobre la metadata, pueden ver la nota en Limpiando la MetaData de nuestro Active Directory {ScreenCast}. Ahora vemos a ver una tarea complementaria que es Desfragmentar la base de datos de Active Directory.

Como toda base de datos es bueno, como tarea de mantenimiento, realizar esta tarea. De todas formas Windows Server realiza una desfragmentación cada 12 horas de forma automática como parte del proceso de limpieza. Esta desfragmentación solo mueve los datos a través del archivo de la base de datos (ntds.dit) y no reduce el tamaño del archivo.

Como siempre, antes de ejecutar procesos críticos o que tengan un potencial riesgo debemos hacer un backup y asegurarnos de que este correctamente. Recordemos esto como una de las “Mejores Practicas”. Este backup debería ser una copia completa de System State de nuestro controlador de dominio.

Podemos ver el de la base de datos de Active Directory, que por defecto, se encuentra en C:\Windows\NTDS, aunque el proceso DCPROMO nos permite elegir una ubicación diferente. El nombre del archivo de base de datos real es NTDS.DIT. Generalmente el tamaño de una base de datos de un controlador de dominio Windows Server 2008 es de aproximadamente 12 MB, aunque puede varias de acuerdo a los objetos que nuestro Active Directory contenga pudiendo variar y ocupar varios GB.

Debemos crear un directorio para utilizarlo como un almacén temporal de una copia de la base de datos de Active Directory. Al realizar una desfragmentación sin conexión (defrag offline), Windows no podrá alterar el original de base de datos de Active Directory. En su lugar, crea una copia de la base de datos desfragmentada.

Luego de hacer esto, debemos detener el servicio de dominio de Active Directory. A diferencia de versiones anteriores de Windows, en Windows Server 2008 tenemos la capacidad para iniciar y detener este servicio. Es probable que al detenerlo, por medio del comando Net Stop NTDS, baje algunos servicios asociados (las dependencias) esto tiene que ver a cómo está configurado el servidor, obviamente nos pedirá confirmación para hacer esto. En nuestro ejemplo, las dependencias asociadas fueron:

  • File Replication Service
  • Kerberos Key Distribution Center
  • Intersite Messaging
  • DNS Server

www.radians.com.ar © 2010

Una vez realizado esto, abrimos una consola de comando (recordar, ejecutarla como administrador) y ejecutamos el comando NTDSUtil, luego escribimos Activate Instance NTDS, como podemos ver en el siguiente screenshoot:

www.radians.com.ar © 2010

Podemos ver que estamos en el nivel NTDSUTIL, debemos ingresar el comando Files, con esto entraremos en modo mantenimiento de los archivos del sistema. Ingresamos Info como para que nos muestre la información actual del Active Directory; nos mostrara el tamaño y la ubicación de la base de datos, como vemos a continuación:

www.radians.com.ar © 2010

Nos conviene verificar todos los datos, si todo esta correcto vamos a ejecutar la el proceso de desfragmentación ingresando el comando Compact to c:\Windows\NTDS\temp
Esto es asumiendo que hemos creado una carpeta temporal dentro de la ubicación default de la base de datos de Active Directory.

www.radians.com.ar © 2010

El tiempo que puede emplear el proceso de desfragmentación depende de la velocidad del servidor y de la cantidad de objetos y del tamaño de la base de datos.

www.radians.com.ar © 2010

Cuando finalice el proceso, escribimos el comando Q en el sistema para cerrar NTDSUtil. A continuación, verificamos que Windows creo una copia de la base de datos de Active Directory en el directorio C:\Windows\NTDS\Temp. Esta copia es la versión desfragmentada de la base de datos. Para usar esta copia, debemos borrar o cambiar el nombre de la base de datos original (la que está en C:\Windows\NTDS), y luego copiamos la base de datos desfragmentada de C:\Windows\NTDS\Temp en C:\Windows\NTDS\. También debemos renombrar o borrar los archivos de registro ubicados en la carpeta C:\Windows\NTDS.

Podemos ver el tamaño original:

www.radians.com.ar © 2010

Y el resultado después del procedimiento:

www.radians.com.ar © 2010

Una vez hecho esto podemos reiniciar nuestro Active Directory. La forma más sencilla de hacerlo es simplemente reiniciar el servicio de Active Directory Service que apagamos anteriormente; por medio de Net Start NTDS. Si hubo un grupo de servicios de dependencia que se cerraron simultáneamente, puede ser más fácil simplemente reiniciar el servidor.

Este es el procedimiento de cómo realizar una desfragmentación sin conexión de la base de datos de Active Directory. Es importante recordar, sin embargo, que siempre se debe realizar una copia de seguridad completa, del estado del sistema antes de intentar este procedimiento.

Espero que les sea de utilidad. Saludos. Roberto Di Lello.

Información Adicional:

Roberto Di Lello

Acerca del autor: Roberto Di Lello

Hola, soy Roberto Di Lello trabajo como Consultor Senior en Infraestructura, especializado en Tecnologias Microsoft con mas de 25 años en la industria. He sido galardonado como MS-MVP en Active Directory-Enterprise Mobility por 10 años, y actualmente soy MVP Windows Insider, ademas de poseer otras certificaciones de Microsoft. He trabajado en distintos projectos que involucran Migraciones, Implementaciones, y soporte de Active Directory y Microsoft Exchange, y en los ultimos años me he desempeñado armando equipos de trabajo para diferentes paises y areas de sistemas, he planificado a distintas migraciones a datacenters (ambiente cloud y mixtos). He tenido la oportunidad de participar como miembro del staff de Microsoft en eventos internacionales como ser TechEd NorteAmerica y MS Ignite (NA) al ser Trainer Certificado por Microsoft (MCT).

You May Also Like

2 Comments

  1. Hola Roberto, excelente Articulo
    Pero te comento me he colocado a realizar el mismo proceso en mi ambiente de pruebas y antes de la desfragmentacion mi NTDS.dit pesaba 16 MB, cuanto termine la desfragmentacion temino pesando 26 MB, osea en ves de achicarse se agrando.
    cual pudo haber sido la causa?
    Te agradezco
    Saludos desde Colombia

  2. Jair Gomez, disculpa mi demora en contestar pero estuve medio complicado con los tiempos.

    Esto puede ser a que tengas muchos mas objetos en tu AD. Te paso los links que te van a ayudar a dimensionar los equipos:
    * Growth Estimates for Active Directory Users and Organizational Units http://technet.microsoft.com/en-us/library/cc961779.aspx

    Aprovecho la oportunidad para agradecerte por participar del blog y ayudar a que siga creciendo; y te pido que nos ayudes a difundirlo con tus amigos y contactos! Te cuento que hay mucho material en el. Te invito a que veas los labs, videos, tutoriales, notas. Si querés buscar un tema o necesitas ayuda, tenés la solapa AYUDA donde explico un poco como hacerlo, sino también tenés el buscador de google.

    Espero te sean de utilidad. Buen comienzo de año. Saludos!

Comments are closed.