Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Log file for database full

Estas en el tema de Log file for database full en el foro de Bases de Datos General en Foros del Web. Hace unos dias tuve algun que otro error con una bbdd en SQL server: Microsoft OLE DB Provider for SQL Server error '80040e14' The log ...
  #1 (permalink)  
Antiguo 16/06/2004, 11:42
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 4 meses
Puntos: 2
Log file for database full

Hace unos dias tuve algun que otro error con una bbdd en SQL server:

Microsoft OLE DB Provider for SQL Server error '80040e14' The log file for database 'mkgod' is full. Back up the transaction log for the database to free up some log space.

salu2
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores

Última edición por sanfermin; 27/06/2004 a las 17:13
  #2 (permalink)  
Antiguo 27/06/2004, 17:12
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 4 meses
Puntos: 2
Con ejectuar contra la BBDD la instruccion:
BACKUP LOG tablaWITH TRUNCATE_ONLY se soluciona el problema, por lo menos temporalmente, pero alguien puede explicarme en cristiano que hace y por que? y sobre todo como evitarlo?

http://support.microsoft.com/default...b;EN-US;256650
http://support.microsoft.com/default...b;en-us;272318
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
  #3 (permalink)  
Antiguo 28/06/2004, 02:10
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 1 mes
Puntos: 0
Cristiano: El log supongo que sabes que es, pero mejor lo explico un poco, no desde el Génesis que tampoco hace falta tanto, se almacenan las transacciones que se ejecutan en la base de datos, actualizaciones, inserciones, y borrados de los registros.

Lo normal, si nunca lo borras es que ocupe más que la propia base de datos, normal no???

Con esa instrucción lo que has hecho es decirle que lo borre, eso no borrará datos, sólo las transacciones almacenadas.

Hay varias formas de tener ese fichero de log más o menos controlado, hacer copias de seguridad del mismo cada cierto tiempo, con lo que podrás restaurar tu base de datos a casi cualquier momento del día, o no almacenar nunca las transacciones, para lo cual debes modificar las opciones de la base de datos, si tienes SQL-Server en Español, en la solapa de opciones de las propiedades de la base de datos marca la opción Truncar registro en punto de comprobación, si lo tienes en inglés, creo que truncate log on check point, esto hace que al confirmar una transacción, ya sea con un commit o de cualquier otra forma se borre la transacción del log.

Espero que te sirva de ayuda, un saludo
  #4 (permalink)  
Antiguo 29/06/2004, 14:49
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
El tamaño del Log depende de tu modelo de recuperabilidad de tu DB.

Si no tienes el MDF y el LDF en discos físicos separados, y no tienes estrategias de respaldo frecuente, lo mejor será que cambies el modelo a Simple.

Simple no llena el espacio del Log, puesto que solo mantiene las transacciones abiertas, es similar a truncar el Log cada transaccion hecha
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 30/06/2004, 06:53
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 4 meses
Puntos: 2
No tengo acceso total al servidor, ya q el problema me aparece un un servidor de SQL compartido, puedo acceder a esas opciones de = manera?
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
  #6 (permalink)  
Antiguo 30/06/2004, 07:56
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 1 mes
Puntos: 0
se pueden establecer mediante sp_dboption, desde ahí puedes configurar las opciones de las bases de datos

la sintáxis es sp_dboption [[@dbname =] 'baseDatos']
[, [@optname =] 'nombreOpción']
[, [@optvalue =] 'valor']

La forma de reducir el log que vayas a utilizar hará que necesites habilitar unas opciones u otras, comprueba en la ayuda de Transact-SQL el comando

Un saludo
  #7 (permalink)  
Antiguo 16/07/2004, 13:05
Usuario no validado
 
Fecha de Ingreso: agosto-2003
Mensajes: 16
Antigüedad: 20 años, 8 meses
Puntos: 0
Holax!!! A Mi Me Esta Sucediendo Algo ExtraÑo El Log De La Base De Datos En Sql Server 2000 Mi Disco Duro Es De 40gb, Y El Archivo Log Es De 33.3 Gb, Osea Y La Base De Datos Es De 17 Mb Osea... Como Podria Solucionar Este Problema???? Existe Un Query Para Bajara A La Minima Expresion El Log De La Base De Datos? Urgente
  #8 (permalink)  
Antiguo 22/08/2004, 04:35
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 4 meses
Puntos: 2
truncandoo q es gerundio

http://msdn.microsoft.com/library/en...da-di_8c32.asp

autoclose When true, the database is shutdown cleanly and its resources are freed after the last user logs off.

trunc. log on chkpt. When true, a checkpoint truncates the inactive part of the log when the database is in log truncate mode. This is the only option you can set for the master database.


q opcion es la mejor?
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
  #9 (permalink)  
Antiguo 23/08/2004, 15:21
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Si no tienes acceso a la configuracion del servidor (sysadmin) quiza puedas configurar la DB como autoshink (lo que te explican).

Si no lo puedes hacer quiza si puedas hacer algo como esto (borrar el log, lo que tu pides):

BACKUP LOG WITH TRUNCATE_ONLY

Pero creo que por lo menos necesitas ser dbowner para ello. El caso en que en cualquier caso si no tienes los derechos adecuados los solicites, o bien solicites la operacion a alguien que si los tenga
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #10 (permalink)  
Antiguo 24/08/2004, 04:27
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 4 meses
Puntos: 2
La respuesta final...

