Zuordnen eines freigegebenen physischen Ordners zum Dateistream

7

Wir arbeiten an einem Projekt, in dem wir große Mengen an Bildern, Texten usw. haben, an denen wir in SQL Server arbeiten müssen. Wir haben darüber nachgedacht, Filestream und Filetable-Funktionen zu verwenden. Selbst nach dem Durchsuchen vieler Daten im Internet können wir keine Antworten auf die folgenden Fragen finden:

  1. Wir versuchen, einen freigegebenen Ordner auf unserem System zu erstellen und ihn dann dem Dateistream zuzuordnen. Wir erstellen also einen freigegebenen Ordner (z. B. D: \ Ftable), in dem die Zugriffsebene für alle Benutzer auf vollständigen Zugriff festgelegt ist. Wenn wir nun zum SQL Server-Konfigurationsmanager gehen und versuchen, diesen Ordner als freigegebenen Ordner für Filstream festzulegen (die Registerkarte Eigenschaften, auf der wir den Dateistreamzugriff aktivieren), wird der folgende Fehler ausgegeben: Der Name des Windows-Freigabeordners ist keine gültige Windows-Freigabe. Wir wissen, dass der Dateistream-Ordner ein lokaler Ordner sein muss, aber selbst wenn wir nur versuchen, einen anderen lokalen Ordnerpfad (wie D: \ test usw.) einzufügen, wird ein Fehler angezeigt.

  2. Wir möchten auch wissen, ob es möglich ist, ein freigegebenes Dateistream-Verzeichnis auf einem zugeordneten Laufwerk zu erstellen. Wir haben einen freigegebenen Ordner auf einem System erstellt und diesen Ordner auf einem anderen System zugeordnet (sodass er als lokal angezeigt wird). Wenn wir jedoch erneut versuchen, einen bestimmten Ordner auf dem zugeordneten Laufwerk als freigegebenen Ordner für den Dateistream festzulegen, wird ein Fehler ausgegeben.

Würde mich über Hinweise / Hilfe zum Thema sehr freuen. Unser Hauptzugriff besteht darin, eine Dateistream-Freigabe an einem physischen Standort unserer Wahl zu erstellen, die gemeinsam genutzt wird, damit wir Daten entweder remote / oder über ein Tool darauf übertragen können.

Prashant Kumar
quelle
Es kann hilfreich sein, wenn Sie die genaue und vollständige Fehlermeldung veröffentlichen, die Sie erhalten.
Marian
Beim Setzen des Dateistream-Freigabepfads als D: \ Filestreamshare wird die folgende Fehlermeldung angezeigt: "Der spezifische FILESTREAM-Freigabename ist kein gültiger Windows-Freigabename. Stellen Sie sicher, dass der Freigabename ein gültiger Windows-Freigabename ist. (0X800704bf)" Danke
Prashant Kumar
Welche Betriebssystemversion befindet sich auf der SQL-Box und dem Dateiserver?
StrayCatDBA

Antworten:

7

Dies ist nicht genau die Funktionsweise von Dateistream und Dateitabellen. Sie können den Namen einer vorhandenen Freigabe nicht angeben, da SQL Server versucht, die in SQL Server Configuration Manager angegebene Freigabe zu erstellen. Dies liegt daran, dass die Freigabe nicht wie eine normale Freigabe direkt einem Ordner im Dateisystem zugeordnet wird, sondern einem NTFS-Datencontainer, der sich in der für die Datenbank erstellten Dateistream-Dateigruppe befindet.

Es gibt ein Missverständnis mit filestream / filetable, dass dies nicht ganz richtig ist, da die Daten im Dateisystem gespeichert sind und es sich nur um einen normalen Ordner handelt.

Wenn Sie Ihre Datenbank erstellen, geben Sie an, dass eine der Dateigruppen eine Dateistream-Dateigruppe ist. Dies ist keine normale Dateigruppe und besteht aus einer Reihe von NTFS-Ordnern, die als Datencontainer bezeichnet werden. Hier werden Ihre Dateien tatsächlich gespeichert. t Ändern Sie diesen Ordner nicht direkt, aber Sie können sich den Inhalt ansehen (nicht, dass hier viel von Menschen lesbares Material enthalten ist. Sie können Ihre tatsächlichen Dateien hier finden, wenn Sie die GUID-Ordner und seltsam benannten Dateien genau genug durchsehen :)). .

Die Dateifreigabe, mit der Sie die Dateien in die Tabelle kopieren, ist eine Darstellung der Daten in diesen Datencontainern, die dem Windows Explorer über einen Filtertreiber angezeigt wird, der die Streaming-APIs verwendet, um die Änderungen an den Datencontainern vorzunehmen und die hinzuzufügen Zeilen zum Filetable etc.

Wenn Sie also den Speicherort angeben möchten, an dem die Dateien physisch gespeichert sind, müssen Sie diesen Speicherort als Speicherort für die Dateistream-Dateigruppe angeben. Anschließend können Sie den Freigabenamen in einen beliebigen Namen ändern.

steoleary
quelle