No se pudo asignar una nueva página para la base de datos debido a la falta de espacio en disco


13

Al usar el Asistente de importación y exportación de SQL Server, aparece este error:

Error 0xc0202009: Flujo de datos Tarea 1: Código de error SSIS DTS_E_OLEDBERROR.
Se ha producido un error OLE DB. Código de error: 0x80004005.
No se pudo asignar una nueva página para la base de datos 'base de datos' debido a espacio insuficiente en el disco en el grupo de archivos 'PRIMARIO'. Cree el espacio necesario 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.

Estoy tratando de cargar una serie de archivos de 2GB y mientras cargo el cuarto archivo, sigo recibiendo el mensaje de error anterior incluso después de ir a Propiedades de la base de datos> Archivos y cambiar el crecimiento automático del Grupo de archivos a 2500 MB y un tamaño máximo ilimitado.

¿Cuál es la mejor solución? Estos datos finalmente ocuparán alrededor de 60-80 GB.


1
¿Qué versión de SQL Server está ejecutando? ¿Cuánto espacio libre hay disponible en las unidades que almacenan los archivos de datos para la "base de datos"?
nabrond

2
El mensaje de error le indica las "mejores soluciones": cree el espacio necesario 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. No estoy seguro de qué más podemos decirte.

1
Brandon, SQL SERVER 2012. 760 gb de espacio libre en la unidad que almacena los archivos de datos para la base de datos. Ken, tengo el crecimiento automático habilitado, el crecimiento automático crece en 2500 MB y el tamaño máximo es ilimitado. ¿Debo seguir encontrándome con este problema? ¿Es posible que haya múltiples crecimientos automáticos que necesiten habilitarse?

1
¿Has intentado hacer crecer manualmente la base de datos?

1
¿Puede ser que el crecimiento automático solo funcione entre elementos y que UNA inserción supere el límite? Sería mi apuesta: si un inserto de 20000 gb falla en un crecimiento automático de 2500 gb ... puede haber 900mb libres y el inserto falla.
TomTom

Respuestas:


11

La base de datos SQL Express alcanzará un máximo de 10 g. Creo que esto es similar al mensaje de error que recibe.

Me encontré con este problema una vez en un cliente y me tomó un tiempo resolverlo.

¿Qué versión de SQL estás ejecutando?


1
¡Esta solución me salvó! Estaba en la versión Express y me actualicé al Dev.
Israel Rodriguez

7

¿Estás seguro de que es

No se pudo asignar una nueva página para la base de datos 'base de datos' debido a espacio insuficiente en el disco en el grupo de archivos 'PRIMARIO'.

y no

No se pudo asignar una nueva página para la base de datos 'tempdb' debido a que no hay suficiente espacio en disco en el grupo de archivos 'PRIMARIO'.

?

Si realmente está [tempdb]en el mensaje de error, entonces eso es algo que debe administrarse por separado asegurándose de que [tempdb]esté en un disco del tamaño adecuado separado de otra base de datos.

Si no está [tempdb]en el mensaje de error, me imagino que una "carga" de este tipo sería [tempdb]muy difícil. ¿Está [tempdb]en el mismo disco / LUN que 'database'? Si es así, probablemente esté exacerbando su problema con múltiples intentos de crecimiento de archivos (en múltiples bases de datos). Así que mientras haces esta "carga" asegúrate de que también estás monitoreando [tempdb].

Si [tempdb]está en una unidad separada y está seguro de que tiene suficiente espacio, continuaría y dimensionaría su archivo de datos a lo que espera que sea su tamaño de estado final:

USE master;
GO
ALTER DATABASE [database]
MODIFY FILE
    (
    NAME = datafile,
    SIZE = 60GB,
    FILEGROWTH = 5GB
);
GO

Además, asegúrese de que el archivo de registro de la base de datos esté separado del archivo de datos. Si no es así, estás de vuelta con eventos competitivos de crecimiento. Si están en discos separados, también los revisaría y dimensionaría adecuadamente.

USE master;
GO
ALTER DATABASE [database]
MODIFY FILE 
(
    NAME = logfile, 
    SIZE = 8000MB
);
GO

ALTER DATABASE [database]
MODIFY FILE 
(
    NAME = logfile, 
    SIZE = 16000MB
);
GO

ALTER DATABASE [database]
MODIFY FILE 
(
    NAME = logfile, 
    SIZE = 24000MB
);
GO
...

hasta llegar al tamaño de archivo de registro deseado. Llamémoslo 80 GB, donde configurará su crecimiento a un tamaño específico. Estoy usando valores recomendados por Paul Randal y Kimberly Tripp

ALTER DATABASE [database]
MODIFY FILE 
(
    NAME = logfile, 
    SIZE = 80000MB,
    FILEGROWTH = 8000MB
);

6

Intenta cultivarlo manualmente:

1.En el Explorador de objetos, conéctese a una instancia del Motor de base de datos de SQL Server y luego expanda esa instancia.

2. Expanda Bases de datos, haga clic con el botón derecho en la base de datos para aumentar y luego haga clic en Propiedades.

3. En Propiedades de la base de datos, seleccione la página Archivos.

4. Para aumentar el tamaño de un archivo existente, aumente el valor en la columna Tamaño inicial (MB) del archivo. Debe aumentar el tamaño de la base de datos en al menos 1 megabyte.

5. Para aumentar el tamaño de la base de datos agregando un nuevo archivo, haga clic en Agregar y luego ingrese los valores para el nuevo archivo. Para obtener más información, consulte Agregar datos o archivos de registro a una base de datos.

6. Haga clic en Aceptar.

De: MSDN


44
La expansión manual es buena porque puede brindarle más detalles. En mi caso, obtuve: "CREATE DATABASE o ALTER DATABASE falló porque el tamaño de la base de datos acumulativa resultante excedería su límite de licencia de 10240 MB por base de datos". Cual se explica si mismo.
user824276

1

También puede usar los siguientes scripts para liberar espacio de la base de datos:

DELETE FROM STActionLog
where id in (SELECT TOP 100000 id
             FROM STActionLog
             ORDER BY actionDate ASC)

delete from STActionLog
where actionDate < '2019-08-01'

Estos me ayudan con el error :) También asegúrese de tener suficiente espacio en disco en la computadora.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.