Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
+49 (0) 351/8 33 82-0

Evaluierung: SharePoint 2007 mit Filestream

Immer häufiger verdrängt der SharePoint Server den Fileserver als Ablageort von zentralen Datei. Doch leider stößt man dadurch nur all zu schnell an die Grenzen der Contentdatenbanken(ca. 100 GB). Seit dem SQL Server 2008 steht eine neue Funktion Filestream zur Verfügung, welche es erlaubt, die sogenannten Blobs direkt auf die Festplatte zu schreiben. Näheres zum Blob Storage finden Sie hier. Bei meinen Recherchen zu diesem Thema bin ich über folgenden Artikel von Vincenzo Tenisci gestoßen. SharePoint 2007 unterstützt leider nicht offiziell Filestream. Dennoch möchte ich in diesem Post diese Sache näher beleuchten, da mit SharePoint 2010 diese Funktionalität vollständig unterstützt wird.

Zuerst müssen wir Filestream auf dem SQL Server 2008 aktivieren, falls diesess noch nicht geschehen ist.

  1. Öffnen Sie den SQL Server-Konfigurations-Manager (Start -> Alle Programme -> Microsoft SQL Server 2008 -> Konfigurationstools -> SQL Server-Konfigurations-Manager)
  2. Wählen Sie auf der linken Seite SQL Server-Dienste
  3. Klicken Sie mit der rechten Maustaste auf Ihre SQL Server Instanz und wählen Sie Eigenschaften.
  4. Wählen Sie den Reiter FILESTREAM und wählen Sie folgende Punkte aus.
    1. FILESTREAM für Transact-SQL-Zugriff aktivieren
    2. FILESTREAM für E/A-Streamingzugriff auf Datei aktivieren und geben Sie einen Namen für die Netzwerkfreigabe ein
    3. Streamingzugriff von Remoteclients auf FILESTREAM-Daten zulassen
    1
  5. Klicken Sie OK und schließen Sie den SQL Server-Konfigurations-Manager.
  6. Starten Sie das Microsoft SQL Server Management Studio (Start -> Alle Programme -> Microsoft SQL Server 2008 ->Microsoft SQL Server Management Studio) und verbinden Sie sich auf den Server.
  7. Öffnen Sie ein neues Abfragefenster und führen Sie folgende SQL Anweisung aus:
    EXEC sp_configure filestream_access_level, 2;
    GO
    RECONFIGURE;
    GO

Der SQL Server ist nun in der Lage, Filestream zu unterstützen. Nun müssen wir nur noch eine Contentdatenbank erstellen und für diese die Filestreamunterstützung aktivieren.

  1. Öffnen Sie die Zentraladministration des SharePoint Servers und wählen Sie unter Anwendungsverwaltung -> Verwaltung von SharePoint-Webanwendungen -> Webanwendung erstellen oder erweitern.
  2. Wählen Sie „Neue Webanwendung erstellen“.
  3. Geben Sie die erforderlichen Werte in die Eingabemaske ein und merken Sie sich die dazu erstellte Contentdatenbank.
  4. Erstellen Sie eine neue Websitesammlung unter Anwendungsverwaltung -> SharePoint-Websiteverwaltung -> Websitesammlung erstellen
  5. Wechseln sie nun zum Microsoft SQL Server Management Studio zurück.
  6. Klicken Sie dort mit der rechten Maustaste auf die neu erstellte Contentdatenbank und wählen Sie Eigenschaften.
  7. Unter dem Punkt Dateigruppen fügen Sie nun einen neuen Filestream hinzu und speichern Sie ihre Einstellungen mit OK. In meinem Fall ist der Name der Datenbank WSS_Content_8080 und der Filestream heißt  Dateispeicher.
    2
  8. Öffnen Sie eine neue Abfrage und führen Sie folgenden Befehl aus.
    ALTER DATABASE WSS_Content_8080
    ADD FILE(
    NAME=FSGroupFile1,
    FILENAME=’C:\Dateiablage\WSS_Content_8080′
    )
    TO FILEGROUP Dateispeicher;
    GO
  9. Klicken Sie mit der rechten Maustaste auf die Tabelle dbo.AllDocStreams der Contentdatenbank. Wählen Sie „Skript für Tabelle als“ -> „DROP und CREATE in“ -> „Neues Abfrage-Editor-Fenster“.
    4
  10. Im erstellten SQL Script finden Sie eine Spalte Namens Content vom Datentyp IMAGE. Damit Filestream genutzt werden kann ist es notwendig den Datentyp varbinary(max) zu nutzen. Desweiteren muss eine Spalte DocumentId vom Datentyp UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL UNIQUE erzeugt werden, welche mit einem Standardwert von NewId() belegt sein muss.
    Wir ersetzen also:
    [Content] image NULL
    durch:
    [Content] varbinary(max) FILESTREAM NULL,
    [DocumentId] UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL UNIQUE DEFAULT NEWID()
  11. Nun müssen wir nur noch die Dateigruppe für die Tabelle festlegen. Suchen Sie dazu die ON [PRIMARY] Anweisung am Ende von CREATE TABLE und ersetzen Sie diese durch ON [PRIMARY] FILESTREAM_ON Dateispeicher. Führen Sie die Abfrage aus.
  12. Jetzt können Sie neue Dokumentbibliotheken etc. anlegen und Dateien hochladen.

Fazit

Die Filestream Funktionalität des SQL Servers 2008 ist eine sehr gute Möglichkeit, große Datenmengen außerhalb der Datenbank aufzubewahren. Dennoch rate ich davon ab, diese Evaluation für den produktiven Einsatz zu nutzen. Der Aufwand für die Einrichtung ist zu hoch und durch die Manipulation der Datenbanken geht man ein hohes Risiko in Bezug auf die Datensicherheit ein. Dennnoch bleibt die Vorfreude auf den neuen SharePoint 2010, welcher Filestream von Haus aus unterstützt. Weitere Informationen zum Thema Remote BLOB Storage mit SharePoint Foundation 2010 finden Sie hier.

Vielen Dank an Vincenzo Tenisci!!!

Kommentar hinterlassen


Pin It on Pinterest