SQL Server FILESTREAM限制

pen*_*ate 13 sql t-sql sql-server filestream sql-server-2008

我在SQL Server中查看FILESTREAM属性来存储文件.据我所知,它将文件存储在硬盘上,并将文件指针/路径信息存储在DB中.此外,维护流程中的事务一致性.

对于FILESTREAM属性,似乎还存在"FILESTREAM数据只能存储在本地磁盘卷上"的限制.

如果我预计我的网络应用程序将存储200,000张每张1-2mb的图像,我需要大约200GB的硬盘空间来存储图像.由于FILESTREAM要求所有数据仅按照限制存储在本地磁盘上,因此无法在单个硬盘驱动器上存储数百万个文件,因为存储要求非常大.

我对限制的理解是正确的还是我在这里遗漏了什么?

如果这个限制是正确的,我会将其作为普通blob存储在db中,并将我的数据库集群存储,以增加存储要求,这似乎不可能使用FILESTREAM.

请分享你的想法!

更新:
关于FILESTREAM的更多问题: -

  1. 如何在数据容器损坏的情况下处理数据恢复?
  2. 我们可以在没有文件系统数据的情况下备份数据库吗?[假设数据在SAN中,无需移动]
  3. 我想备份或恢复数据库,只重新映射文​​件组路径信息[映射到SAN].这可能吗?

Jef*_* Mc 19

FILESTREAM实际上不需要本地存储,只需要SMB网络存储.iSCSI或光纤通道SAN可以正常存储FILESTREAM数据.每个表还可以有多个文件流文件组,实质上是对数据进行分区.如果您严格针对sql server 2008,则没有理由不将文件流用于大型二进制数据.有一个微软白皮书描述FILESTREAM分区这里.