Home > ADMINISTRATION, SHAREPOINT 2007 > Veiligstellen van uw SharePoint 2007-omgeving

Veiligstellen van uw SharePoint 2007-omgeving

december 8, 2009

Er zijn vier manieren om uw SharePoint-omgeving veilig te stellen, deze zijn:

  • Met behulp van de Central Administration gebruikersinterface
  • Met behulp van de stsadm commandline tool
  • Met behulp van geautomatiseerde back-up scripts
  • Met behulp van commerciele producten als bijvoorbeeld AvePoint DocAve Backup and Recovery en Microsoft System Center Data Protection Manager(DPM)

Ik persoonlijk gebruik nooit de eerste optie. Uit eerdere ervaringen met het backuppen van SharePoint omgevingen, leerde ik dat de stsadm-tool de beste manier is om een back-up te maken en te herstellen. Sommigen zullen anders beweren,  maar ik voel me comfortabel met deze tool omdat ik het bijna voor al mijn SharePoint werkzaamheden gebruik, en het heeft me tot nu toe niet in de steek gelaten.

Doordat de mogelijkheden van de stsadm commandline tool enorm breed zijn, richt deze post zich alleen op het veiligstellen van Site Collections(NLD :Siteverzamelingen).

Voor het veiligstellen van siteverzamelingen kan gebruik worden gemaakt van VBScript. De VBScript kun je binnen de MMC-module “Taakplanner” inplannen als een geautomatiseerde taak om op een bepaald tijdstip acties op de SharePoint-omgeving uit te voeren.

Om het back-up van siteverzamelingen beter toe te lichten, heb ik een voorbeeldscript gemaakt, lees verder..

Aandachtspunten :

  • Bij het veiligstellen van siteverzamelingen zijn alleen volledige backups mogelijk.
  • Bij het terugplaatsen van siteverzamelingen worden veel systeembronnen aangesproken, waardoor de performance van de overige webapplicaties lager zullen zijn.
  • Indien de grootte van de siteverzameling die u wilt back-uppen 15 GB of kleiner is, wordt door Microsoft het gebruik van de stsadm command-line tool aanbevolen.
  • Indien de grootte van de siteverzameling die u wilt back-uppen tussen 15 GB tot 100 GB groot is, wordt door Microsoft het gebruik van Microsoft SQL Server 2005 of Microsoft System Center Data Protection Manager 2007 aanbevolen.

 Backup Script – Siteverzameling

Het onderstaande backup-script draagt zorg voor het maken van een “volledig” back-up van de siteverzameling(en) van de webapplicatie http://DEMOSERVER:32191/. Vooraf wordt het weeknummer en datum achterhaald en de daarvoor benodigde folders op de fileshare \\DEMOSERVER\Backups\BackupFolder\ aangemaakt. Voor de duur van de back-up, wordt de siteverzameling ingesteld op alleen-lezen met behulp van de Setsitelock operatie in de stsadm command-line tool. Hiermee wordt voorkomen dat gebruikers activiteiten zoals het toevoegen of veranderen van de inhoud de back-up proces interfereren.  Wanneer de back-up voltooid is, wordt de toegang tot de siteverzameling weer opengezet.

Voorbeeldscript



Option Explicit
Const STSADM_PATH = "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe"
Dim objFso, objFsoDay, objFsoWeek, objFolder, objFile, objFiles, objShell, objExec, objXml, objSc, objUrl, strUrl, strFileName, strCmd, strResult, datThisDay, datThisMonth, datThisYear, datCurrent, strAction, objFolderWeekOfYear, objShellDay, objFilesDay, objFileDay, strDirectory, strDailyBackupFolder, datDate, datLongDate, weekOfYear, strFolderWeekOfYear, objFolderWeek, objShellWeek, BasePath, i, fso, f, f1, sf, CalcResult, fNameArray(),fName

BasePath = "\\DEMOSERVER\Backups\BackupFolder\"
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.GetFolder(BasePath)
Set objFiles = objFolder.Files

datDate = Now()
weekOfYear = DatePart("ww",datDate)
strFolderWeekOfYear = objFolder &"\"& weekOfYear

'Delete Backup Folders older then 10 days old.
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(BasePath)
Set sf = f.SubFolders
For Each f1 in sf
     CalcResult = DateDiff("d",f1.DateCreated,Now)
		  if CalcResult > 10 then
                ReDim preserve fNameArray(i)
                fNameArray(i) = f1.Name
                i = i + 1
        end if
