在SQL Server 2008中配置文件流(FILESTREAM)

原创 2012年12月28日 15:15:52
TSQL配置和激活文件流

在SQL Server 管理套件中,点击新查询窗口并输入下面的TSQL查询: 

sp_configure 'filestream access level',2
reconfigure with override
go

 

SQL Server 2008支持3种级别的文件流访问。

a. 如果这个值是0,那么对于这个实例来说文件流支持是不可用的。

b. 如果这个值是1,那么对于Transact-SQL访问来说文件流是激活的。

c. 如果这个值是2,那么对于Transact-SQL和Win32流访问来说文件流是激活的。

 

创建一个文件流数据库

Use Master
Go
IF  EXISTS (SELECT name FROM sys.databases WHERE name = N'FileStreamDB')
DROP DATABASE FileStreamDB
GO

USE Master
GO
CREATE DATABASE FileStreamDB ON PRIMARY
  ( NAME = FileStreamDB_Data,
    FILENAME = N'D:\FileStream\FileStreamDB_Data.mdf',
    SIZE = 10MB,
    MAXSIZE = 50MB,
    FILEGROWTH = 15%),
 FILEGROUP MyDBData
  ( NAME = MyFileStream_Data,
    FILENAME = N'D:\FileStream\FileStreamDB_Data.ndf',
    SIZE = 10MB,
    MAXSIZE = 50MB,
    FILEGROWTH = 5MB),
FILEGROUP FileStream CONTAINS FILESTREAM
  ( NAME = FileStream,
    FILENAME = N'D:\FileStream\FileStreamData')
