huo*_*125 6 sql-server backup architecture filetable
有一个实验室项目。需要为研究保存实验室数据(原始数据和相关信息)多年。
所以数据必须保存多年,但是数据这么大,每一个原始数据都超过10GB。如果我们将原始数据存储在 SQL Server 中FILETABLE
,并将相关信息存储在标准 SQL Server 表中,几个月或几年后,数据库大小将如此之大,以至于我们必须将一些历史数据移出数据库。
也许我们可以使用将文件(在不同的硬盘上)添加到FILESTREAM
filetable的文件组(存储原始数据),但我觉得这不适合维护SQL Server。我们必须保持原始数据和相关信息的一致性。
我们考虑过使用磁带来保存历史原始数据。我们想用硬盘来保存最新的原始数据,用磁带来保存历史的原始数据。当我们将历史数据移动到磁带上时,我们将移动记录在日志表中,这样我们就可以知道历史数据移动到哪里并尽快提取。
有没有好的建议:
filetable
适合这种情况?FILETABLE
data 基于FILESTREAM
SQL Server的功能构建,并使用 Windows Server 文件系统将VARBINARY(MAX)
数据存储在服务器本身文件系统上的离散 NTFS 文件中。此数据未存储在数据库中,因此数据库文件大小将不包括这些 10GB+ 的文件。默认情况下,数据库备份将包括数据。您可以通过使用部分备份来排除文件流文件组来阻止文件流数据的 SQL Server 备份。文件流数据不使用 SQL Server 缓冲区缓存,而是使用操作系统文件缓存。
Microsoft 建议反对使用FILESTREAM
来存储平均小于 1MB 的文件,因为这会抵消使用 Win32 文件 API 修改相关数据所获得的效率。文件的最大文件大小FILESTREAM
仅受操作系统最大文件大小的限制,对于当前版本的 NTFS,对于所有实际目的而言,最大文件大小是无限的(16 艾字节)。按照设计,FILESTREAM
SQL Server对对象的大小没有任何限制。
如果您打算在SQL Server存储元数据必须存储在对象数据事务一致性FILESTREAM
,你应该使用FILETABLE/FILESTREAM
。如果存储在这些 10GB+ 文件中的对象数据与存储在 SQL Server 中的元数据在逻辑上没有关系,我预计使用FILESTREAM
可能会适得其反。
简而言之,这取决于您的确切用例。在关于为什么要使用FILETABLE
.
Microsoft 的 FILESTREAM 文档:http : //technet.microsoft.com/en-us/library/gg471497.aspx
[编辑]
鉴于您需要存储二进制 X 射线数据以及用于捕获 X 射线数据的机器参数,这听起来像是FILESTREAM
. 但是,我会考虑使用DataCore SANSymphony-V,而不是归档到 TAPE具有多个存储层的软件 SAN。SANSymphony-V 允许您使用基于 Windows 的廉价商品服务器轻松可靠地扩展 SAN,使用 15k RPM Enterprise 驱动器(可能带有 SSD 层)作为主数据库,以及配置有标准 7200 RPM SATA 驱动器的层,用于存储x 射线数据。SANSymphony-V 已通过 SQL Server 认证,可提供一种相对便宜的方式来维护对新数据和旧数据的访问,而无需任何复杂的数据管理系统。如果需要考虑灾难恢复和高可用性,则整个 SANSymphony-V SAN 都可以在现场或异地进行镜像,距离最远可达 100 公里左右。
为了清楚起见,我与 DataCore 没有任何关联——我只是喜欢他们的设计。