创建指向SAN的文件系统组

时间:2013-05-18 15:13:39

标签: sql-server sql-server-2012 san filetable

我正在sql server 2012中创建一个FileTable。我想将文件存储在SAN(存储区域网络)上。我已将其映射到sql server上的驱动器。

要使用FileTable,我需要设置文件系统组。我使用以下脚本但未能使其正确无误:

ALTER DATABASE [MyDatabase]
ADD FILE 
(
    NAME = FileStreamFile,
    FILENAME= '\\123.456.789.001\MyFolder',
    MAXSIZE = UNLIMITED
    )
TO FileGroup MyFileStreamGroup
END

我对FileName的条目似乎总是失败。如何设置FileStreamGroup指向SAN,然后我将使用它来创建文件表?

2 个答案:

答案 0 :(得分:1)

如您所见,您无法使用UNC路径将文件流文件放入远程驱动器。最好的办法是在SAN上创建LUN并通过iSCSI连接到这个LUN,这样驱动器就会显示为SQL服务器的本地驱动器,但仍然位于SAN上。

您可能希望与存储管理员聊聊有关这样做的事。

答案 1 :(得分:0)

首先,您需要创建一个文件组:

ALTER DATABASE [MyDatabase]
ADD FILEGROUP [MyFileStreamGroup]

然后你可以添加文件:

ALTER DATABASE [MyDatabase]
ADD FILE ( 
    NAME = N'NewDataFile'
    ,FILENAME = N'\\123.456.789.001\MyFolder\NewDataFile.mdf' 
    ,SIZE = 1024KB
    ,FILEGROWTH = 1024KB
) TO FILEGROUP [MyFileStreamGroup]

最后你可以创建表格:

CREATE TABLE [MyDatabase].[dbo].[NewTable] (
    [Id] int NOT NULL,
    [Text] varchar(50) NOT NULL
) ON [MyFileStreamGroup]

通过指定ON [MyFileStreamGroup],强制在该文件组中创建它,而该文件组又将使用SAN上新创建的文件。如果未指定filegrop,则表将以默认值结束,通常称为PRIMARY。如果您希望新文件组是默认文件组,则可以使用:

ALTER DATABASE [MyDatabase]
MODIFY FILEGROUP [MyFileStreamGroup] DEFAULT