none
Binarios fuera de SQL Server RRS feed

  • Pregunta

  • ¿Existe alguna manera de almacenar los datos binarios fuera de la base de datos y en un equipo externo al servidor de SQL Server?, tengo conocimiento de FILESTREAM y FileTables pero estos almacenan los archivos en el sistema de archivos del mismo servidor de SQL Server y yo necesito poder almacenarlos fuera de este.
    sábado, 9 de mayo de 2020 16:55

Respuestas

  • Hay un truco que yo no he probado, pero he leído que funciona, o al menos funcionaba en versiones anteriores de SQL Server: Construye un disco virtual vhdx y albérgarlo en una carpeta compartida en el equipo externo. Después, monta el vhdx como unidad local en el equipo que tiene el SQL Server. Entonces, crea los archivos dentro de esa unidad. Esto "engaña" a SQL server, que cree que es una unidad local, aunque en realidad se encuentra ubicado en un archivo remoto.

    Otra opción que sí he probado es usar iSCSI. Con un Windows Server viene incluido tanto el iniciador como el target iSCSI. Configura un target en el equipo remoto, y un iniciador en el equipo que contiene el SQL Server para que se conecte a la unidad remota. Entonces, crea los archivos sobre el disco iSCSI. Una vez más, SQL Server considera ese disco como "local" pese a que en realidad el almacenamiento ocurre sobre el equipo remoto.

    sábado, 9 de mayo de 2020 17:15

Todas las respuestas

  • Hay un truco que yo no he probado, pero he leído que funciona, o al menos funcionaba en versiones anteriores de SQL Server: Construye un disco virtual vhdx y albérgarlo en una carpeta compartida en el equipo externo. Después, monta el vhdx como unidad local en el equipo que tiene el SQL Server. Entonces, crea los archivos dentro de esa unidad. Esto "engaña" a SQL server, que cree que es una unidad local, aunque en realidad se encuentra ubicado en un archivo remoto.

    Otra opción que sí he probado es usar iSCSI. Con un Windows Server viene incluido tanto el iniciador como el target iSCSI. Configura un target en el equipo remoto, y un iniciador en el equipo que contiene el SQL Server para que se conecte a la unidad remota. Entonces, crea los archivos sobre el disco iSCSI. Una vez más, SQL Server considera ese disco como "local" pese a que en realidad el almacenamiento ocurre sobre el equipo remoto.

    sábado, 9 de mayo de 2020 17:15
  • He probado el truco que mencionas y ha funcionado para crear la BD y los filegroups en el VHDx sin problema alguno, pero al momento de crear una filetable esta de igual manera se crea en la ruta \\equipolocal\carpetaCompartidaSQLServer\filetable, ¿sabes de alguna manera para cambiar la ruta de las filetables?

    Ariagna Bandala Salazar

    sábado, 9 de mayo de 2020 22:03
  • El FileTable lo que hace es crear un "Share" en el equipo local, y cuando algún cliente lee o graba algo en ese Share, lo intercepta y devuelve o almacena el contenido en el FileStream. Es decir, el Share siempre se va a ver como una carpeta compartida que aparenta encontrarse en el equipo del SQL Server, porque en ese equipo es donde se está ejecutando el software que aporta los "drivers" usados para simular dicha carpeta compartida. Los datos que metas en esa carpeta van a parar al sitio donde esté el Filestream, en tu caso el vhdx que se encuentra en el equipo remoto.
    domingo, 10 de mayo de 2020 5:54
  • Aa ok, entiendo entonces si se están almacenando en el VHDx, pero al aparecer también en el equipo local esta no esta consumiendo espacio del mismo?

    Ariagna Bandala Salazar

    lunes, 11 de mayo de 2020 13:14
  • Efectivamente, aunque veas \\equipolocal\carpeta, esa carpeta no existe realmente en equipolocal. En su lugar, SQL Server instala un driver que "intercepta" las llamadas a esa ruta, y salva los datos correspondientes en el Filestream, que en realidad has ubicado en un equipo remoto.
    lunes, 11 de mayo de 2020 16:23
  • Hola

      

    ¿Alguna novedad sobre la consulta realizada? ¿Han sido útiles las respuestas proporcionadas?  

     

    Gracias por usar los foros de MSDN. 

      

    Oscar Navarro

    martes, 12 de mayo de 2020 16:37
    Moderador