Agregar y equilibrar archivos de datos - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Agregar y equilibrar archivos de datos

Las bases de datos de SQL Server EnterpriseOne incluidas suelen beneficiarse de archivos adicionales. Los archivos adicionales permiten un equilibrio óptimo entre los nodos de almacenamiento y de procesador. El equilibrio de los archivos es un proceso que consta de varios pasos. Muchos de estos pasos requieren acceso exclusivo a los objetos de la base de datos, por lo que tendría que realizar EnterpriseOne otros sistemas que accedan a la base de datos sin conexión.

Cálculos completos del tamaño de los archivos

Para encontrar el tamaño adecuado de los archivos de la base de datos, comience por examinar el tamaño de los datos ROW actuales mediante la siguiente consulta.

USE JDE_PRIST920 SELECT SUM(CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0) AS SpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'

A continuación, complete los siguientes cálculos y rellene la columna Su valor:

Línea Nombre Ejemplo Su valor Descripción
1 Tamaño actual de la fila 1 TB Resultados de la consulta anterior.
2 Crecimiento planificado 20% Crecimiento previsto para los próximos meses, incluido un margen de seguridad.
3 Tamaño requerido 1,2 TB Línea 1 multiplicada por línea 2.
4 Cantidad de archivos 8 Cantidad de archivos objetivo.
5 Tamaño por archivo 150 GB Línea 3 dividida por línea 4.
6 Porcentaje de crecimiento automático 10% Tamaño del crecimiento automático. Para una fragmentación mínima, un 10 % es un buen objetivo.
7 Tamaño del de crecimiento automático 15 GB Línea 5 multiplicada por línea 6.

Crear nuevos archivos

Utilice el siguiente script como plantilla para agregar archivos a la base de datos. Modifique los siguientes parámetros:

  • Cambie JDE-PRIST920 al nombre de la base de datos a la que desea agregar los archivos.

  • Para NAME, especifique el nombre lógico de cada archivo que desee agregar.

  • Para FILENAME, especifique el nombre físico de cada archivo que desee agregar.

  • Para FILEGROWTH, utilice el valor que calculó en la fila 7 de la tabla anterior.

  • Para SIZE, especifique el valor de la fila 5 de la tabla anterior.

USE master; GO ALTER DATABASE JDE_PRIST920 MODIFY FILE (NAME = JDE_PRIST920_Data, FILEGROWTH = 15GB); GO ALTER DATABASE JDE_PRIST920 ADD FILE (NAME = JDE_PRIST920_Data2, FILENAME = 'M:\DATA\PRIST920_Data2.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data3, FILENAME = 'M:\DATA\PRIST920_Data3.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data4, FILENAME = 'M:\DATA\PRIST920_Data4.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data5, FILENAME = 'M:\DATA\PRIST920_Data5.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data6, FILENAME = 'M:\DATA\PRIST920_Data6.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data7, FILENAME = 'M:\DATA\PRIST920_Data7.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data8, FILENAME = 'M:\DATA\PRIST920_Data8.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_TEMP, FILENAME = 'M:\DATA\PRIST920_TEMP.ndf', SIZE=150GB, FILEGROWTH = 15GB) GO

Vaciar temporalmente el archivo MDF

Una vez creados los archivos, migre los datos del MDF a los archivos NDF mediante la ejecución del siguiente comando para cada archivo. Ajuste los nombres de los archivos para que reflejen los nombres de los archivos de la base de datos.

USE JDE_PRIST920 DBCC SHRINKFILE (JDE_PRIST920_Data, EMPTYFILE)

El comando EMPTYFILE genera un error porque parte del contenido no se puede trasladar a un archivo NDF. Puede ignorar este mensaje de error.

Mensaje de error al vaciar el archivo MDF

Cambiar el tamaño del archivo MDF

Para reducir el tamaño del archivo MDF al tamaño de destino, ejecute el siguiente comando. Ajuste el tamaño del archivo para que refleje el valor de la línea 5 del cálculo de la tabla.

JDE_PRIST920 DBCC SHRINKFILE (JDE_PRIST920_Data, 150000);

Algunas veces, el comando SHRINKFILE presentará errores debido a la colocación del contenido que no se pudo trasladar a un archivo NDF. En este caso, es posible que necesite ejecutar el comando DBCC DBREINDEX, volver a ejecutar el proceso para vaciar el archivo y reintentar la operación SHRINKFILE.

Limpieza

Cuando se hayan creado los archivos de destino y el tamaño del archivo MDF sea correcto, utilice el siguiente comando para migrar los datos del archivo TEMP nuevamente al archivo MDF. Ajuste los nombres de los archivos para que reflejen los nombres de los archivos de la base de datos.

DBCC SHRINKFILE (JDE_PRIST920_TEMP, EMPTYFILE)

Cuando el archivo esté vacío, puede ejecutar el siguiente comando para eliminarlo:

ALTER DATABASE JDE_PRIST920; REMOVE FILE JDE_PRIST920_TEMP;

Validar los resultados

Para comprobar el uso actual del espacio en disco de la base de datos después del equilibrio, ejecute los siguientes scripts.

USE JDE_PRIST920 SELECT DB_NAME() AS DbName, type_desc, CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0 AS SpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'; SELECT SUM(CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0) AS TotalSpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'

El resultado debería ser similar al siguiente. Los archivos rara vez estarán perfectamente equilibrados, ya que parte del contenido solo puede existir en el archivo MDF.

Validar el uso del espacio en disco después del equilibrio