FILESTREAM 和 FileTable 與 AlwaysOn 可用性群組 (SQL Server)
本主題包含在 SQL Server 2012 中使用 FILESTREAM 和 FileTable 功能搭配 AlwaysOn 可用性群組 的相關資訊。
支援所有 FILESTREAM 功能。 在容錯移轉之後,可讀取的次要複本以及新的主要複本上的 FILESTREAM 資料皆可供存取。
僅部分支援 FileTable 功能。 在容錯移轉之後,主要複本上的 FileTable 資料可供存取,但卻無法存取位在可讀取之次要複本上的 FileTable 資料。
本主題內容:
必要條件
使用虛擬網路名稱 (VNN) 進行 FILESTREAM 和 FileTable 存取
相關工作
相關內容
必要條件
- 將使用 FILESTREAM (包含或不含 FileTable) 的資料庫加入至可用性群組之前,請確定裝載可用性群組之可用性複本的每個伺服器執行個體都啟用了 FILESTREAM。 如需詳細資訊,請參閱<啟用及設定 FILESTREAM>。
使用虛擬網路名稱 (VNN) 進行 FILESTREAM 和 FileTable 存取
當您在 SQL Server 執行個體上啟用 FILESTREAM 時,系統就會建立執行個體層級共用,讓您存取 FILESTREAM 資料。 您可以依照下列格式使用電腦名稱來存取這個共用:
\\<computer_name>\<filestream_share_name>
不過,在 AlwaysOn 可用性群組中,電腦名稱是使用虛擬網路名稱 (VNN) 來虛擬化。 當電腦是可用性群組中的主要複本,而且可用性群組中的資料庫包含 FILESTREAM 資料時,系統也會建立 VNN 範圍的共用,讓您存取 FILESTREAM 資料。 這並不會影響 FILESTREAM 資料的 Transact-SQL 存取。 不過,使用檔案系統 API 的應用程式必須使用 VNN 範圍的共用,其路徑採用下列格式:
\\<VNN>\<filestream_share_name>
發生下列其中一個事件時,系統就會建立這個 VNN 範圍的共用。
您將包含 FILESTREAM 資料的資料庫加入至主要複本上的 AlwaysOn 可用性群組。 在此情況中,\\<computer_name>\<filestream_share_name> 共用已經存在。 系統會建立 \\<VNN>\<filestream_share_name> 共用。
您在具有可用性群組的主要複本上啟用 FILESTREAM 進行檔案 i/o 資料流存取。 系統會建立下列共用:
\\<computer_name>\<filestream_share_name>
\\<VNN1>\<filestream_share_name> (可用性群組 1)。
\\<VNN2>\<filestream_share_name> (可用性群組 2)。
這些 VNN 範圍的共用也會傳播至所有次要複本。
當包含 FILESTREAM 或 FileTable 資料的資料庫屬於 AlwaysOn 可用性群組時:
FILESTREAM 和 FileTable 函數會接受或傳回虛擬網路名稱 (VNN) 而非電腦名稱。 如需這些函數的詳細資訊,請參閱<Filestream 和 FileTable 函數 (Transact-SQL)>。
透過檔案系統 API 對 FILESTREAM 或 FileTable 資料進行的所有存取都應該使用 VNN 而非電腦名稱。 如需詳細資訊,請參閱<FILESTREAM 和 FileTable 與 AlwaysOn 可用性群組 (SQL Server)>。
當資料庫屬於可用性群組的一部分時,如果您的應用程式嘗試依照 \\<computer_name>\<filestream_share_name> 格式使用電腦名稱來存取共用,就會引發錯誤。
當資料庫不屬於可用性群組的一部分時,如果您的應用程式嘗試使用 VNN 範圍的路徑來存取共用,則要求可能會成功。 在此情況中,虛擬網路名稱會解析成電腦名稱。 不過,強烈建議您不要使用這種方式,因為如果可用性群組已卸除,VNN 範圍的路徑將會停止運作。
相關工作
[回到頁首]
相關內容
無。