2013-05-18 62 views
1

我正在創建sql server 2012中的FileTable。我想將這些文件存儲在SAN(存儲區域網絡)上。我已將其映射到SQL Server上的驅動器。創建一個文件系統組,指向一個SAN

要使用FileTable,我需要設置一個文件系統組。我正在使用以下腳本,但未能正確顯示它:

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

我對FileName的條目似乎總是失敗。我如何設置一個FileStreamGroup指向SAN,然後我將使用它創建一個文件表?

回答

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 
+0

當我嘗試「路徑'\\ 123.456.789.001 \ MyFolder \ NewDataFile.mdf'無法用於FILESTREAM文件時,出現此錯誤有關受支持路徑的信息,請參閱SQL Server聯機叢書.2 – amateur

+0

哦,我忘了將CONTAINS FILESTREAM添加到ADD FILEGROUP中,您是正確的,我得到了同樣的錯誤,似乎無法在遠程路徑上創建文件流數據文件,我發現這是:http://www.sqlskills.com/ blogs/paul/misconceptions-around-filestream-storage /其中說:「數據庫的FILESTREAM數據容器必須放在本地連接的存儲上的NTFS捲上」。 – TheQ

1

當你發現,你不能把FILESTREAM文件到使用UNC路徑遠程驅動器。最好的辦法是在SAN上創建一個LUN,並通過iSCSI連接到這個LUN,這樣該驅動器將顯示爲SQL服務器本地,但仍然位於SAN上。

您可能想與您的存儲管理員聊聊真正做到這一點。

相關問題