Backing up a SharePoint 2010 farm

here are a lot of good scripts out there to use for backing up your SharePoint.  This one is one of my favorites:

http://spfarmbackup.codeplex.com/

Just download it, unzip it, create a folder to store your backups, share that folder complete the Params.xml and you’re about ready to go!

Read this detailed instruction guide written by the scripts author for step-by-step instructions:  http://www.darrenmarsden.com/file.axd?file=2013%2f1%2fPreparing+for+%26+Configuring+the+SharePoint+Farm+Backup+Script.pdf

Here is another, and probably the best script for backing up your SharePoint Farm.  It is written by John Ferringer, a SharePoint Guru – http://gallery.technet.microsoft.com/scriptcenter/9b99c435-8831-4c9e-a70b-1f13158ef22a

If the Ferringer solution or the codeplex solution above seems a bit to daunting, you can copy and paste the powerhsell from this blog: http://bradcote.wordpress.com/2012/05/02/powershell-script-to-backup-site-collections/ into a .ps1 file and then set it up to run as a scheduled task using credentials that have Shell admin access and full control over the shared network location where the backups will be stored.

You’ll need to share a folder for the script to write into.  Here is the powershell script from bradcote with a few additional notes

# Backup all site collections in the farm, placing them in
# a directory on a shared location
# Note - Does not backup the /train site collection
# adds the SharePoint cmdlets to your powershell and effectively turns it into the SharePoint
#Management Shell

Add-PsSnapin Microsoft.SharePoint.PowerShell

# Take care of the disposable objects to prevent memory leak.
Start-SPAssignment -Global

# This is the backup path - must be shared with account that is executing the script and the
# farm account
$backupLocation="\\\SharePointBackups"

# Remove all that backup folders created > 7 days ago
get-childitem $backupLocation |
where {$_.Lastwritetime -lt (date).adddays(-7)} |
remove-item -recurse -Confirm:$false

# Get current date for use in log file and format it to avoid
# invalid characters such as "/" and ":"

$today=Get-Date -format "MM-dd-yyyy HH.mm.ss"

# Create a folder in the backup location with todays date (sortable)

$todayFolder = $backupLocation + '\' + $((get-date).toString('MM-dd-yyyy'))
$logFile="$todayFolder\BackupLog.log"
md $todayFolder

# Does not backup the /train site collection
# or the temporary web ap site collection on port 15702
# Disregard this, or use it, depending on whether you have a /train site collection, etc.

foreach ($site in get-spsite -limit all |
where-object -FilterScript {$_.url -notlike "*/train*"} |
where-object -FilterScript {$_.url -notlike "*15702"}) {
write-Host Start backing up $site to $todayFolder
try {
# Create a new backup file and name it based on current date.
# If you want to create only 1 backup file and overwrite it
# each time the backup is run, you can replace "$today.bak"
# with your desired file name.
$pathName = ($todayFolder + '\' + $($site.ID) + '.bak')
write-Host 'Backing up ' $site ' GUID = ' $($site.ID)

# This farm does not have Enterprise SQL Server, so snapshots
# cannot be used. This requires that the sites belocked for
# update during the backup, so this should be run after hours
Backup-SPSite -Identity $site -Path $pathName -EV Err
-EA "SilentlyContinue"
write-Host Backup succeeded.

# Write success message to the log file
write "$today $site GUID =
$($site.ID) successfully backed up.">>logFile
} catch {
write-Host Backup failed. See $logFile for more information.
# Write error message to the log file
# change the logFile to some other name if you want, e.g. BackupHistory.txt
$e = $Err[0].ToString()
write "$today $site Error: $e">>logFile
}
}
Stop-SPAssignment -Global
Remove-PsSnapin Microsoft.sharepoint.powershell
write-Host "Finished script."

 

 

This blog has another script that you can use, also an easier to use version:

http://www.mysharepointadventures.com/2012/05/powershell-script-to-backup-farm-configuration-and-service-applications/

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Make sure to update these variables:

#Variables
$logfile = "SPFarm-Backup-" + $(Get-Date -Format dd-MM-yy) + ".log"
$ConfigDB = "SP_Config"
$DBServer = "server"
$BackupConfigFolder = "\\server\SharePoint\Backup\Config"
$BackupSAFolder = "\\server\SharePoint\Backup\ServiceApp"
$AdminEmail = <a href="mailto:admin@sharepoint.com">admin@sharepoint.com</a>
$MailServer = "mail.sharepoint.com"
$FromAddress = <a href="mailto:sharepoint.notifications@sharepoint.com">sharepoint.notifications

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Microsoft TechNet – http://technet.microsoft.com/en-us/library/ee428316.aspx – Backing up a Farm in SharePoint 2013

Petri blog – backup and restore advice – Good Read http://www.petri.co.il/how-to-backup-restore-sharepoint-2013.htm

John Ferringer on backups – http://mycentraladmin.wordpress.com/2011/07/11/use-powershell-to-back-up-your-sharepoint-farm/

Microsoft’s scripting guy defers to John Ferringer – http://blogs.technet.com/b/heyscriptingguy/archive/2011/06/22/use-powershell-to-back-up-your-sharepoint-farm.aspx – same here

Cheers,
Stacy