Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server — только Для Windows
В этой статье содержатся сведения об использовании функций FILESTREAM и FileTable с группами доступности AlwaysOn в SQL Server.
Поддерживаются все функции FILESTREAM. После отработки отказа доступ к данным FILESTREAM можно получить как на доступных для чтения вторичных репликах, так и на новой первичной реплике.
Функции FileTable поддерживаются частично. После переключения на резерв данные FileTable доступны в первичной реплике, но данные FileTable недоступны для читаемых вторичных реплик.
Предварительные условия
- Перед добавлением в группу доступности базы данных, в которой используется FILESTREAM (а также возможно и FileTable), следует убедиться, что FILESTREAM поддерживается на всех экземплярах серверов, на которых размещены реплики доступности для группы доступности. Дополнительные сведения см. в статье Enable and Configure FILESTREAM.
- В отказоустойчивом кластере на основе Windows Server 2012 следует применить исправление, описанное в статье "Не удается получить доступ к общей папке VNN FILESTREAM при использовании функций FILESTREAM и FileTable" в отказоустойчивом кластере на основе Windows Server 2012 для доступа к общей папке с помощью имени виртуальная сеть (VNN). Это исправление также доступно в каталоге Центра обновления Майкрософт.
Использование имен виртуальная сеть (виртуальных сетей) для доступа к FILESTREAM и FileTable
При включении FILESTREAM на экземпляре SQL Server создается общий ресурс уровня экземпляра для предоставления доступа к данным FILESTREAM. Доступ к этому ресурсу осуществляется, используя имя компьютера в следующем формате.
\\<computer_name>\<filestream_share_name>
Однако в группе доступности AlwaysOn имя компьютера виртуализируется с использованием имени виртуальной сети (VNN). Если компьютер является основной репликой в группе доступности, а базы данных в группе доступности содержат данные FILESTREAM, то будет также создана общая папка, привязанная к виртуальному сетевому имени (VNN), обеспечивающая доступ к данным FILESTREAM. Это не влияет на доступ Transact-SQL к данным FILESTREAM. Однако приложения, использующие API файловой системы, должны использовать общий ресурс, связанный с областью имен VNN, путь которого задается в следующем формате:
\\<VNN>\<filestream_share_name>
Доля с областью видимости VNN создается при наступлении одного из следующих событий.
Необходимо добавить базу данных, содержащую данные FILESTREAM, в группу доступности AlwaysOn в первичной реплике. В этом случае доля
\\<computer_name>\<filestream_share_name>
уже существует. Создается доля\\<VNN>\<filestream_share_name>
.Вы включаете поддержку FILESTREAM для потокового доступа к вводо-выводу на первичной реплике с группами доступности. Создаются следующие акции.
-
\\<computer_name>\<filestream_share_name>
. -
\\<VNN1>\<filestream_share_name>
для группы доступности 1. -
\\<VNN2>\<filestream_share_name>
для группы доступности 2.
-
Доля, ориентированная на область VNN, также распространяется на все вторичные реплики.
Если база данных, содержащая данные FILESTREAM или FileTable, принадлежит группе доступности AlwaysOn:
Функции FILESTREAM и FileTable принимают или возвращают имена виртуальной сети, а не имена компьютеров. Дополнительные сведения об этих функциях см. в разделе FILESTREAM и FileTable Functions (Transact-SQL).
При осуществлении любого доступа к данным FILESTREAM или FileTable посредством API-интерфейса файловой системы будут использоваться имена виртуальной сети, а не имена компьютеров.
Если база данных входит в группу доступности, а ваше приложение пытается получить доступ к ресурсу по имени компьютера в формате \\<computer_name>\<filestream_share_name>
, то выдается ошибка.
Если приложение пытается получить доступ к общему ресурсу с помощью пути с областью VNN, а база данных не является частью группы доступности, запрос может завершиться успешно. В этом случае имя виртуальной сети преобразуется в имя компьютера. Однако это использование настоятельно не рекомендуется, так как путь в области VNN перестает работать, если группа доступности удалена.