Sv Community El Salvador
Soporte y Tecnología => Programación => Base de Datos => Mensaje iniciado por: Darkness en julio 15, 2010, 03:26:35 pm
-
Bueno nuevamente por aca pidiendo un poco de LUZ.... :roll:
Resulta que en la empresa hay una tienda, la cual trabaja off-Line, por ende posee su propio servidor, su propio dominio etc.
La base de datos tiene un tamaño de 2.5 GB, y usa MssqlExpress
al examinar los archivos fisicos la data es de 468 MB y el resto es de LOG.. :shockd:
entonces como se usa una version express comprenderan que no puedo tener ese vergo de espacio desperdiciado.
Cabe mencionar que ninguna base de datos de todas las sucursales tiene semejante tamaño aun siendo tiendas mas grandes.
¿Ahora bien como hago para hacer un "reset" al log?
Esta onda ya me tiene chino, he probado diversas cosas para logararlo y nada me ha funcionado.
Lo que he hecho hasta ahora.
1- DBCC SHRINKFILE (File, size);
Lo he ejecutado tanto en la consola, como en forma visual y naaaaaada de nada, ademas de haber probado todas las variantes que encontre y que se me ocurrieron.
2- use esteproceso (http://technet.microsoft.com/en-us/library/ms189493.aspx) y nada
3- Le hice un detach renombre el archivo log y luego intente hacer un attach [parecia bueno :roll:] pero cuando la intente atachar decia que el archivo log es incompatible o no es congruente con la data, a todo esto pensaba [segun una web], que al atachar el mismo regeneraria el log.
Bueno siento que he hecho de todo pero nada me ha funcionado, haber si a alguien le ha pasado y me hechan una manita.
saludos!!!
-
yo he utilizado satisfactoriamente el proceso que te dice la gente de microsoft de "DBCC SHRINKFILE"
así:
backup log datase_name with truncate_only
go
dbcc shrinkdatabase (datase_name,truncateonly)
go
-
Los pasos serian asi :
1) CHECKPOINT --Con este comando escribis todo lo pendiente a la base de datos
2 ) BACKUP LOG MYBASE WITH TRUNCATE_ONLY –-Truncamos el registro
3) DBCC SHRINKFILE ('archivo_log', 1) – Lo reducimos a 1 Mb
eso seria todo.
PS : MYBASE : nombre de tu base de datos
archivo_log = el nombre de tu archivo log
-
Gracias por responder...
@Tekun... ese escript aplica shirnk a la data [ya lo hice]
@rcguillen ya corri ese script en esa forma y en muchas mas y naaaaa... el log no se reduce...
-
pero te da algun error? o simplemente te dice proceso terminado?
en casos extremos y ejecutarlo bajo tu propio criterio y responsabilidad podrias :
1 correr estos comandos colocando la base en monousuario
ALTER DATABASE [MYBASE] SET SINGLE_USER
luego ponerla en forma normal
ALTER DATABASE [MYBASE] SET MULTI_USER
2 podrias hacer un respaldo de la base de datos, luego borrar la base de datos original,
, crear la base de datos y recuperar el respaldo, luego probar los comandos para reducir el log
Otra cosa q se me ocurre es q tengas replicaciones y eso no te este permitiendo reducir la base de datos, pero tu sabras.
-
pero te da algun error? o simplemente te dice proceso terminado?
Nop no da ningun error los procesos se completan con exito
en casos extremos y ejecutarlo bajo tu propio criterio y responsabilidad podrias :
1 correr estos comandos colocando la base en monousuario
ALTER DATABASE [MYBASE] SET SINGLE_USER
luego ponerla en forma normal
ALTER DATABASE [MYBASE] SET MULTI_USER
Ya lo hice... :cry: es mas LeiEsto (http://www.helpdna.net/sqlserver_faq_01_reducir_log_transacciones.htm), pero nada
2 podrias hacer un respaldo de la base de datos, luego borrar la base de datos original,
, crear la base de datos y recuperar el respaldo, luego probar los comandos para reducir el log
Esto no lo he hecho.. pero que tanta diferencia habra en respaldar y reesturar la BD... pero bueno voy a probar :thumbsup:
Otra cosa q se me ocurre es q tengas replicaciones y eso no te este permitiendo reducir la base de datos, pero tu sabras.
Pues despues de estar el MonoUsuario no deberia afectar esto creo...
-
@Tekun... ese escript aplica shirnk a la data [ya lo hice]
seguro? yo ya he echo de reducir el log...... el primer script se encarga de eso especifico...
backup log datase_name with truncate_only
he reducido archivos log de 520MB ha 30 MB.... claro, solo que eso lo he echo únicamente con sqlServer2000
-
seguro? yo ya he echo de reducir el log...... el primer script se encarga de eso especifico...
backup log datase_name with truncate_only
he reducido archivos log de 520MB ha 30 MB.... claro, solo que eso lo he echo únicamente con sqlServer2000
Si man estoy seguro, como dije arriba el script se ejecuta con exito pero el archivo fisico sigue igual... :(
EstoTambienLoProbe (http://ss64.com/sql/dbcc_shrinkfile.html)
:cry: Cuando llegue al limite permitido por SqlExpress... ya me la comi... :embarassed:
-
y cuanto te ocupa el respaldo de la BD (archivo .bak)?
Yo pensé en lo mismo que rcguillen de respaldar la BD, eliminarla (por ende todos sus logs), después crear la BD y restaurar el respaldo creado al principio.
Guarda todos los archivos antes, no vaya a ser, jejeje.
-
y cuanto te ocupa el respaldo de la BD (archivo .bak)?
Yo pensé en lo mismo que rcguillen de respaldar la BD, eliminarla (por ende todos sus logs), después crear la BD y restaurar el respaldo creado al principio.
Guarda todos los archivos antes, no vaya a ser, jejeje.
No pos no se pudo solucionar, probe de muchas formas....
Tube que extraer la BD de la tienda desde la BD central... osea un verrrrrgo de tiempo.... :wacko: