我正在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,然后我将使用它来创建文件表?
答案 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