precisamente se trataba de evitar ejecutar:
Cita:
BACKUP LOG WITH TRUNCATE_ONLY
cada cierto tiempo

como puedo configurar la BD con autoshrink?
A través del Query Analyzer:

Cita:
sp_dboption 'midb',
'autoshrink', true
http://www.microsoft.com/sql/techinf.../autoclose.asp
http://dbforums.com/t416601.html
http://www.windowstimag.com/atrasado...culos/sql3.htm

Gracias a to2 por encaminar hacia la solución del problema
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
  #11 (permalink)  
Antiguo 24/08/2004, 15:09
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Creo que es algo como lo que citas, aunque la verdad es que no lo recuerdo ahora (siempre lo hago de forma visual en el enterprise manager).

Revisa en los books online y seguro das con la sintaxis correcta
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #12 (permalink)  
Antiguo 08/01/2005, 07:34
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 4 meses
Puntos: 2
+ de lo mismo

como se puede evitar el tener q estar repitiendo ejecutar:
BACKUP LOG WITH TRUNCATE_ONLY
cada cierto tiempo??

A que se refiere al mencionar "chekpoints?"
"When true, a checkpoint truncates the inactive part of the log when the database is in log truncate mode. This is the only option you can set for the master database."

Esta opción podría ayudar?
USE master
EXEC sp_dboption 'mkgod', 'trunc. log on chkpt.', 'TRUE'

La configuración de la base de datos actualmente es: (solo menciono las q estan activadas)
AUto update stadistics
Auto create stadistics
Torn page detection
Auto shrink

Otra pregunta, aunque no tenga demasiado q ver... como puedo crear un usuario con solo la opción de lectura para una sola base de datos en un servidor remoto compartido?
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
  #13 (permalink)  
Antiguo 10/01/2005, 16:14
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Cambia el Recovery Mode a Simple (ahora tienes Full o Bulk Logged)

Con eso te olvidas del LOG

Para el usuario crealo y metelo en el rol datareader de la otra DB, asi prodra leer todas las tablas de la DB, pero unicamente en modo de lectura. Si quieres reforzar eso metelo tambien en denydatawriter para evitar algun grant erroneo
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #14 (permalink)  
Antiguo 11/01/2005, 06:41
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 4 meses
Puntos: 2
creo q estaba en simple, ahora lo compruebo...

para el tema del usuario de solo lectura... puedes detallarlo un poco más?

Cuando intenteo crear un nuevo login name para el nuevo usuario de la BD me aparece:

"ERROR 22020: [SQL-DMO] You must logged in as 'AQUIELNOMBRE' or a member of sysadmin, or a member of security to perfom this operation."



P.D. Ya estaba en modo simple
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores

Última edición por sanfermin; 11/01/2005 a las 06:55 Razón: config server
  #15 (permalink)  
Antiguo 11/01/2005, 17:39
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Si ya esta en modo simple entonces no tiene sentido recortar el log, puesto que ya esta recortado por definicion (para eso sirve Simple). No creo que tengas que preocuparte al respecto; el LOG solo contendrá los datos de las transacciones en curso (quiza en realidad mantenga las del chackpoint en curso, pero no viene al caso)

Respecto al mensaje de error, pareciera que no eres administrador del servidor remoto. Para poder crear un usuario necesitas ser miembro de sysadmin dentro del servidor.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #16 (permalink)  
Antiguo 13/01/2005, 06:39
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 4 meses
Puntos: 2
mmm la cosa es q en modo simple cada x tiempo pasa lo del error, puede ser algun tipo de ataque contra la base de datos?
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
  #17 (permalink)  
Antiguo 13/01/2005, 15:45
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Que error? Si es el de LOG FULL quiza se este llenando la particion que lo contiene (crece dinamicamente segun necesite). Tambien prueba activando "Unrestiricted File Growth" en la seccion del LOG de la DB, si esta en un tamaño fijo quiza este sea demasiado pequeño como para contener el LOG "dinamico/temporal" que manejarás.

Por otro lado, tienes el SP3a instalado? Eso corrige muchos bugs.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #18 (permalink)  
Antiguo 14/01/2005, 08:05
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 4 meses
Puntos: 2
El error del post inicial:
Microsoft OLE DB Provider for SQL Server error '80040e14' The log file for database 'mkgod' is full. Back up the transaction log for the database to free up some log space.

el sp3a esta instalado, tengo ciertas limitadciones al no tratarse de un server de sql propio sino compartido

en cuanto al espacio para el log viene a ser de 15 mb si mal no recuerdo pero el tamaño total de la DB esta limitado a 50mb, en esos 50 se restan los 15 supongo? el tamaño de la DB cuando la exporto a access x ejemplo no pasa ni de los 4 MB
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
  #19 (permalink)  
Antiguo 14/01/2005, 15:34
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Pues no entiendo la razon del error. Tienes espacio suficiente y el modo Simple activado.

Mi recomendacion sería que actives el "unrestricted file growth" tanto para la DB como para el LOG, que son 2 cosas diferentes.

Tambien monitorea el espacio libre para asegurarte de que no te quedes sin espacio.

Es todo lo que me viene a la cabeza

Suerte
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #20 (permalink)  
Antiguo 15/01/2005, 04:57
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 4 meses
Puntos: 2
Probaré con no limitar el espacio para el log ya q la BD si q tengo q limitarla xD
gracias x todo!
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:39.