logs

19/11/2003 - 13:04 por N4 | Informe spam
corri esto:

checkpoint
backup log MIO with truncate_only
DBCC SHRINKFILE(MIO_log,2000)

pero me da esto:
Servidor: mensaje 8985, nivel 16, estado 1, línea 3
No se encuentra el archivo 'MIO_log' en sysfiles.
Ejecución de DBCC completada. Si hay mensajes de error, consulte al
administrador del sistema.

Por que?

Preguntas similare

Leer las respuestas

#6 Diego Uribe
19/11/2003 - 23:09 | Informe spam
El siguiente sql es un procedure para reducir los logs o eso creo la
verdad lo ejecuto y no noto mayor cambio.

El cuento es que saca de la base de datos el nombre exacto del "LDF" y del
"MDF"

Pasale como parámetro el 0 y reduce el log de todas las bases de datos

/***********************************************************/
USE Master;
/***********************************************************/
CREATE PROCEDURE D_ShrinkDB
@dbid tinyint
AS BEGIN
Declare @db as varchar(50),
@dbfile as varchar(50);
DECLARE dbfls CURSOR FOR
Select Rtrim(sysdatabases.name), Rtrim(sysaltfiles.name)
From sysdatabases,
sysaltfiles
Where sysdatabases.dbid = sysaltfiles.dbid and
sysaltfiles.fileid = 2 and
sysdatabases.dbid >= @dbid;
OPEN dbfls;
FETCH NEXT FROM dbfls INTO @db, @dbfile;
While ( @@FETCH_STATUS = 0 ) BEGIN
Exec ('USE ' + @db + '; CHECKPOINT;');
Exec ('USE ' + @db + '; CHECKPOINT;');
Exec ('USE ' + @db + '; CHECKPOINT;');
DBCC SHRINKDATABASE (@db, 0 , TRUNCATEONLY);
BACKUP LOG @db WITH TRUNCATE_ONLY;
Exec ('USE ' + @db + '; DBCC SHRINKFILE (''' + @dbfile + ''',
EMPTYFILE);');
FETCH NEXT FROM dbfls INTO @db, @dbfile;
End;
CLOSE dbfls;
DEALLOCATE dbfls;
END;

/***********************************************************/
Exec D_ShrinkDB 0
/***********************************************************/

Recibo sugerencias si hay que modificarle algo, seria bueno que entre todos
mejoremos
este procedure

Diego


"N4" escribió en el mensaje
news:%
corri esto:

checkpoint
backup log MIO with truncate_only
DBCC SHRINKFILE(MIO_log,2000)

pero me da esto:
Servidor: mensaje 8985, nivel 16, estado 1, línea 3
No se encuentra el archivo 'MIO_log' en sysfiles.
Ejecución de DBCC completada. Si hay mensajes de error, consulte al
administrador del sistema.

Por que?


Respuesta Responder a este mensaje
#7 Javier Loria
20/11/2003 - 03:12 | Informe spam
Hola Diego:
Es muy probable que tu procedimiento no tenga impacto la primera vez que
se corra y si ocurren suficientes cambios en la BD la siguiente vez lograra
su cometido.
Si quieres profundizar lee la documentacion en Linea: "Reducir el
registro de transacciones", veras que la Bitacora de Transacciones usa un
concepto con un numero de registro virtual que perfectamente puede estar al
final de archivo, de hecho si no hay politica de respaldos de Log estara
siempre ahi. Cuando haces el
SHRINKFILE no tiene ningun impacto, ya que el registro virtual esta
precisamente al final, en la siguiente ocasion cuando se han producido
cambios en la BD, se estara utilizando el inicio del archivo del log, si lo
ejecutas logras el impacto deseado.
Asumo que sabes que tu procedimiento hace de forma importante mas lento
al servidor de SQL, y lo estas haciendo unicamente para servidores de
desarrollo y no para servidores de produccion.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
"Diego Uribe" wrote in message
news:
El siguiente sql es un procedure para reducir los logs o eso creo la
verdad lo ejecuto y no noto mayor cambio.

El cuento es que saca de la base de datos el nombre exacto del "LDF" y del
"MDF"

Pasale como parámetro el 0 y reduce el log de todas las bases de datos

/***********************************************************/
USE Master;
/***********************************************************/
CREATE PROCEDURE D_ShrinkDB
@dbid tinyint
AS BEGIN
Declare @db as varchar(50),
@dbfile as varchar(50);
DECLARE dbfls CURSOR FOR
Select Rtrim(sysdatabases.name), Rtrim(sysaltfiles.name)
From sysdatabases,
sysaltfiles
Where sysdatabases.dbid = sysaltfiles.dbid and
sysaltfiles.fileid = 2 and
sysdatabases.dbid >= @dbid;
OPEN dbfls;
FETCH NEXT FROM dbfls INTO @db, @dbfile;
While ( @@FETCH_STATUS = 0 ) BEGIN
Exec ('USE ' + @db + '; CHECKPOINT;');
Exec ('USE ' + @db + '; CHECKPOINT;');
Exec ('USE ' + @db + '; CHECKPOINT;');
DBCC SHRINKDATABASE (@db, 0 , TRUNCATEONLY);
BACKUP LOG @db WITH TRUNCATE_ONLY;
Exec ('USE ' + @db + '; DBCC SHRINKFILE (''' + @dbfile + ''',
EMPTYFILE);');
FETCH NEXT FROM dbfls INTO @db, @dbfile;
End;
CLOSE dbfls;
DEALLOCATE dbfls;
END;

/***********************************************************/
Exec D_ShrinkDB 0
/***********************************************************/

Recibo sugerencias si hay que modificarle algo, seria bueno que entre


todos
mejoremos
este procedure

Diego


"N4" escribió en el mensaje
news:%
> corri esto:
>
> checkpoint
> backup log MIO with truncate_only
> DBCC SHRINKFILE(MIO_log,2000)
>
> pero me da esto:
> Servidor: mensaje 8985, nivel 16, estado 1, línea 3
> No se encuentra el archivo 'MIO_log' en sysfiles.
> Ejecución de DBCC completada. Si hay mensajes de error, consulte al
> administrador del sistema.
>
> Por que?
>
>


Respuesta Responder a este mensaje
#8 Miguel Egea
20/11/2003 - 09:16 | Informe spam
Además de que lo que dices javier, creo que es importante que un backup log
with truncate_only, tira por tierra cualquier política sensata de copias de
seguridad, por lo que inmediatamente después de hacer algo así, si los datos
nos importan deberíamos hacer un full backup.

Saludos
miguel Egea
"Javier Loria" escribió en el mensaje
news:#
Hola Diego:
Es muy probable que tu procedimiento no tenga impacto la primera vez


que
se corra y si ocurren suficientes cambios en la BD la siguiente vez


lograra
su cometido.
Si quieres profundizar lee la documentacion en Linea: "Reducir el
registro de transacciones", veras que la Bitacora de Transacciones usa un
concepto con un numero de registro virtual que perfectamente puede estar


al
final de archivo, de hecho si no hay politica de respaldos de Log estara
siempre ahi. Cuando haces el
SHRINKFILE no tiene ningun impacto, ya que el registro virtual esta
precisamente al final, en la siguiente ocasion cuando se han producido
cambios en la BD, se estara utilizando el inicio del archivo del log, si


lo
ejecutas logras el impacto deseado.
Asumo que sabes que tu procedimiento hace de forma importante mas


lento
al servidor de SQL, y lo estas haciendo unicamente para servidores de
desarrollo y no para servidores de produccion.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
"Diego Uribe" wrote in message
news:
> El siguiente sql es un procedure para reducir los logs o eso creo la
> verdad lo ejecuto y no noto mayor cambio.
>
> El cuento es que saca de la base de datos el nombre exacto del "LDF" y


del
> "MDF"
>
> Pasale como parámetro el 0 y reduce el log de todas las bases de datos
>
> /***********************************************************/
> USE Master;
> /***********************************************************/
> CREATE PROCEDURE D_ShrinkDB
> @dbid tinyint
> AS BEGIN
> Declare @db as varchar(50),
> @dbfile as varchar(50);
> DECLARE dbfls CURSOR FOR
> Select Rtrim(sysdatabases.name), Rtrim(sysaltfiles.name)
> From sysdatabases,
> sysaltfiles
> Where sysdatabases.dbid = sysaltfiles.dbid and
> sysaltfiles.fileid = 2 and
> sysdatabases.dbid >= @dbid;
> OPEN dbfls;
> FETCH NEXT FROM dbfls INTO @db, @dbfile;
> While ( @@FETCH_STATUS = 0 ) BEGIN
> Exec ('USE ' + @db + '; CHECKPOINT;');
> Exec ('USE ' + @db + '; CHECKPOINT;');
> Exec ('USE ' + @db + '; CHECKPOINT;');
> DBCC SHRINKDATABASE (@db, 0 , TRUNCATEONLY);
> BACKUP LOG @db WITH TRUNCATE_ONLY;
> Exec ('USE ' + @db + '; DBCC SHRINKFILE (''' + @dbfile + ''',
> EMPTYFILE);');
> FETCH NEXT FROM dbfls INTO @db, @dbfile;
> End;
> CLOSE dbfls;
> DEALLOCATE dbfls;
> END;
>
> /***********************************************************/
> Exec D_ShrinkDB 0
> /***********************************************************/
>
> Recibo sugerencias si hay que modificarle algo, seria bueno que entre
todos
> mejoremos
> este procedure
>
> Diego
>
>
> "N4" escribió en el mensaje
> news:%
> > corri esto:
> >
> > checkpoint
> > backup log MIO with truncate_only
> > DBCC SHRINKFILE(MIO_log,2000)
> >
> > pero me da esto:
> > Servidor: mensaje 8985, nivel 16, estado 1, línea 3
> > No se encuentra el archivo 'MIO_log' en sysfiles.
> > Ejecución de DBCC completada. Si hay mensajes de error, consulte al
> > administrador del sistema.
> >
> > Por que?
> >
> >
>
>


Respuesta Responder a este mensaje
#9 Diego Uribe
20/11/2003 - 15:10 | Informe spam
En efecto esta en un servidor de desarrollo...
Sin embargo, no me habia preocupado por la eficiencia del servidor, o por lo
menos no todavia.

Por qué este procedimiento haría más lento el Sql Server?
Mientras se ejecuta?


"Javier Loria" escribió en el mensaje
news:%
Hola Diego:
Es muy probable que tu procedimiento no tenga impacto la primera vez


que
se corra y si ocurren suficientes cambios en la BD la siguiente vez


lograra
su cometido.
Si quieres profundizar lee la documentacion en Linea: "Reducir el
registro de transacciones", veras que la Bitacora de Transacciones usa un
concepto con un numero de registro virtual que perfectamente puede estar


al
final de archivo, de hecho si no hay politica de respaldos de Log estara
siempre ahi. Cuando haces el
SHRINKFILE no tiene ningun impacto, ya que el registro virtual esta
precisamente al final, en la siguiente ocasion cuando se han producido
cambios en la BD, se estara utilizando el inicio del archivo del log, si


lo
ejecutas logras el impacto deseado.
Asumo que sabes que tu procedimiento hace de forma importante mas


lento
al servidor de SQL, y lo estas haciendo unicamente para servidores de
desarrollo y no para servidores de produccion.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
"Diego Uribe" wrote in message
news:
> El siguiente sql es un procedure para reducir los logs o eso creo la
> verdad lo ejecuto y no noto mayor cambio.
>
> El cuento es que saca de la base de datos el nombre exacto del "LDF" y


del
> "MDF"
>
> Pasale como parámetro el 0 y reduce el log de todas las bases de datos
>
> /***********************************************************/
> USE Master;
> /***********************************************************/
> CREATE PROCEDURE D_ShrinkDB
> @dbid tinyint
> AS BEGIN
> Declare @db as varchar(50),
> @dbfile as varchar(50);
> DECLARE dbfls CURSOR FOR
> Select Rtrim(sysdatabases.name), Rtrim(sysaltfiles.name)
> From sysdatabases,
> sysaltfiles
> Where sysdatabases.dbid = sysaltfiles.dbid and
> sysaltfiles.fileid = 2 and
> sysdatabases.dbid >= @dbid;
> OPEN dbfls;
> FETCH NEXT FROM dbfls INTO @db, @dbfile;
> While ( @@FETCH_STATUS = 0 ) BEGIN
> Exec ('USE ' + @db + '; CHECKPOINT;');
> Exec ('USE ' + @db + '; CHECKPOINT;');
> Exec ('USE ' + @db + '; CHECKPOINT;');
> DBCC SHRINKDATABASE (@db, 0 , TRUNCATEONLY);
> BACKUP LOG @db WITH TRUNCATE_ONLY;
> Exec ('USE ' + @db + '; DBCC SHRINKFILE (''' + @dbfile + ''',
> EMPTYFILE);');
> FETCH NEXT FROM dbfls INTO @db, @dbfile;
> End;
> CLOSE dbfls;
> DEALLOCATE dbfls;
> END;
>
> /***********************************************************/
> Exec D_ShrinkDB 0
> /***********************************************************/
>
> Recibo sugerencias si hay que modificarle algo, seria bueno que entre
todos
> mejoremos
> este procedure
>
> Diego
>
>
> "N4" escribió en el mensaje
> news:%
> > corri esto:
> >
> > checkpoint
> > backup log MIO with truncate_only
> > DBCC SHRINKFILE(MIO_log,2000)
> >
> > pero me da esto:
> > Servidor: mensaje 8985, nivel 16, estado 1, línea 3
> > No se encuentra el archivo 'MIO_log' en sysfiles.
> > Ejecución de DBCC completada. Si hay mensajes de error, consulte al
> > administrador del sistema.
> >
> > Por que?
> >
> >
>
>


Respuesta Responder a este mensaje
#10 Miguel Egea
20/11/2003 - 19:07 | Informe spam
Las operaciones de reducción de tamaño implican mucha tarea del s.o. reducir
archivos mover datos de un sitio a otro, y son por tanto grandes
consumidores de recursos.

Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores

"Diego Uribe" escribió en el mensaje
news:
En efecto esta en un servidor de desarrollo...
Sin embargo, no me habia preocupado por la eficiencia del servidor, o por


lo
menos no todavia.

Por qué este procedimiento haría más lento el Sql Server?
Mientras se ejecuta?


"Javier Loria" escribió en el mensaje
news:%
> Hola Diego:
> Es muy probable que tu procedimiento no tenga impacto la primera vez
que
> se corra y si ocurren suficientes cambios en la BD la siguiente vez
lograra
> su cometido.
> Si quieres profundizar lee la documentacion en Linea: "Reducir el
> registro de transacciones", veras que la Bitacora de Transacciones usa


un
> concepto con un numero de registro virtual que perfectamente puede estar
al
> final de archivo, de hecho si no hay politica de respaldos de Log estara
> siempre ahi. Cuando haces el
> SHRINKFILE no tiene ningun impacto, ya que el registro virtual esta
> precisamente al final, en la siguiente ocasion cuando se han producido
> cambios en la BD, se estara utilizando el inicio del archivo del log, si
lo
> ejecutas logras el impacto deseado.
> Asumo que sabes que tu procedimiento hace de forma importante mas
lento
> al servidor de SQL, y lo estas haciendo unicamente para servidores de
> desarrollo y no para servidores de produccion.
> Saludos,
>
>
> Javier Loria
> Costa Rica
> Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
> que pueda ser copiado y pegado al Query Analizer.
> La version de SQL y Service Pack tambien ayuda.
> "Diego Uribe" wrote in message
> news:
> > El siguiente sql es un procedure para reducir los logs o eso creo


la
> > verdad lo ejecuto y no noto mayor cambio.
> >
> > El cuento es que saca de la base de datos el nombre exacto del "LDF" y
del
> > "MDF"
> >
> > Pasale como parámetro el 0 y reduce el log de todas las bases de datos
> >
> > /***********************************************************/
> > USE Master;
> > /***********************************************************/
> > CREATE PROCEDURE D_ShrinkDB
> > @dbid tinyint
> > AS BEGIN
> > Declare @db as varchar(50),
> > @dbfile as varchar(50);
> > DECLARE dbfls CURSOR FOR
> > Select Rtrim(sysdatabases.name), Rtrim(sysaltfiles.name)
> > From sysdatabases,
> > sysaltfiles
> > Where sysdatabases.dbid = sysaltfiles.dbid and
> > sysaltfiles.fileid = 2 and
> > sysdatabases.dbid >= @dbid;
> > OPEN dbfls;
> > FETCH NEXT FROM dbfls INTO @db, @dbfile;
> > While ( @@FETCH_STATUS = 0 ) BEGIN
> > Exec ('USE ' + @db + '; CHECKPOINT;');
> > Exec ('USE ' + @db + '; CHECKPOINT;');
> > Exec ('USE ' + @db + '; CHECKPOINT;');
> > DBCC SHRINKDATABASE (@db, 0 , TRUNCATEONLY);
> > BACKUP LOG @db WITH TRUNCATE_ONLY;
> > Exec ('USE ' + @db + '; DBCC SHRINKFILE (''' + @dbfile + ''',
> > EMPTYFILE);');
> > FETCH NEXT FROM dbfls INTO @db, @dbfile;
> > End;
> > CLOSE dbfls;
> > DEALLOCATE dbfls;
> > END;
> >
> > /***********************************************************/
> > Exec D_ShrinkDB 0
> > /***********************************************************/
> >
> > Recibo sugerencias si hay que modificarle algo, seria bueno que entre
> todos
> > mejoremos
> > este procedure
> >
> > Diego
> >
> >
> > "N4" escribió en el mensaje
> > news:%
> > > corri esto:
> > >
> > > checkpoint
> > > backup log MIO with truncate_only
> > > DBCC SHRINKFILE(MIO_log,2000)
> > >
> > > pero me da esto:
> > > Servidor: mensaje 8985, nivel 16, estado 1, línea 3
> > > No se encuentra el archivo 'MIO_log' en sysfiles.
> > > Ejecución de DBCC completada. Si hay mensajes de error, consulte al
> > > administrador del sistema.
> > >
> > > Por que?
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida