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

[SOLUCIONADO] Borrar archivos FileStream

Estas en el tema de Borrar archivos FileStream en el foro de SQL Server en Foros del Web. Buenas tardes, Estoy comenzando a trabajar mucho con FileStreams en SQL Server 2008 R2... No había tenido problemas hasta que empezamos a borrar datos de ...
  #1 (permalink)  
Antiguo 01/03/2014, 12:25
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Borrar archivos FileStream

Buenas tardes,

Estoy comenzando a trabajar mucho con FileStreams en SQL Server 2008 R2... No había tenido problemas hasta que empezamos a borrar datos de la tabla.

Cuando se crea la tabla y se comienzan a insertar los datos, se genera en una carpeta física del servidor donde almacena los archivos...

Cuando hago un delete o un truncate, se borran los registros de la BD pero los archivos siguen en la carpeta... ¿hay alguna manera de q se borren automáticos? o alguna instrucción para validar que lo existente en la base de datos es lo q debe contener la carpeta...

He trabajado con la instrucción REPAIR_ALLOW_DATA_LOSS, pero hace alrevés lo q quiero, borra lineas en la BD que no existan los archivos...

También intente, revisando la BD pero no consigo mi objetivo...
Código SQL:
Ver original
  1. GO
  2. ALTER DATABASE testdba SET SINGLE_USER;
  3.  
  4. DBCC CHECKDB (testdba, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS
  5.  
  6. ALTER DATABASE testdba SET MULTI_USER;
  7.  
  8. ALTER DATABASE testdba SET read_write


Espero me puedan apoyar. GRacias.
  #2 (permalink)  
Antiguo 01/03/2014, 12:43
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Borrar archivos FileStream

Ah ya encontre un artículo muy bueno:

http://www.mssqltips.com/sqlserverti...lestream-data/
  #3 (permalink)  
Antiguo 01/03/2014, 13:05
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Borrar archivos FileStream

Creo q no me sirvio...

Once a row is deleted from a table which has FILESTREAM enabled, the row will be removed from the table immediately. However, the FILESTREAM data file will be removed from the FILESTREAM Data Container only when the FILESTREAM Garbage Collector process has completed. The FILESTREAM Garbage Collector generally happens when the next CHECKPOINT occurs and the garbage collector process has run. This is the only reason why you will sometime see the FILESTREAM data which was deleted still in the FILESTREAM Data Container. If you want to trigger the FILESTREAM Garbage Collector thread EXPLICIT, then execute the CHECKPOINT command manually.

¿Alguna otra idea?... No me borra los archivos..
  #4 (permalink)  
Antiguo 03/03/2014, 11:50
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Borrar archivos FileStream

Y porque no haces el CHECKPOINT?, ejecútalo
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 03/03/2014, 11:56
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Borrar archivos FileStream

Código SQL:
Ver original
  1. DELETE FROM tabla
  2. GO
  3. checkpoint
  4. GO

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 03/03/2014, 13:29
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Borrar archivos FileStream

Ya he ejecutado el checkpoing y me da como resultado:

Código SQL:
Ver original
  1. DELETE FROM CR_FOTOGRAFIAS
  2. GO
  3. checkpoint
  4. GO

(0 row(s) affected)


No borra los Archivos de la carpeta generada del FS.
  #7 (permalink)  
Antiguo 03/03/2014, 13:37
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Borrar archivos FileStream

si la sentencia no borro nada, como quieres que elimine los archivos???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 03/03/2014, 14:20
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Borrar archivos FileStream

Simple, porque los quiere borrar, jajajajaja
__________________
MCTS Isaias Islas
  #9 (permalink)  
Antiguo 03/03/2014, 15:20
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Borrar archivos FileStream

Cita:
Iniciado por iislas Ver Mensaje
Simple, porque los quiere borrar, jajajajaja
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #10 (permalink)  
Antiguo 03/03/2014, 15:45
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Borrar archivos FileStream

Ya lo he intentado, y aun así sigue apareciendo los archivos.-... (99)... pero sigo con el mismo problema.
  #11 (permalink)  
Antiguo 03/03/2014, 15:56
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Borrar archivos FileStream

Esto aplicaria para sql 2012
http://stackoverflow.com/questions/1...-from-filestre

http://technet.microsoft.com/en-us/l.../gg492195.aspx

Puedes intentar esto con sql 2008

http://dba.stackexchange.com/questio...llection-issue
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #12 (permalink)  
Antiguo 24/03/2014, 09:17
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Borrar archivos FileStream

A final de cuentas me tuve que meter como DAC ver en las tablas internas y revisar... y pues obvio muestra la ruta, pero pues ya revise las conexiones remotas las active y por fin me sirve usar el checkpoint... yo no se porq hasta este momento sirvio... cosas q pasan...


delete from tablename CHECKPOINT



Gracias por los links y tu apoyo Libras e Iislas.... =) que tengan una bonita semana.

Última edición por Inicia; 24/03/2014 a las 09:18 Razón: se olvidoa
  #13 (permalink)  
Antiguo 25/03/2014, 15:38
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Borrar archivos FileStream

Huyy he encontrado otro pequeño detalle... hace un tiempo migre las bases de datos de SQL 2005 r2 a SQL 2008 R2

Cuando yo he probado lo del checkpoint para borrar archivos FS.. no lo hacía y cuando cree un ejemplo en otra base trabajaba a la perfección..

El pequeño detalle radica en q la base de datos se quedo en la versión de compatibilidad en 2005 ... ya he cambiado el nivel de compatibilidad.. en clic secundario.. propiedades etc..

También con:

Código SQL:
Ver original
  1. ALTER DATABASE servicioandroid SET SINGLE_USER
  2. ----SQL Server 2005 database compatible level to SQL Server 2000
  3. EXEC sp_dbcmptlevel servicioandroid, 90;
  4. GO
  5. ----SQL Server 2000 database compatible level to SQL Server 2005
  6. EXEC sp_dbcmptlevel servicioandroid, 100;
  7. GO
  8. ALTER DATABASE servicioandroid SET MULTI_USER

Y sigo con el mismo problema cambia la compatibilidad pero no sirve el checkpoint (borrar archivos de la carpeta...


¿Cómo lo hago?... ya cree la tabla nuevamente e inserte los datos en un nuevo FS dentro de esa base de datos y no lo logro.

Solo sirve si comienzo creando la bd nueva con versión 2008... y generando los FS... pero tengo varias bases de datos así unas pesan mucho más q otras.... no puedo crear e importar los datos porque sería muy riesgoso...

¿Alguna idea?.. Gracias!!
  #14 (permalink)  
Antiguo 25/03/2014, 15:56
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Borrar archivos FileStream

porque nada mas la dejas con compatibilidad para 2005 porque no la mueves a 2008???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #15 (permalink)  
Antiguo 25/03/2014, 17:44
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Borrar archivos FileStream

Esa es la pregunta ¿cómo lo hago? cambie la compatibilidad y veo q esta en 2008 pero sigo sin funcionar ya hice un bak y lo levante nuevamente y no tengo respuesta

En el texto lo comentado ----SQL Server 2005 database compatible level to SQL Server 2000 no es correcto lo q hice es cambiar de 2005(90) a 2008(100)

En google leí links q dice crea una nueva base de datos e importa etc... pero pues mi bd esta demasiado grande... la más chica es de 270GB... tardaría muchísimo y es producción además de tener q cambiar los SP, funciones, etc... manualmente sería un poco complicado...
  #16 (permalink)  
Antiguo 25/03/2014, 18:49
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Borrar archivos FileStream

¿Y el modo de compatibilidad de esa base tan grande es 100?
__________________
MCTS Isaias Islas
  #17 (permalink)  
Antiguo 26/03/2014, 12:26
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Borrar archivos FileStream

Si.. pasa el mismo caso mira:

1. Se desisntalo SQL 2005 r2
2. Se formatea server windows 2008 r2
3. Se instala SQL 2008 R2
4. Se adjuntan las bases de datos.
5. Se trabaja con FS

Ya he intentado...
1. Actualizar la compatibilidad de la BD desde propiedades... options-> compatibility leve
2. Usar código
Código SQL:
Ver original
  1. ALTER DATABASE servicioandroid SET SINGLE_USER
  2. EXEC sp_dbcmptlevel servicioandroid, 90;
  3. GO
  4. EXEC sp_dbcmptlevel servicioandroid, 100;
  5. GO
  6. ALTER DATABASE servicioandroid SET MULTI_USER
3. Generar un bak de la BD ya cambiada la compatibilidad y restaurarla.
4. En todas las opciones se reiniciaron los servicios SQL y hasta el servidor.
5. Crear una tabla idéntica a la que contiene los FS en la misma base de datos ya cambiada la compatibilidad y tratar de manipularlos ahí.
6. Revise las bases de datos y su compatibilidad
Código SQL:
Ver original
  1. USE servicio;
  2. GO
  3. SELECT compatibility_level
  4. FROM sys.DATABASES WHERE name = 'servicio';
  5. GO

Además también probé la instancia.... Genere una nueva base de datos y me traje la tabla solamente del FS y funciona correcto el checkpoint. Por eso llego a la conclusión hasta ahora que una base de datos restaurada de sql 2005 r2 a sql 2008 r2 no adopta las nuevas características...


U.u que dilema y lo peor del caso es q sé q será algo tan sencillo de resolver y no veo donde...

Etiquetas: registros, server, sql, tabla
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




La zona horaria es GMT -6. Ahora son las 05:40.