SharePoint Inhaltsdatenbanken auf Test- und Entwicklungssystemen

Oft ist die Handhabung mit SharePoint Inhaltsdatenbanken auf Test- und Entwicklungsumgebungen schwierig. Einerseits enthalten Kundendatenbanken teilweise grosse Datenmengen (DMS- und Archivlösungen ohne RBS) oder aber auch sensitive Daten.

Das untenstehende Script erfüllt grundsätzlich den Zweck, in einer Inhaltsdatenbank alle Dokumente eines Dateityps durch das kleinste Dokument dieses Typs zu ersetzen. Somit bleiben alle Dokumente und die damit verbundenen Funktionen und Versionen in SharePoint vollständig erhalten.

Szenario 1: Datenmenge
Durch das ersetzen grosser Dokumentinhalte durch kleine, aber gültige Streams kann die Grösse der Datenbank bis zu 95% reduziert werden.

Szenario 2: Sicherheit und Vertraulichkeit
Wird dieses kleinste Dokument im Voraus manuell eingefügt (Upload in SharePoint), so können mit dem gleichen Script alle in der Datenbank enthaltenen Dokumente durch dieses Einheitsdokument ersetzt werden. Somit sind keine vertraulichen Dokumente mehr enthalten (ACHTUNG: Metadaten werden nicht verändert).

Dieser Eingriff auf der Inhaltsdatenbank ist UNSUPPORTED und kann zu Datenverlusten führen. Dies ist nur zu Test- und Entwicklungszwecken vorgesehen. Je nach Grösse der Inhaltsdatenbank kann dieses Skript mehrere Stunden dauern: Vergleichswert (abhängig von der Systemleistung): 600GB in ca. 8 Stunden -> Ergebnisgrösse: 40GB.

 

/*
Autor: ADVIS AG, Michael Vonlanthen – michael.vonlanthen@advis.ch

This script replaces all the documents of the given document type by the minimal sized
document contained in this content database (in all site collections!). The purpose of the
script is to reduce the size of content databases containing big documents to a Minimum
or to remove sensitive data (documents) from the content database for development and
test environments. All documents remain with all their features in SharePoint, only the
content binary stream is replaced. The replacement is visible in the history (comment).
 
-> THIS REPLACEMENT METHOD IS OFFICIALLY UNSUPPORTED!
-> DO NOT USE THIS SCRIPT IN ANY PRODUCTIVE ENVIRONMENT!
-> CONTENT CAN BE UNREPAIRABLE DESTROYED!
 
Parameters: filetype (extension)
*/

— Declare variables
DECLARE @fileExtension varchar(6)
DECLARE @fileExtensionPad varchar(6)
DECLARE @minSizeDocId uniqueidentifier
DECLARE @minSize int
DECLARE @fileMinBinary varbinary(max)
DECLARE @currentId uniqueidentifier
DECLARE @loopCount int
/* PARAMETERS START */
SET @fileExtension = ‚pdf‘
/* PARAMETERS END */

SET @fileExtensionPad = ‚%.‘ + @fileExtension
PRINT ‚STARTED FOR DOCTYPE .‘ + @fileExtension + ‚ –>‘

SET @minSize = (SELECT MIN(size) FROM [AllDocs] WHERE leafname LIKE @fileExtensionPad AND Size IS NOT NULL AND Size > 0)
PRINT ‚MinSize for .‘ + @fileExtension + ‚ = ‚ + convert(varchar(100), @minSize)
 
SET @minSizeDocId = (SELECT Top(1) Id FROM [AllDocs] WHERE leafname like @fileExtensionPad AND Size = @minSize)
PRINT ‚MinSize document ID for .‘ + @fileExtension + ‚ = ‚ + convert(varchar(100), @minSizeDocId)
 
SET @fileMinBinary = (SELECT Top(1) Content FROM [AllDocStreams] WHERE Id = @minSizeDocId)
SET @loopCount = 0
SET NOCOUNT ON;
 
DECLARE myCursor CURSOR LOCAL FAST_FORWARD FOR
    SELECT id
    FROM AllDocs doc
    WHERE doc.hasstream = 1 AND doc.leafname LIKE @fileExtensionPad
OPEN myCursor
 
FETCH NEXT FROM myCursor INTO @currentId
WHILE @@FETCH_STATUS = 0
  BEGIN 
    UPDATE doc SET checkincomment = ‚MIN-SIZE-RESET‘, size = @minSize FROM [AllDocs] doc WHERE doc.Id = @currentId
    UPDATE stream SET content = @fileMinBinary FROM AllDocStreams stream WHERE stream.Id = @currentId
 
    SET @loopCount = @loopCount + 1   
    PRINT ‚Document stream minimized -> ID=‘ + convert(varchar(50), @currentId) + ‚ [‚ + convert(varchar(10), @loopCount) + ‚]‘
   
    FETCH NEXT FROM myCursor INTO @currentId
  END
CLOSE myCursor
DEALLOCATE myCursor
 
PRINT ‚<– ENDED FOR DOCTYPE ‚ + @fileExtension + ‚. Documents replaced: ‚ + convert(varchar(20), @loopCount)

 

0 Responses to “SharePoint Inhaltsdatenbanken auf Test- und Entwicklungssystemen”



  1. Schreibe einen Kommentar

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s





%d Bloggern gefällt das: