Verwenden von FILESTREAM und Dateitabellen mit Always On-Verfügbarkeitsgruppen

Gilt für:SQL Server – nur Windows

Dieser Artikel enthält Informationen zur Verwendung der FILESTREAM- und FileTable-Funktionen mit Always On-Verfügbarkeitsgruppen in SQL Server.

Alle FILESTREAM-Funktionen werden unterstützt. Nach einem Failover kann sowohl auf lesbaren sekundären Replikaten als auch auf dem neuen primären Replikat auf FILESTREAM-Daten zugegriffen werden.

Die FileTable-Funktionalität wird teilweise unterstützt. Nach einem Failover kann auf dem primären Replikat auf FileTable-Daten zugegriffen werden, nicht jedoch auf FileTable-Daten auf lesbaren sekundären Replikaten.

Voraussetzungen

Verwenden von virtuellen Netzwerknamen (VNNs) für den Zugriff auf FILESTREAM- und FileTable-Daten

Wenn Sie FILESTREAM auf einer Instanz von SQL Serveraktivieren, wird eine Freigabe auf Instanzebene erstellt, um Zugriff auf die FILESTREAM-Daten zu gewähren. Sie greifen auf diese Freigabe zu, indem Sie den Computernamen im folgende Format angeben:

  • \\<computer_name>\<filestream_share_name>

In einer Always On-Verfügbarkeitsgruppe wird der Name des Computers jedoch mit einem virtuellen Netzwerknamen (kurz VNN) virtualisiert. Wenn der Computer das primäre Replikat in einer Verfügbarkeitsgruppe ist und Datenbanken in der Verfügbarkeitsgruppe FILESTREAM-Daten enthalten, dann wird auch eine Freigabe im Bereich des VNNs erstellt, um Zugriff auf die FILESTREAM-Daten zu bieten. Dies wirkt sich nicht auf den Transact-SQL-Zugriff auf FILESTREAM-Daten aus. Anwendungen, die Dateisystem-APIs verwenden, müssen jedoch die Freigabe im Bereich des VNNs verwenden. Diese Freigabe hat einen Pfad im folgenden Format:

  • \\<VNN>\<filestream_share_name>

Diese Freigabe im VNN-Bereich wird erstellt, wenn eines der folgenden Ereignisse auftritt.

  • Sie fügen eine Datenbank hinzu, die FILESTREAM-Daten zu einer Always On-Verfügbarkeitsgruppe für das primäre Replikat enthält. In diesem Fall ist die Freigabe \\<computer_name>\<filestream_share_name> bereits vorhanden. Die Freigabe \\<VNN>\<filestream_share_name> wird erstellt.

  • Sie aktivieren FILESTREAM für E/A-Streamingzugriff auf Datei für ein primäres Replikat, das Verfügbarkeitsgruppen enthält. Die folgenden Freigaben werden erstellt:

    1. \\<computer_name>\<filestream_share_name>.
    2. \\<VNN1>\<filestream_share_name> für die Verfügbarkeitsgruppe 1.
    3. \\<VNN2>\<filestream_share_name> für die Verfügbarkeitsgruppe 2.

Diese Freigaben im VNN-Bereich werden auch an alle sekundären Replikate weitergegeben.

Wenn die Datenbank, die FILESTREAM- oder FileTable-Daten enthält, zu einer Always On-Verfügbarkeitsgruppe gehört:

  • Die FILESTREAM-Funktion und die FileTable-Funktion akzeptieren oder geben virtuelle Netzwerknamen (VNNs) statt Computernamen zurück. Weitere Informationen zu diesen Funktionen finden Sie unter FILESTREAM- und FileTable-Funktionen (Transact-SQL).

  • Bei allen Zugriffen auf FILESTREAM- oder FileTable-Daten über Dateisystem-APIs sollten VNNs statt der Computernamen verwendet werden.

Wenn die Datenbank Teil einer Verfügbarkeitsgruppe ist und die Anwendung versucht, mit einem Computernamen im Format \\<computer_name>\<filestream_share_name> auf die Freigabe zuzugreifen, dann wird ein Fehler ausgelöst.

Wenn die Datenbank kein Teil einer Verfügbarkeitsgruppe ist und die Anwendung versucht, auf die Freigabe mit einem Pfad im VNN-Bereich zuzugreifen, dann wird die Anforderung möglicherweise erfolgreich ausgeführt. In diesem Fall wird der virtuelle Netzwerkname in den Computernamen aufgelöst. Von dieser Vorgehensweise wird jedoch stark abgeraten, da der Pfad im VNN-Bereich nicht mehr gültig ist, wenn die Verfügbarkeitsgruppe gelöscht wird.