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

| ||||
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 |
| ||||
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 |
| |||
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 ![]() |
| ||||
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 |
| |||
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 ![]() |
| |||
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 |
| ||||
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 |
| ||||
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
__________________ Friedrich Nietzsche |
| ||||
La respuesta final... precisamente se trataba de evitar ejecutar: Cita: cada cierto tiempoBACKUP LOG WITH TRUNCATE_ONLY como puedo configurar la BD con autoshrink? A través del Query Analyzer: Cita: http://www.microsoft.com/sql/techinf.../autoclose.aspsp_dboption 'midb', 'autoshrink', true 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 |
| ||||
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
__________________ Friedrich Nietzsche |
| ||||
+ 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 |
| ||||
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
__________________ Friedrich Nietzsche |
| ||||
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 |
| ||||
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.
__________________ Friedrich Nietzsche |
| ||||
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 |
| ||||
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.
__________________ Friedrich Nietzsche |
| ||||
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 |
| ||||
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
__________________ Friedrich Nietzsche |
| ||||
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 |