LOG ON
  ( NAME = 'FileStreamDB_Log',
    FILENAME = N'D:\FileStream\FileStreamDB_Log.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB);
 GO 
 --已有数据库,添加文件流组和文件
ALTER DATABASE [FileStreamDB] ADD FILEGROUP [FileStreamGroup] CONTAINS FILESTREAM 
GO
ALTER DATABASE [FileStreamDB] ADD FILE ( NAME = N'FileStreamData', FILENAME = N'D:\DataBase\FileStream_Data' ) TO FILEGROUP [FileStreamGroup]
GO


 

 

在D:\FileStream\FileStreamData文件夹里你将看到一个叫做$FSLOG的子文件夹和一个叫做filestream.hdr的文件,这个文件是一个用于文件流容器的头文件。

 

创建一个数据表来存储文件流数据

如果一个表需要存储文件流数据,那么这个表应该定义一个ROWGUIDCOL字段。这是用于存储引擎跟踪NTFS文件系统中的实例用的。这个字段将用来存储文件流数据,它应该有varbinary(max)数据类型和FILESTREAM属性。在SQL Server 2008中,varbinary(max)数据类型可以存储超过2GB的数据。

 

USE FileStreamDB 
Go 
CREATE TABLE dbo.FileStreamTable 
(    
  FS_ID UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL UNIQUE, 
  FSData VARBINARY(MAX) FILESTREAM 
);

INSERT INTO FileStreamTable 
VALUES(newid(), CAST ('Inserting data into FileStreamTable........' As VARBINARY(MAX))) 
Go


文件流的优点

  · BLOB数据现在可以保存在NTFS系统中,并且它处于SQL Server 2008的控制之下。

  · SQL Server将维护所有BLOB数据的事务一致性。

  · 对于要以FILESTREAM来存储的文件没有规模限制。只要你在磁盘上具有空间,那么你就可以存储更大的FILESTREAM文件。

  · 当激活了文件流的数据库被备份后,在指定FileStreamData文件夹下的所有BLOB文件都将被备份,它们将帮助数据库管理员轻松地管理BLOB。

  · 可以通过TSQL和具有很好流性能的NTFS流APIs轻松地访问数据。

  文件流的缺点

  · 数据库镜像不能配置在激活了文件流的数据库上。

  · 数据库快照不能快照文件流数据库中的文件流数据。

  总结

  SQL Server 2008的文件流特性帮助公司更有效地管理它们的BLOB数据,因为它们可以在NTFS文件系统中存储数据并利用SQL Server事务一致性的好处。数据库管理员现在可以轻松地进行公司的文件流数据备份,只需要对文件流数据库进行备份就可以了,不用对每一个BLOB文件进行单独备份。这使得他们可以节省很多时间,而且不会再因为没有备份一些文件而丢失数据。


 

SQL Server 2008的外围应用配置工具在哪里?

微软已经取消了在SQL Server 2005中出现的外围应用配置工具。曾经在外围应用配置工具中管理的服务和连接现在已经使用SQL Server 配置管理工具来管理。所以你该怎样管理数据库引擎功能呢?...
  • wozengcong
  • wozengcong
  • 2015年04月17日 00:55
  • 2593

解决SQLSERVER在还原数据时出现的“FILESTREAM功能被禁用”问题

解决SQLSERVER在还原数据时出现的“FILESTREAM功能被禁用”问题 今天由于测试需要,在网上下载了Adventureworks2008实例数据库的BAK文件,进行还原时出现了这样的错误...
  • dyllove98
  • dyllove98
  • 2013年07月27日 20:09
  • 2426

SQL Server 2008 通过配置数据库邮件实现发送邮件功能

1.简单了解数据库邮件的概念和使用的传输协议及系统体系:       数据库邮件是从 SQL Server 数据库引擎中发送电子邮件的企业解决方案。通过使用数据库邮件,数据库应用程序可以向用户发送电...
  • zhanglong_longlong
  • zhanglong_longlong
  • 2014年12月31日 13:40
  • 1561

SQL Server 2008 FileStream 的配置及示例

1.  启用 SQL Server 2008 Filestream 功能 a. 开始/所有程序/SQL Server 2008/Configuration Tools/SQL Server Conf...
  • abccome
  • abccome
  • 2012年08月16日 13:57
  • 246

SQL Server 2008中使用FileStream存取大文件

SQL Server 2008中引入了Filestream,使用它可以将非机构化大型数据(如文本文档、图像和视频)等以varbinary(max)的形式存储在文件系统中。使用数据库的备份还原功能可以将...
  • babyan
  • babyan
  • 2011年08月26日 15:43
  • 1789

如何启用SQL Server 2008的FILESTREAM特性

如何启用SQL Server 2008的FILESTREAM特性 今天安装SQL Server 2008的时候没有注意,忘记了启用FILESTREAM特性,因为默认情况下FILESTRE...
  • weizhiai12
  • weizhiai12
  • 2012年05月28日 20:19
  • 901

SQL Server 2008 FileStream

  • 2012年08月16日 14:12
  • 751KB
  • 下载

SQL Server 2008 允许远程连接的配置

如果无法通过IP地址远程连接你的SQL Server 2008服务器,可以参考下面的内容进行设置。 在进行下述设置之前,应该确保你的网络已经安装设置完毕,服务器已经正常连接到网络中。 1、单击Wi...
  • yanjiaye520
  • yanjiaye520
  • 2012年11月28日 11:56
  • 42872

SQL Server 2008 R2开启数据库的远程连接及客户端配置

SQL Server 2008 R2如何开启数据库的远程连接SQL Server 2008默认是不允许远程连接的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,远程连接数据...
  • YanceChen2013
  • YanceChen2013
  • 2017年01月04日 19:49
  • 9190

远程连接SQL Server 2008,服务器端和客户端配置

http://www.jb51.net/article/40288.htm 远程连接SQL Server 2008,服务器端和客户端配置 关键设置: 第一步(SQL2005、SQL2...
  • xbfengyu
  • xbfengyu
  • 2016年06月29日 14:07
  • 2710
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在SQL Server 2008中配置文件流(FILESTREAM)
举报原因:
原因补充:

(最多只允许输入30个字)