El grupo de archivos primario está lleno de SQL Server 2008

15

Tengo una tabla grande (~ 50 millones de filas) Estoy intentando insertar en masa en SQL Server y aparece el error:

No se pudo asignar espacio para el objeto 'myDB' en la base de datos 'I 3 Stroke' porque el grupo de archivos 'PRIMARY' está lleno. Cree espacio en disco eliminando archivos innecesarios, colocando objetos en el grupo de archivos, agregando archivos adicionales al grupo de archivos o configurando el crecimiento automático para los archivos existentes en el grupo de archivos.

Hay otra tabla en la base de datos con alrededor de 25 millones de filas. Esta base de datos solo se usará en una sola máquina, y estará diseñada para extraer datos que ya existen y en ningún caso crecerá más allá de su tamaño actual.

Para una situación como esta, ¿cuál es la mejor manera de abordar esto para que SQL Server no se queje? ¿Importará la solución que este DB no esté expuesto a múltiples usuarios?

Wootscootinboogie
fuente
2
Necesita agregar más espacio a la base de datos o eliminar objetos no utilizados. ¿Cuál es tu pregunta?
Gordon Linoff
@GordonLinoff cuando se creó la base de datos, el grupo de archivos fue diseñado para tener un crecimiento sin restricciones, y aún así me encuentro con este problema. Espero encontrar una manera de evitar que esto vuelva a suceder.
wootscootinboogie
1
¿Tiene más espacio en disco físico disponible? Si es así, verifique los registros de errores de SQL Server y vea si hay información adicional sobre por qué falló el crecimiento automático.
Kevin
¿Podría confirmar que hay suficiente espacio en disco disponible? Esta es la única causa plausible, excepto por el crecimiento restringido de archivos (que usted dijo que no es el caso).
Usr
1
Quizás esté alcanzando el límite de tamaño de base de datos de la edición SQL Express.
Bruno Martinez

Respuestas:

17

Sigue estos pasos:

  1. Identifique cuánto espacio desea agregar a la asignación de almacenamiento de la base de datos:
    1. Abra el explorador de windows
    2. Haga clic derecho en la unidad de disco en la que existen sus archivos de base de datos
    3. Seleccionar propiedades
    4. Compruebe cuánto espacio en disco está disponible y decida cuánto desea asignar a la base de datos
      ( Sugerencia: deje al menos un 20% de espacio libre en disco si aloja los archivos de la base de datos en el mismo disco que su sistema operativo { Sugerencia secundaria : Don ¡Haga esto! Reconstruya / migre sus datos a su propio disco; se está atornillando a las E / S.} y deje al menos 8% para un disco de datos puro; estos números son estimaciones de lo que creo que son las sugerencias de porcentaje real son )
  2. Actualice la asignación de almacenamiento para la base de datos.
    1. SSMS abierto
    2. Haga clic en la pestaña "Ver"
    3. Seleccione "Explorador de objetos"
    4. Expanda la carpeta "Bases de datos"
    5. Haga clic con el botón derecho en la base de datos en la que intenta insertar en masa
    6. Seleccione "Propiedades"
    7. Haga clic en la opción de lista "Archivos" en el área "Seleccionar una página" a la izquierda de la ventana de propiedades
    8. Busque la fila "Archivos de base de datos" con el "Grupo de archivos" como "PRIMARIO"
    9. Agregue la cantidad de megabytes que desee agregar a la asignación de la base de datos al número "Tamaño inicial (MB)"
    10. Haga clic en "Aceptar"
      ( es posible que también desee considerar sus valores de "Crecimiento automático" mientras esté aquí ) .

Desea darle a su base de datos la asignación de almacenamiento que pueda permitirse. Si se queda sin espacio, recibirá este error sin crecimiento automático activado y si el crecimiento automático está activado, recibirá un impacto de rendimiento cada vez que tenga que crecer automáticamente. Si simplemente no tiene espacio en el disco, esa es su respuesta y necesita un disco más grande.

Eric J. Price
fuente
1
¿No todos queremos mayores DIsKs? : P
Santa
12

Express Edition 2014 tiene un límite de 10 GB por base de datos. Si el crecimiento automático de una base de datos llega a ese punto, SQL Server arroja el mensaje de error (¿oscuro?), Sin mencionar el límite de licencia. Puede haber mucho espacio en el disco, pero aún verá este mensaje.

Remedio si el diseño lo permite: use múltiples bases de datos bajo esta licencia.

RickC
fuente
1

Las bases de datos a menudo se quedan sin espacio cuando están en modo de recuperación completa. Si no está realizando transacciones y las copias de seguridad manuales son suficientes, puede cambiar el modo de recuperación a simple.

Es posible que también necesite recuperar espacio del archivo de registro. . . se puede vaciar pero aún usar espacio.

Sin embargo, es mejor que haga esta pregunta a los DBA que pueden ofrecer más soluciones.

Gordon Linoff
fuente
Este no es un problema de crecimiento de registro fallido. El crecimiento de datos falló.
Usr
@usr. . . Probablemente ocupan el mismo espacio de disco subyacente. El problema es la falta de espacio en disco.
Gordon Linoff
Él dice que hay espacio en disco disponible. Pregunté explícitamente porque yo también sospechaba.
Usr
¿Cuánto espacio en disco está disponible / gratis? ¿Cuál es el tamaño actual de todos los archivos en el grupo de archivos principal y cuál es su configuración de crecimiento? Es posible que el incremento de crecimiento sea mayor que el espacio libre disponible.
user9164
1

En mi experiencia, este mensaje aparece cuando el archivo primario (.mdf) no tiene espacio para guardar los metadatos de la base de datos. Este archivo incluye las tablas del sistema y solo guardan sus datos en él.

Haga espacio en el archivo y los comandos funcionarán nuevamente. Eso es todo, disfruta

FcoJavier99
fuente