Praxis: Schritt-für-Schritt-Anleitung für die Speicherung unstrukturierter Daten mit SharePoint 2010 und SQL Server 2008 R2/2012 Objektorientierte Datenspeicherung mit SharePoint und SQL-Server

Autor / Redakteur: Thomas Joos / Rainer Graefen

SQL Server 2008 R2/2012 und SharePoint 2010 bieten die Möglichkeit große Dateien so zu speichern, dass diese durch die Datenbank zugreifbar sind, aber als unstrukturierte Daten im Dateisystem liegen. Das entlastet die SQL-Datenbank und hilft bei der Analyse von Big Data.

Anbieter zum Thema

Binary Large Object nennt Microsoft in Datenbanken eingebettete Dateien. Diese lassen sich auch auslagern.
Binary Large Object nennt Microsoft in Datenbanken eingebettete Dateien. Diese lassen sich auch auslagern.
( Fotolia)

Remote-BLOB-Speicher (RBS) ist eine Funktion für SQL Server 2008/2008 R2/2012, die auch SharePoint 2010 nutzen kann. Für den Einsatz benötigen Unternehmen SQL Server 2008 SP1 mit CU2 oder SQL Server 2008 R2/2012.

Sollen die Daten in Dateifreigaben oder auf NAS/SAN-Systemen gespeichert werden, ist die Enterprise-Edition von SQL Server 2008 R2/2012 notwendig.

Remote-BLOB-Speicher mit SQL Server 2008 R2

Die Aktivierung der BLOB-Funktion ist sinnvoll, wenn die Größe der Datenbanken 500 GB überschreiten und viele größere Dateien gespeichert sind, die sich auf das Dateisystem auslagern lassen. Um BLOB zu nutzen, muss ein Administrator allerdings die Funktion für die SQL-Server-Instanz freischalten, in der die SharePoint-Datenbanken gespeichert sind.

So starten Sie:

  • 1. Öffnen Sie den SQL Server-Konfigurations-Manager.
  • 2. Klicken Sie auf SQL-Server-Dienste.
  • 3. Klicken Sie mit der rechten Maustaste auf die Instanz und wählen Sie Eigenschaften.
  • 4. Wechseln Sie von Server auf die Registerkarte FILESTREAM.
  • 5. Aktivieren Sie das Kontrollkästchen FILESTREAM für Transact-SQL-Zugriff aktivieren.
  • 6. Aktivieren Sie das Kontrollkästchen FILESTREAM für E/A-Streamingzugriff auf Datei aktivieren. Geben Sie den Namen der Windows-Freigabe in das Feld Windows-Freigabename ein.
  • 7. Wählen Sie Streamingzugriff von Remoteclients auf FILESTREAM-Daten zulassen.
  • 8. Klicken Sie auf OK.

Schließen Sie anschließend den SQL Server Configuration Manager und öffnen Sie das SQL Server Management Studio.

Nun sind folgende Schritte erforderlich:

  • 1. Klicken Sie auf die Schaltfläche Neue Abfrage.
  • 2. Geben Sie im Abfrage-Editor den folgenden Transact-SQL-Code ein:

- EXEC sp_configure filestream_access_level, 2

- RECONFIGURE

  • 3. Klicken Sie auf Ausführen.
  • 4. Erweitern Sie Datenbanken.
  • 5. Klicken Sie mit der rechten Maustaste auf die Inhaltsdatenbank von SharePoint 2010 und wählen Sie Neue Abfrage. Die Inhaltsdatenbanken sehen Sie in der Zentraladministration, wenn Sie im Bereich Anwendungsverwaltung auf Inhaltsdatenbanken verwalten klicken.

Geben Sie folgende Befehle in das Abfragefenster ein. Sie benötigen den Namen der Inhaltsdatenbank den Sie jeweils in die eckigen Klammern schreiben, sowie den Speicherort an dem der SQL-Server die großen Dateien in das NTFS-Dateisystem auslagern soll. Das Verzeichnis darf nicht vorhanden sein, der SQL-Server legt es selbst an.

Geben Sie die folgenden Befehle ein:

  • use [<Name der Inhaltsdatenbank>]
  • if not exists (select * from sys.symmetric_keys where name = N'##MS_DatabaseMasterKey##')create master key encryption by password = N'Admin Key Password !2#4'
  • use [<Name der Inhaltsdatenbank>]
  • if not exists (select groupname from sysfilegroups where groupname=N'RBSFilestreamProvider')alter database [<Name der Inhaltsdatenbank>]
  • add filegroup RBSFilestreamProvider contains filestream
  • use [<Name der Inhaltsdatenbank>]
  • alter database [<Name der Datenbank>] add file (name = RBSFilestreamFile, filename = '<Verzeichnis in dem die BLOB-Dateien liegen sollen>') to filegroup RBSFilestreamProvider

