Tengo una base de datos de SQL Server de 1.4TB que está luchando masivamente con las E / S de disco. Hemos instalado una nueva matriz SSD en el servidor que resolverá todos nuestros problemas, solo estamos debatiendo la mejor manera de mover la base de datos. Idealmente, si podemos hacerlo sin tiempo de inactividad, eso es lo mejor. Pero donde la elección es entre dos días de bajo rendimiento (por ejemplo, al copiar datos) versus dos horas de tiempo de inactividad, este último podría ser preferible.
Hasta ahora, las soluciones que hemos encontrado son:
Copia simple Desconecte la base de datos, copie los archivos, cambie las ubicaciones en SQL Server y vuelva a ponerla en línea. Cifras aproximadas estiman que esto tomará hasta cinco horas, lo cual no es realmente aceptable, pero es la solución más fácil.
Copia a nivel de bloque. Usando una utilidad similar a rsync, copiamos los archivos en segundo plano mientras la base de datos está activa. Cuando estamos listos para migrar, desconectamos la base de datos, hacemos una copia diferencial utilizando esta utilidad, luego apuntamos al servidor SQL a los nuevos archivos y lo ponemos en línea. El tiempo aquí es desconocido. No sabemos cuánto tiempo llevará hacer un análisis diferencial de 1.4TB y copiarlo. Nuestra otra preocupación es que la copia a nivel de bloque dejará los archivos en algún estado ilegible por SQL Server y habremos perdido nuestro tiempo.
Migración SQL Cree un nuevo archivo de datos SQL de 1.4TB en el nuevo disco y desactive el crecimiento automático en todos los demás archivos. Luego ejecute DBBC SHRINKFILE (-file_name-, EMPTYFILE) en todos los demás archivos de datos a su vez. Una vez que todos los datos estén disponibles, tomaré una ventana programada en algún momento para mover el archivo MDF al SSD y eliminar los otros archivos no utilizados. Me gusta esto porque minimiza el tiempo de inactividad. Pero no tengo idea de cuánto tiempo llevará esto y si causará degradación en el rendimiento mientras está sucediendo.
No tenemos ningún tipo de entorno de carga y rendimiento para probar esto. Puedo verificar que las estrategias funcionarán en nuestro entorno de preparación, pero no el impacto ni el rendimiento.
don't know how long it will take to do a differential analysis of 1.4TB
al menos el tiempo necesario para leer esos datos. No creo que la idea de rsync ahorre mucho o nada. rsync está hecho para hacer frente a redes lentas.