Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Evaluierung: SharePoint 2007 mit Filestream

Immer häu­fi­ger ver­drängt der SharePoint Server den Fileserver als Ablageort von zen­tra­len Datei. Doch lei­der 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, wel­che es erlaubt, die soge­nann­ten Blobs direkt auf die Festplatte zu schrei­ben. Näheres zum Blob Storage fin­den Sie hier. Bei mei­nen Recherchen zu die­sem Thema bin ich über fol­gen­den Artikel von Vincenzo Tenisci gesto­ßen. SharePoint 2007 unter­stützt lei­der nicht offi­zi­ell Filestream. Dennoch möchte ich in die­sem Post diese Sache näher beleuch­ten, da mit SharePoint 2010 diese Funktionalität voll­stän­dig unter­stützt wird.

Zuerst müs­sen wir Filestream auf dem SQL Server 2008 akti­vie­ren, falls die­sess noch nicht gesche­hen 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 lin­ken Seite SQL Server-Dienste
  3. Klicken Sie mit der rech­ten Maustaste auf Ihre SQL Server Instanz und wäh­len Sie Eigenschaften.
  4. Wählen Sie den Reiter FILESTREAM und wäh­len Sie fol­gende Punkte aus.
    1. FILESTREAM für Transact-SQL-Zugriff akti­vie­ren
    2. FILESTREAM für E/A‑Streamingzugriff auf Datei akti­vie­ren und geben Sie einen Namen für die Netzwerkfreigabe ein
    3. Streamingzugriff von Remoteclients auf FILESTREAM-Daten zulas­sen
    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 ver­bin­den Sie sich auf den Server.
  7. Öffnen Sie ein neues Abfragefenster und füh­ren Sie fol­gende SQL Anweisung aus:
    EXEC sp_configure filestream_access_level, 2;
    GO
    RECONFIGURE;
    GO

Der SQL Server ist nun in der Lage, Filestream zu unter­stüt­zen. Nun müs­sen wir nur noch eine Contentdatenbank erstel­len und für diese die Filestreamunterstützung akti­vie­ren.

  1. Öffnen Sie die Zentraladministration des SharePoint Servers und wäh­len Sie unter Anwendungsverwaltung -> Verwaltung von SharePoint-Webanwendungen -> Webanwendung erstel­len oder erwei­tern.
  2. Wählen Sie "Neue Webanwendung erstel­len".
  3. Geben Sie die erfor­der­li­chen Werte in die Eingabemaske ein und mer­ken Sie sich die dazu erstellte Contentdatenbank.
  4. Erstellen Sie eine neue Websitesammlung unter Anwendungsverwaltung -> SharePoint-Websiteverwaltung -> Websitesammlung erstel­len
  5. Wechseln sie nun zum Microsoft SQL Server Management Studio zurück.
  6. Klicken Sie dort mit der rech­ten Maustaste auf die neu erstellte Contentdatenbank und wäh­len Sie Eigenschaften.
  7. Unter dem Punkt Dateigruppen fügen Sie nun einen neuen Filestream hinzu und spei­chern Sie ihre Einstellungen mit OK. In mei­nem Fall ist der Name der Datenbank WSS_Content_8080 und der Filestream heißt  Dateispeicher.
    2
  8. Öffnen Sie eine neue Abfrage und füh­ren Sie fol­gen­den 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 rech­ten 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 erstell­ten SQL Script fin­den Sie eine Spalte Namens Content vom Datentyp IMAGE. Damit Filestream genutzt wer­den kann ist es not­wen­dig den Datentyp varbinary(max) zu nut­zen. Desweiteren muss eine Spalte DocumentId vom Datentyp UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL UNIQUE erzeugt wer­den, wel­che mit einem Standardwert von NewId() belegt sein muss.
    Wir erset­zen also:
    [Content] image NULL
    durch:
    [Content] varbinary(max) FILESTREAM NULL,
    [DocumentId] UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL UNIQUE DEFAULT NEWID()
  11. Nun müs­sen wir nur noch die Dateigruppe für die Tabelle fest­le­gen. Suchen Sie dazu die ON [PRIMARY] Anweisung am Ende von CREATE TABLE und erset­zen Sie diese durch ON [PRIMARY] FILESTREAM_ON Dateispeicher. Führen Sie die Abfrage aus.
  12. Jetzt kön­nen Sie neue Dokumentbibliotheken etc. anle­gen und Dateien hoch­la­den.

Fazit

Die Filestream Funktionalität des SQL Servers 2008 ist eine sehr gute Möglichkeit, große Datenmengen außer­halb der Datenbank auf­zu­be­wah­ren. Dennoch rate ich davon ab, diese Evaluation für den pro­duk­ti­ven Einsatz zu nut­zen. 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, wel­cher Filestream von Haus aus unter­stützt. Weitere Informationen zum Thema Remote BLOB Storage mit SharePoint Foundation 2010 fin­den Sie hier.

Vielen Dank an Vincenzo Tenisci!!!

Related Posts

Pin It on Pinterest