Überprüfen Sie nach der Ausführung des letzten Befehls, ob das Verzeichnis vorhanden ist und ob der SQL-Server die entsprechenden Dateien angelegt hat.

SharePoint für Remote-BLOB-Speicher konfigurieren

Für SQL Server 2008 R2 und den Einsatz zusammen mit SharePoint ist die Software Microsoft SQL Server 2008 R2 Remote Blob Store notwendig.

Die Installation erfolgt auf den Servern in der SharePoint-Farm. Durch die Installation beherrscht SharePoint die Funktion und kann optimal mit SQL Server 2008 R2 zusammenarbeiten. Die Installation erfolgt aber nicht mehr mit Doppelklick, sondern mit dem Befehl:

msiexec /qn /lvx* c:\temp\install-rbs.log /i <Pfad und Name zur Datei RBS.msi> TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME="<Name der Inhaltsdatenbank>" DBINSTANCE="<Datenbankserver oder Instanz>" FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1

Beim Einsatz mehrerer Server sieht der Befehl auf weiteren Servern etwas anders aus, da die Datenbank bereits auf dem ersten Server angepasst wurde:

msiexec /qn /lvx* c:\temp\install-rbs.log /i <Pfad und Name zur Datei rbs.msi> DBNAME="<Name der Inhaltsdatenbank>” DBINSTANCE="<Name des Datenbankservers>" ADDLOCAL="Client,Docs,Maintainer,ServerScript,FilestreamClient,FilestreamServer"

Der Befehl selbst gibt keine Rückmeldung. Bei erfolgreicher Installation bestätigt die Log-Datei die Integration des Remote-BLOB-Speicher-Clients.

Am Ende der Log-Datei muss die Zeile "Das Produkt wurde durch Windows Installer installiert" stehen. Produktname: SQL Server 2008 R2 Remote Blob-Speicher muss vorhanden sein.

Zusätzlich können Administratoren die Installation auf dem SQL-Server überprüfen:

1. Öffnen Sie das SQL Server Management Studio und verbinden Sie sich mit der entsprechenden Instanz des SQL-Servers.

2. Erweitern Sie Datenbanken\<Name der Inhaltsdatenbank>\Tabellen.

3. Es sollten mehrere Tabellen mit dem Präfix mssqlrbs vorhanden sein.

Aktivieren und Testen von RBS

Der nächste Schritt besteht darin, dass die Funktion auf einem Webserver in der SharePoint-Serverfarm aktiviert wird. Administratoren können dazu jeden beliebigen Webserver in der SharePoint-Farm verwenden. Die folgenden Schritt führen zum Ziel:

  • 1. Öffnen Sie die SharePoint 2010-Verwaltungsshell
  • 2. Geben Sie die folgenden Befehle ein:

- $cdb = Get-SPContentDatabase –WebApplication <URL der Webanwendung>

- $rbss = $cdb.RemoteBlobStorageSettings

- $rbss.Installed()

- $rbss.Enable()

- $rbss.SetActiveProviderName($rbss.GetProviderNames()[0])

- $rbss

Nachdem die Einstellung vorgenommen wurde, speichert SharePoint alle Dokumente über 100 KByte Größe im Remote-BLOB-Speicher. Dateien, die kleiner sind, bleiben direkt in der SQL-Datenbank.

Administratoren können die Verwendung auch wieder deaktivieren. Jede Inhaltsdatenbank verfügt über eine RemoteBlobStorageSettings-Eigenschaft. Die Deaktivierung des Remote-BLOB-Speichers erfolgt in der SharePoint 2010-Verwaltungsshell:

Wissen, was läuft

Täglich die wichtigsten Infos aus dem ITK-Markt

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung
  • - $site=Get-SPSite "<URL der Webanwendung>"
  • - $rbss=$site.ContentDatabase.RemoteBlobStorageSettings
  • - $rbss.SetActiveProviderName("")

Migrieren von Inhalten zum Remote-BLOB-Speicher

Haben Anwender bereits Dateien in SharePoint abgelegt, können Administratoren diese in den Remote-BLOB-Speicher auslagern. Mit den beiden folgenden Befehlen lesen Administratoren in der SharePoint-Verwaltungshell zunächst die Eigenschaften der Inhaltsdatenbank ein:

  • - $cdb=Get-SPContentDatabase <Name der Inhaltsdatenbank>
  • - $rbs=$cdb.RemoteBlobStorageSettings

Anschließend können Administratoren den Remote-BLOB-Speicher abrufen:

  • - $rbs.GetProviderNames()

Um Daten zu migrieren, verwenden Administratoren den Befehl:

  • - $rbs.Migrate().

(ID:33491210)