Desfragmentación SQL Server unidades de disco de base de datos
En este artículo se proporcionan algunas instrucciones sobre la desfragmentación de SQL Server unidades de base de datos.
Versión del producto original: SQL Server
Número de KB original: 3195161
¿SQL Server discos deben desfragmentarse en la capa del sistema operativo?
Esto depende del estado de fragmentación de las unidades actuales. Por lo general, no resulta perjudicial y puede ser de ayuda, suponiendo que siga las precauciones que se describen en la sección Precauciones al desfragmentar SQL Server unidades de base de datos. Lo único negativo es que debe apagar SQL Server a menos que la herramienta de desfragmentación admita funcionalidades de datos transaccionales. La buena noticia es que, después de ejecutar el desfragmentado, realmente no tiene que hacerlo de nuevo a menos que tenga muchos archivos de crecimiento automático y otros que se mueven y se quitan de los discos. Asegúrese de comprender las estrategias de almacenamiento en caché de escritura que usa la utilidad. El almacenamiento en caché de esta utilidad podría implicar una memoria caché sin batería y esto podría infringir los requisitos del protocolo WAL.
Más información
Un desfragmentador de disco mueve todos los archivos, incluido el archivo de base de datos, a clústeres contiguos en un disco duro. Esto optimiza y acelera el acceso a los archivos. Excepto en el caso del sistema operativo Windows NT, si no desfragmenta el disco duro, es posible que el sistema operativo tenga que ir a varias ubicaciones físicas del disco para recuperar el archivo de base de datos, lo que ralentiza el acceso a los archivos.
Dado que el acceso a datos físicos es la parte más costosa de una solicitud de E/S, la desfragmentación puede proporcionar mejoras de rendimiento para SQL Server y otras aplicaciones. El posicionamiento de fragmentos de datos relacionados entre sí reduce los requisitos de operación de E/S.
Actualmente hay varias utilidades de desfragmentación disponibles en el mercado. Algunas utilidades permiten la desfragmentación en archivos abiertos, mientras que otras requieren desfragmentación de archivos cerrados o funcionan mejor cuando se usan en condiciones de archivo cerrado. Además, algunas utilidades tienen funcionalidades transaccionales, mientras que otras no.
Precauciones al desfragmentar SQL Server unidades de base de datos
Al evaluar una utilidad de desfragmentación para su uso con SQL Server, asegúrese de que la utilidad proporciona funcionalidades de datos transaccionales. En concreto, elija una utilidad de desfragmentación que proporcione las siguientes funcionalidades de datos transaccionales:
El sector original no se considera movido hasta que el nuevo sector se haya establecido correctamente y los datos se copien correctamente.
La utilidad protege contra un error del sistema, como un corte de energía, de forma segura que mantiene los archivos intactos lógica y físicamente. Para garantizar la integridad de los datos, se recomienda encarecidamente una prueba pull-the-plug cuando se ejecuta una utilidad de desfragmentación en un archivo basado en SQL Server.
El protocolo de registro de Write-Ahead (WAL) requiere la prevención de reescrituras del sector para evitar la pérdida de datos. La utilidad debe mantener la integridad física del archivo siempre y cuando realice cualquier movimiento de datos. La utilidad debe funcionar en los límites del sector de forma transaccional para mantener intactos los archivos SQL Server.
La utilidad debe proporcionar los mecanismos de bloqueo adecuados para garantizar que el archivo conserva una imagen coherente para cualquier modificación. Por ejemplo, la utilidad debe asegurarse de que el sector original no se puede modificar cuando se copia en una nueva ubicación. Si se permiten modificaciones, la utilidad de desfragmentación podría perder la escritura.
Los desfragmentadores de disco críticos que no proporcionan estas funcionalidades de datos transaccionales no deben usarse a menos que la instancia de SQL Server que usa los discos que se van a desfragmentar se haya apagado para no desfragmentar los archivos de base de datos abiertos.
La desfragmentación de archivos abiertos genera varios posibles problemas que normalmente no provocan la desfragmentación de archivos cerrados:
La desfragmentación de archivos abiertos afecta al rendimiento. Las utilidades de desfragmentación pueden bloquear secciones del archivo, lo que impide que SQL Server completen una operación de lectura o escritura. Esto puede afectar a la simultaneidad del servidor que ejecuta SQL Server. Póngase en contacto con el fabricante de la herramienta de desfragmentación para obtener información sobre cómo se bloquean los archivos y cómo esto podría afectar a SQL Server simultaneidad.
La desfragmentación de archivos abiertos puede afectar al almacenamiento en caché y al orden de escritura. Las utilidades basadas en archivos abiertos requieren componentes de ruta de acceso de E/S; estos componentes no deben cambiar el orden ni la naturaleza prevista de la operación de escritura. Si se interrumpen los inquilinos del protocolo WAL o de escritura, es probable que se produzcan daños en la base de datos. La base de datos y todos los archivos asociados se consideran una sola entidad. (Esto se trata en muchos artículos de Microsoft Knowledge Base, SQL Server Libros en pantalla y varias notas del producto). Todas las escrituras deben conservar las secuencias de ordenación de escritura originales y las funcionalidades de escritura a través.
Recomendaciones
- Desfragmente el volumen NTFS, a menos que se haya formateado, antes de crear una base de datos nueva o mover las bases de datos existentes al volumen.
- Asegúrese de planear y ajustar el tamaño de los archivos de registro y datos SQL de forma adecuada cuando se crea la base de datos por primera vez.
- Cree los registros de transacciones anteriores a la SQL Server 2014 teniendo en cuenta el crecimiento automático si se usará.
- Desfragmente el disco o los discos en los que residen los registros de transacciones. Esto impedirá la fragmentación de archivos externos del registro de transacciones. Este problema puede producirse si los archivos han tenido mucho crecimiento automático o cuando no es un disco dedicado que contiene muchas bases de datos, registros u otros archivos que se han modificado. En esa situación, los archivos (incluido el archivo de registro de transacciones) se pueden intercalar y fragmentar.
- Si va a desfragmentar las unidades de base de datos que son discos de clúster, los discos de clúster deben configurarse para suspender la supervisión de estado (también denominada modo de mantenimiento).
- Para minimizar la fragmentación, no reduzca los archivos de base de datos. Además, aumente manualmente en tamaños que minimicen la actividad de crecimiento.
- Mantenga los archivos de base de datos en discos dedicados.
- Realice una copia de seguridad completa antes de desfragmentar las ubicaciones que contienen SQL Server base de datos y archivos de copia de seguridad.