Next

For Each fName in fNameArray
    fso.DeleteFolder(BasePath & "\" & fName)
Next

' Create the Folder for "Week of Year"
Set objFsoWeek = CreateObject("Scripting.FileSystemObject")

If objFsoWeek.FolderExists(strFolderWeekOfYear) Then
   Set objFolderWeek = objFsoWeek.GetFolder(strFolderWeekOfYear)
Else
	Set objFolderWeek = objFsoWeek.CreateFolder(strFolderWeekOfYear)

End If

If err.number = vbEmpty then
   Set objShellWeek = CreateObject("WScript.Shell")
   objShellWeek.run ("Explorer" &" " & strFolderWeekOfYear & "\" )
Else WScript.echo "VBScript Error: " & err.number
End If

' Create the Folder for "Daily Backup"
datLongDate = FormatDateTime(datDate, 1)
strDailyBackupFolder = "\"& Replace(datLongDate, ",", "") & "\"
strDirectory = strFolderWeekOfYear & strDailyBackupFolder

Set objFsoDay = CreateObject("Scripting.FileSystemObject")

If objFsoDay.FolderExists(strDirectory) Then
   Set objFolderWeekOfYear = objFsoDay.GetFolder(strDirectory)
   Set objFilesDay = objFolderWeekOfYear.Files
	For Each objFileDay in objFilesDay
		objFileDay.Delete(True)
	Next
   Else
   Set objFolderWeekOfYear = objFsoDay.CreateFolder(strDirectory)

End If

If err.number = vbEmpty then
   Set objShellDay = CreateObject("WScript.Shell")
   objShellDay.run ("Explorer" &" " & strDirectory & "\" )
Else WScript.echo "VBScript Error: " & err.number
End If

datThisDay = DatePart("d", Date())
datThisMonth = DatePart("m", Date())
datThisYear = DatePart("yyyy", Date())

datCurrent = datThisYear & "_" & datThisMonth & "_" &datThisDay

Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec(STSADM_PATH & " -o enumsites -url http://DEMOSERVER:32191/")
strResult = objExec.StdOut.ReadAll

Set objXml = CreateObject("MSXML2.DOMDocument")
objXml.LoadXML(strResult)
Dim strCmdGetSiteLock, strCmdSetSiteLock, strCmdSetSiteUnLock, objShellGetSiteLock,objShellSetSiteLock,objShellUnLockSite
Set objShellGetSiteLock = CreateObject("WScript.Shell")
Set objShellSetSiteLock = CreateObject("WScript.Shell")
Set objShellUnLockSite = CreateObject("WScript.Shell")

'Loop through each site collection and call stsadm.exe to make a backup.
For Each objSc in objXml.DocumentElement.ChildNodes

	strUrl = objSc.Attributes.GetNamedItem("Url").Text
	strFileName = strDirectory & "Backup_WebAppName" & Replace(Replace(strUrl, "http://DEMOSERVER", ""),":32191", "_") & datCurrent & ".bak"

	'Locking site collection before the backup process starts

	strCmdGetSiteLock = STSADM_PATH & " -o getsitelock -url """ + strUrl + """"
	strCmdSetSiteLock = STSADM_PATH & " -o setsitelock -url """ + strUrl + """ -lock readonly "

	objShellGetSiteLock.Exec(strCmdGetSiteLock)
	objShellSetSiteLock.Exec(strCmdSetSiteLock)
	'Site locked

	strCmd = STSADM_PATH & " -o backup -url """ + strUrl + """ -filename """ + strFileName + """"
	strAction = "Backing up site collection " & strUrl & " to file " & strFileName & " using the following command " & strCmd

	objShell.Exec(strCmd)

	'UnLocking site collection after the backup process ends
	strCmdSetSiteUnLock = STSADM_PATH & " -o setsitelock -url """ + strUrl + """ -lock none "
	objShellUnLockSite.Exec(strCmdSetSiteUnLock)

	'Site lock removed
Next

Restore backup Siteverzameling



C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\STSADM.exe" -o restore  -url "http://demoserver:32191/" -filename "\\DEMOSERVER\Backups\BackupFolder\Backup_WebAppName_2009_12_3.bak" -overwrite

  1. december 10, 2009 om 20:54

    Je kunt ook nog de content databases back-uppen met behulp van jobs in SQL server. Deze kan je later weer terug koppelen als content database.

    Wat zijn jou ervaringen hier mee?

  1. No trackbacks yet.
Reacties zijn gesloten.