<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Exchange Server Pro &#187; Backups</title>
	<atom:link href="http://exchangeserverpro.com/tag/backups/feed" rel="self" type="application/rss+xml" />
	<link>http://exchangeserverpro.com</link>
	<description>Microsoft Exchange Server News - Tips - Tutorials</description>
	<lastBuildDate>Tue, 22 May 2012 11:37:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>How to Set Up an Automated Exchange 2010 Database Backup Alert Email</title>
		<link>http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email</link>
		<comments>http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email#comments</comments>
		<pubDate>Mon, 30 Apr 2012 13:11:21 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Mailbox Server]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=4242</guid>
		<description><![CDATA[Learn how to use PowerShell to automatically monitor your Exchange Server 2010 database backups and send an alert email when recent backups have not been successful.]]></description>
			<content:encoded><![CDATA[<p>In recent articles I&#8217;ve taken you step by step through some techniques for <a href="http://exchangeserverpro.com/powershell-how-to-send-email">sending email from PowerShell scripts</a>. If you haven&#8217;t read those articles yet you can find them here:</p>
<ul>
<li><a href="http://exchangeserverpro.com/powershell-how-to-send-email">Part 1 – How to Send SMTP Email Using PowerShell</a></li>
<li><a href="http://exchangeserverpro.com/powershell-email-message-body">Part 2 - How to Add a Message Body to Emails Sent from Scripts</a></li>
<li><a href="http://exchangeserverpro.com/powershell-send-html-email">Part 3 - How to Add a HTML Message Body to Emails Sent from Scripts</a></li>
<li><a href="http://exchangeserverpro.com/powershell-html-email-formatting">Part 4 - How to Create Formatted HTML Output from Scripts</a></li>
</ul>
<p>I also shared with you a script that can be used to <a href="http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups">check Exchange Server 2010 database backups</a> and alert you to any that have not had a recent backup.</p>
<p>Now it&#8217;s time to bring all of that information together and demonstrate how you can set up an automated database backup alert email for your <a href="http://exchangeserverpro.com">Exchange Server 2010</a> environment.</p>
<p>The two components of this are:</p>
<ul>
<li>The PowerShell script itself (we&#8217;ll use the one mentioned earlier but with some modifications to email-enable it)</li>
<li>Task Scheduler for automatically running the script each day</li>
</ul>
<h2>Script for Exchange Server 2010 Database Backup Email Alerts</h2>
<p>To email-enable the script I&#8217;ve made just a few modifications. The original script used this conditional logic to display the report in the PowerShell window.</p>
<pre>#If alert flag is true output the report
if ($alertflag -eq $true )
{
	Write-Host "The following databases have not been backed up in" $threshold "hours."
	$alerts | ft -AutoSize
}
else
{
	Write-Host "No backup alerts required."
}</pre>
<p>To change this to send an email alert we can use this code instead:</p>
<pre>#If alert flag is true send the email alert
if ($alertflag -eq $true )
{
	#HTML styles for nice formatting
        $style = "&lt;style&gt;BODY{font-family: Arial; font-size: 10pt;}"
	$style = $style + "TABLE{border: 1px solid black; border-collapse: collapse;}"
	$style = $style + "TH{border: 1px solid black; background: #CC0000; padding: 5px; color: #FFFFFF;}"
	$style = $style + "TD{border: 1px solid black; padding: 5px; }"
	$style = $style + "&lt;/style&gt;"

        #SMTP options for sending the report email
	$smtpServer = "ho-ex2010-caht1.exchangeserverpro.net"
	$smtpFrom = "reports@exchangeserverpro.net"
	$smtpTo = "administrator@exchangeserverpro.net"
	$messageSubject = "Exchange Backup Alerts"

        $intro = "The following databases have not been backed up in " + $threshold + " hours.&lt;BR&gt;&lt;BR&gt;"
	$report = $alerts | ConvertTo-Html -Fragment

	#Get ready to send email message
	$message = New-Object System.Net.Mail.MailMessage $smtpfrom, $smtpto
	$message.Subject = $messageSubject
	$message.IsBodyHTML = $true
	$message.Body = ConvertTo-Html -Body "$intro $report" -Head $style

	#Send email message
	$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
	$smtp.Send($message)

}</pre>
<p>If any parts of that don&#8217;t make sense just refer to the previous tutorials on sending email with PowerShell.</p>
<p class="alert"><strong>Download the script file here:</strong> <a class="downloadlink" href="http://exchangeserverpro.com/wp-content/plugins/download-monitor/download.php?id=Get-DailyBackupAlerts.zip" title="Version 1.0 downloaded 197 times" >Get-DailyBackupAlerts.ps1</a> (downloaded 197 times so far)</p>
<p>If you&#8217;re using this script in your environment you will need to change the SMTP options to suit.</p>
<pre>
#SMTP options for sending the report email
$smtpServer = "ho-ex2010-caht1.exchangeserverpro.net"
$smtpFrom = "reports@exchangeserverpro.net"
$smtpTo = "administrator@exchangeserverpro.net"
$messageSubject = "Exchange Backup Alerts"
</pre>
<p>Save the script as <strong>Get-DailyBackupAlerts.ps1</strong> in a folder called <strong>C:\Scripts</strong> on the server where you would like it to run each day. Note that the script depends on the Exchange Server 2010 management tools, so they will also need to be installed.</p>
<h2>Using Task Scheduler to Run PowerShell Scripts</h2>
<p>Now we need to configure the scheduled task in Task Scheduler. On a Windows Server 2008 server you&#8217;ll find this in the <strong>Administrative Tools</strong>. After you&#8217;ve launched Task Scheduler click on <strong>Create Task</strong>.</p>
<p><img class="aligncenter size-full wp-image-4243" title="task-scheduler-powershell-script-01" src="http://exchangeserverpro.com/wp-content/uploads/2011/11/task-scheduler-powershell-script-01.jpg" alt="" width="305" height="290" />Give the task a meaningful name, set it to <strong>Run whether user is logged on or not</strong>, and also if necessary change the user account that it will run as (you may wish to create a special Exchange administrative account with a strong password for running these types of scripts).</p>
<p><img class="aligncenter size-full wp-image-4244" title="task-scheduler-powershell-script-02" src="http://exchangeserverpro.com/wp-content/uploads/2011/11/task-scheduler-powershell-script-02.jpg" alt="" width="590" height="439" />On the <strong>Triggers</strong> tab click new and add a <strong>Weekly</strong> trigger for each of your normal business days that you want the script to run (eg Monday &#8211; Friday). Set the <strong>Start</strong> time to suit your normal backups finishing time and your own work schedule.</p>
<p><img class="aligncenter size-full wp-image-4245" title="task-scheduler-powershell-script-03" src="http://exchangeserverpro.com/wp-content/uploads/2011/11/task-scheduler-powershell-script-03.jpg" alt="" width="556" height="439" /></p>
<p>On the <strong>Actions</strong> tab click <strong>New</strong> and add an action of Start a program. Configure the program of <strong>powershell.exe</strong> and the arguments <strong>-command &#8220;c:\scripts\get-dailybackupalerts.ps1&#8243;</strong></p>
<p><img class="aligncenter size-full wp-image-4248" title="task-scheduler-powershell-script-04" src="http://exchangeserverpro.com/wp-content/uploads/2011/11/task-scheduler-powershell-script-04.jpg" alt="" width="552" height="428" /></p>
<p>&nbsp;</p>
<p>Click <strong>OK</strong> to finish creating the new task. You will be prompted to enter the credentials for the account that you configured the task to run as.</p>
<p>Now you can test the scheduled task by right-clicking on it in the Task Scheduler Library and choosing <strong>Run</strong>.</p>
<p><img class="aligncenter size-full wp-image-4247" title="task-scheduler-powershell-script-05" src="http://exchangeserverpro.com/wp-content/uploads/2011/11/task-scheduler-powershell-script-05.jpg" alt="" width="503" height="244" />Assuming you have some databases that have not backed up recently you should receive an alert email shortly after running the scheduled task.</p>
<p><em>Note: if your backups are all up to date you can test the script by changing the <strong>$threshold</strong> variable to something very low such as <strong>1</strong>.</em></p>
<p><img class="aligncenter size-full wp-image-4249" title="exchange-2010-backup-alert-email" src="http://exchangeserverpro.com/wp-content/uploads/2011/11/exchange-2010-backup-alert-email.jpg" alt="" width="590" height="229" /></p>
<p class="alert"><strong>Download the script file here:</strong> <a class="downloadlink" href="http://exchangeserverpro.com/wp-content/plugins/download-monitor/download.php?id=Get-DailyBackupAlerts.zip" title="Version 1.0 downloaded 197 times" >Get-DailyBackupAlerts.ps1</a> (downloaded 197 times so far)</p>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups" title="PowerShell Script: Check Exchange 2010 Database Backups">PowerShell Script: Check Exchange 2010 Database Backups</a></li><li><a href="http://exchangeserverpro.com/powershell-script-check-exchange-mailbox-database-backup-time" title="PowerShell Script: Check Exchange Mailbox Database Last Backup Time">PowerShell Script: Check Exchange Mailbox Database Last Backup Time</a></li><li><a href="http://exchangeserverpro.com/avoid-running-transaction-log-disk-space-exchange-servers" title="Avoid Running Out of Transaction Log Disk Space on Exchange Servers">Avoid Running Out of Transaction Log Disk Space on Exchange Servers</a></li><li><a href="http://exchangeserverpro.com/test-mailflow-exchange-2003-servers" title="Using Test-Mailflow with Exchange 2003 Servers">Using Test-Mailflow with Exchange 2003 Servers</a></li><li><a href="http://exchangeserverpro.com/health-check-exchange-2010-mailbox-server" title="How to Health Check an Exchange 2010 Mailbox Server">How to Health Check an Exchange 2010 Mailbox Server</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email">How to Set Up an Automated Exchange 2010 Database Backup Alert Email</a> is © 2012 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Avoid Running Out of Transaction Log Disk Space on Exchange Servers</title>
		<link>http://exchangeserverpro.com/avoid-running-transaction-log-disk-space-exchange-servers</link>
		<comments>http://exchangeserverpro.com/avoid-running-transaction-log-disk-space-exchange-servers#comments</comments>
		<pubDate>Sat, 28 Jan 2012 12:45:12 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[Storage]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=4398</guid>
		<description><![CDATA[Don't take the risk that your Exchange Servers will run out of transaction log disk space. Use this script to monitor and alert on failed backups that can cause service outages later on.]]></description>
			<content:encoded><![CDATA[<p>Paul Robichaux&#8217;s <a href="http://www.windowsitpro.com/content2/tabid/4436/catpath/exchange-server/topic/messaging-world-news-142038">recent Windows IT Pro column</a> contains this passage:</p>
<blockquote><p>If you don&#8217;t know when you&#8217;re about to run out of disk space on the log LUN, you&#8217;re totally doing it wrong. It leaves me slack-jawed with astonishment that in 2012 we still have administrators who suffer unplanned downtime due to log volumes filling up because of poor design or problems with backups. Stop the madness! Check your backups regularly and use monitoring, be it however primitive, to ensure that you don&#8217;t have this problem.</p></blockquote>
<p>Paul is referring to <a href="http://blogs.technet.com/b/exchange/archive/2011/11/09/capacity-planning-yes-transaction-log-space-is-critical-to-keeping-your-databases-healthy-and-mounted.aspx">this post</a> on the MS Exchange Team blog, which mentions that:</p>
<blockquote><p>&#8230;the number one reason why our Premier customers open Exchange 2010 critical situations is because Mailbox databases dismount due to running out of disk space on the transaction log LUN.</p></blockquote>
<p>Either I missed that post when it was published a few months ago or I glossed over it and it didn&#8217;t catch my attention enough.</p>
<p>I&#8217;ve been stung by transaction log disks running out of space, even as recently as last year. I work in a very large Exchange environment where backups and storage monitoring are performed by two different teams, both of them outside of my team.</p>
<p>That puts us in the situation where failed backups, combined with either a storage monitoring problem or a human error in the escalation processes can (and has) caused a log volume to fill up. Another situation that can arise is when new servers are provisioned, our help desks begin putting mailboxes on them before they&#8217;ve been added to the backups.</p>
<p>Which is why I wrote this <a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email">script to check the Exchange database backups</a> and alert my team when they have not been backed up in the 48 hours or more. In fact that script is a better version than the one we run in production (I haven&#8217;t ported over the improvements I later made at home to the original).</p>
<p>Ever since we put it in place that script has alerted us to numerous situations before they could evolve into disasters.</p>
<p>Setting it up as a scheduled task to run daily is a job that will take you less than half an hour. I highly recommend it, not just because I wrote the script, but because it adds a valuable layer of protection to your environment.</p>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email" title="How to Set Up an Automated Exchange 2010 Database Backup Alert Email">How to Set Up an Automated Exchange 2010 Database Backup Alert Email</a></li><li><a href="http://exchangeserverpro.com/powershell-script-check-exchange-mailbox-database-backup-time" title="PowerShell Script: Check Exchange Mailbox Database Last Backup Time">PowerShell Script: Check Exchange Mailbox Database Last Backup Time</a></li><li><a href="http://exchangeserverpro.com/exchange-server-update-rollups-forefront-fscutility" title="Dealing with Exchange Server Update Rollups and Forefront Protection for Exchange">Dealing with Exchange Server Update Rollups and Forefront Protection for Exchange</a></li><li><a href="http://exchangeserverpro.com/test-lab-email-traffic-generator-powershell-script" title="PowerShell Script to Generate Email Traffic in a Test Lab Environment">PowerShell Script to Generate Email Traffic in a Test Lab Environment</a></li><li><a href="http://exchangeserverpro.com/exchange-2010-automate-rebalancing-database-availability-group" title="Exchange 2010 FAQ: Can You Automate Rebalancing a Database Availability Group?">Exchange 2010 FAQ: Can You Automate Rebalancing a Database Availability Group?</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/avoid-running-transaction-log-disk-space-exchange-servers">Avoid Running Out of Transaction Log Disk Space on Exchange Servers</a> is © 2012 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/avoid-running-transaction-log-disk-space-exchange-servers/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PowerShell Script: Check Exchange 2010 Database Backups</title>
		<link>http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups</link>
		<comments>http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups#comments</comments>
		<pubDate>Sun, 06 Nov 2011 11:23:58 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange Management Shell]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=4227</guid>
		<description><![CDATA[A PowerShell script that can be used to monitor the backup time stamps on Exchange Server 2010 databases.]]></description>
			<content:encoded><![CDATA[<p>In almost any <a href="http://exchangeserverpro.com">Exchange Server 2010</a> environment there will be a good reason for adding some additional monitoring of backups.</p>
<p>Perhaps the environment is large enough that the backups are managed by a separate team to the Exchange administrators, and so the Exchange admins just want to keep an eye on their database backups. Or even in a smaller environment the administrators may just want to be sure that their backup software isn&#8217;t reporting successful backups when in fact they may be failing.</p>
<p>In this post I will demonstrate a PowerShell script that you can run in an Exchange Server 2010 environment to report on any databases that have not successfully backed up in the last 48 hours. Let&#8217;s take a look at how this works.</p>
<p>Firstly, backup time stamps are retrievable using the <a href="http://technet.microsoft.com/en-us/library/bb124924.aspx">Get-MailboxDatabase</a> cmdlet for mailbox databases, or <a href="http://technet.microsoft.com/en-us/library/aa998827.aspx">Get-PublicFolderDatabase</a> for public folder databases. Here is an example:</p>
<pre>PS C:\Scripts&gt; Get-MailboxDatabase -Status | ft name,last* -auto

Name     LastFullBackup       LastIncrementalBackup LastDifferentialBackup LastCopyBackup
----     --------------       --------------------- ---------------------- --------------
MB-HO-01 11/6/2011 1:40:19 PM
MB-HO-02
MB-HO-03
MB-BR-01</pre>
<p>You can see that one of the databases above has been backed up, but the others have not. In a script that checks both mailbox and public folder databases we could use this code to generate the report.</p>
<pre>$dbs = Get-MailboxDatabase -Status
$dbs = $dbs += Get-PublicFolderDatabase -Status
$dbs | ft name,last*</pre>
<p>Now we can see both the mailbox and the public folder databases.</p>
<pre>Name                    LastFullBackup          LastIncrementalBackup   LastDifferentialBackup  LastCopyBackup
----                    --------------          ---------------------   ----------------------  --------------
MB-HO-01                11/6/2011 1:40:19 PM
MB-HO-02
MB-HO-03
MB-BR-01
PF-HO-01                11/6/2011 1:40:20 PM
PF-BR-01</pre>
<p>It would be a simple matter to run that command and read the output every single day, but that would not be the most efficient way of checking database backups. There could be dozens or even hundreds of databases in that output, and we&#8217;d have to mentally perform the calculations to determine whether the backup time stamp is within the last 48 hours or not.</p>
<p>Instead we want to only to see databases that have not been backed up within the 48 hour threshold. To do this we can use some <a href="http://technet.microsoft.com/en-us/library/ff730960.aspx">date maths</a>. Because we&#8217;ve already retrieved the database objects into a collection called <strong>$dbs</strong> we can loop through them to perform the date calculations like this. Note that in this example only <a href="http://exchangeserverpro.com/introduction-to-exchange-server-2010-backup-and-recovery">Full and Incremental backups</a> are being considered.</p>
<pre>foreach ($db in $dbs)
{
	Write-Host -ForegroundColor Gray "Checking" $db.name"..."

	$lastbackup = @{}
	$ago = @()
	[bool]$alertflag = $false

	if ( $db.LastFullBackup -eq $nul -and $db.LastIncrementalBackup -eq $nul)
	{
		$lastbackup.time = "Never"
		$lastbackup.type = "Never"
		[string]$ago = "Never"
	}
	elseif ( $db.LastFullBackup -lt $db.LastIncrementalBackup )
	{
		$lastbackup.time = $db.LastIncrementalBackup
		$lastbackup.type = "Incremental"
		[int]$ago = ($now - $lastbackup.time).TotalHours
		$ago = "{0:N0}" -f $ago
	}
	elseif ( $db.LastIncrementalBackup -lt $db.LastFullBackup )
	{
		$lastbackup.time = $db.LastFullBackup
		$lastbackup.type = "Full"
		[int]$ago = ($now - $lastbackup.time).TotalHours
		$ago = "{0:N0}" -f $ago
	}
}</pre>
<p>One of three possible scenarios will be true:</p>
<ul>
<li>If the database has not been backed up at all then both Full and Incremental time stamps will be nul, so all of the resulting values are set to &#8220;Never&#8221;</li>
<li>If the most recent backup was an Incremental then the type is set to &#8220;Incremental&#8221; and the <strong>$ago</strong> variable is set to the number of hours that has passed since that Incremental backup finished</li>
<li>If the most recent backup was a Full then the type is set to &#8220;Full&#8221; and the <strong>$ago</strong> variable is set to the number of hours that has passed since that Full backup finished</li>
</ul>
<p>Now, because we&#8217;re only interested in databases that haven&#8217;t backed up in the last 48 hours (or have never been backed up at all) we can compare the $ago variable to our threshold of 48 hours, and if an alert needs to be raised set the alert flag to <strong>True</strong> and create an object with all of the desired information for our report.</p>
<pre>if ( $ago -gt $threshold -or $ago -eq "Never")
	{
		$alertflag = $true
		$dbObj = New-Object PSObject
		$dbObj | Add-Member NoteProperty -Name "Server/DAG" -Value $db.MasterServerOrAvailabilityGroup
		$dbObj | Add-Member NoteProperty -Name "Database" -Value $db.name
		$dbObj | Add-Member NoteProperty -Name "Database Type" -Value $dbtype
		$dbObj | Add-Member NoteProperty -Name "Last Backup Type" -Value $lastbackup.type
		$dbObj | Add-Member NoteProperty -Name "Hrs Ago" -Value $ago
		$dbObj | Add-Member NoteProperty -Name "Time Stamp" -Value $lastbackup.time
		$alerts = $alerts += $dbObj
	}</pre>
<p>That code actually goes inside the <a href="http://technet.microsoft.com/en-us/library/ee176828.aspx">ForEach loop</a> for the $dbs collection.</p>
<p>The final piece of the script is the report itself. We output it based on whether the alert flag is set to True or False.</p>
<pre>if ($alertflag = $true )
{
	Write-Host "The following databases have not been backed up in" $threshold "hours."
	$alerts | ft -AutoSize
}
else
{
	Write-Host "No backup alerts required."
}</pre>
<p>This example outputs the report to the PowerShell window but you could write your <a href="http://exchangeserverpro.com/powershell-how-to-send-email">PowerShell script to send an email report</a> instead if you wish.</p>
<p>Here is an example report:</p>
<pre>PS C:\Scripts&gt; .\Check-DatabaseBackups.ps1
Getting database list...
Checking MB-HO-01 ...
Checking MB-HO-02 ...
Checking MB-HO-03 ...
Checking MB-BR-01 ...
Checking PF-HO-01 ...
Checking PF-BR-01 ...
The following databases have not been backed up in 48 hours.

Server/DAG     Database Database Type Last Backup Type Hrs Ago Time Stamp
----------     -------- ------------- ---------------- ------- ----------
dag-headoffice MB-HO-02 Mailbox       Never            Never   Never
dag-headoffice MB-HO-03 Mailbox       Never            Never   Never
BR-EX2010-MB   MB-BR-01 Mailbox       Never            Never   Never
BR-EX2010-MB   PF-BR-01 Public Folder Never            Never   Never</pre>
<p>And here is the complete script.</p>
<pre>#
#.SYNOPSIS
#Checks the backup timestamps for the servers
#and alerts if a database hasn't been backed up
#in the last 48 hours
#
#.EXAMPLE
#.\Check-DatabaseBackups.ps1
#

#...................................
# Variables
#...................................

$ErrorActionPreference = "SilentlyContinue"
$WarningPreference = "SilentlyContinue"

$alerts = @()
[int]$threshold = 48

$now = [DateTime]::Now

#...................................
# Script
#...................................

#Get all Mailbox and Public Folder databases
Write-Host -ForegroundColor Gray "Getting database list..."
$dbs = Get-MailboxDatabase -Status
$dbs = $dbs += Get-PublicFolderDatabase -Status

#Check each database for most recent backup
foreach ($db in $dbs)
{
	Write-Host -ForegroundColor Gray "Checking" $db.name"..."

	$lastbackup = @{}
	$ago = @()
	[bool]$alertflag = $false

	if ( $db.LastFullBackup -eq $null -and $db.LastIncrementalBackup -eq $nul)
	{
		$lastbackup.time = "Never"
		$lastbackup.type = "Never"
		[string]$ago = "Never"
	}
	elseif ( $db.LastFullBackup -lt $db.LastIncrementalBackup )
	{
		$lastbackup.time = $db.LastIncrementalBackup
		$lastbackup.type = "Incremental"
		[int]$ago = ($now - $lastbackup.time).TotalHours
		$ago = "{0:N0}" -f $ago
	}
	elseif ( $db.LastIncrementalBackup -lt $db.LastFullBackup )
	{
		$lastbackup.time = $db.LastFullBackup
		$lastbackup.type = "Full"
		[int]$ago = ($now - $lastbackup.time).TotalHours
		$ago = "{0:N0}" -f $ago
	}

	if ($db.IsMailboxDatabase -eq $true) {$dbtype = "Mailbox"}
	if ($db.IsPublicFolderDatabase -eq $true) {$dbtype = "Public Folder"}

	#If backup time stamp older than threshold set alert flag and create object for alerting
	if ( $ago -gt $threshold -or $ago -eq "Never")
	{
		$alertflag = $true
		$dbObj = New-Object PSObject
		$dbObj | Add-Member NoteProperty -Name "Server/DAG" -Value $db.MasterServerOrAvailabilityGroup
		$dbObj | Add-Member NoteProperty -Name "Database" -Value $db.name
		$dbObj | Add-Member NoteProperty -Name "Database Type" -Value $dbtype
		$dbObj | Add-Member NoteProperty -Name "Last Backup Type" -Value $lastbackup.type
		$dbObj | Add-Member NoteProperty -Name "Hrs Ago" -Value $ago
		$dbObj | Add-Member NoteProperty -Name "Time Stamp" -Value $lastbackup.time
		$alerts = $alerts += $dbObj
	}
}

#If alert flag is true output the report
if ($alertflag -eq $true )
{
	Write-Host "The following databases have not been backed up in" $threshold "hours."
	$alerts | ft -AutoSize
}
else
{
	Write-Host "No backup alerts required."
}</pre>
<p class="alert">If you&#8217;d like to schedule this report to run each day and alert you by email when databases are not being backed up then <a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email">click here</a></p>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email" title="How to Set Up an Automated Exchange 2010 Database Backup Alert Email">How to Set Up an Automated Exchange 2010 Database Backup Alert Email</a></li><li><a href="http://exchangeserverpro.com/powershell-configuring-settings-multiple-exchange-mailbox-databases" title="PowerShell: Configuring Settings on Multiple Exchange Mailbox Databases">PowerShell: Configuring Settings on Multiple Exchange Mailbox Databases</a></li><li><a href="http://exchangeserverpro.com/powershell-script-check-exchange-mailbox-database-backup-time" title="PowerShell Script: Check Exchange Mailbox Database Last Backup Time">PowerShell Script: Check Exchange Mailbox Database Last Backup Time</a></li><li><a href="http://exchangeserverpro.com/powershell-script-create-mailbox-size-report-exchange-server-2010" title="Get-MailboxReport.ps1 &#8211; PowerShell Script to Generate Mailbox Reports">Get-MailboxReport.ps1 &#8211; PowerShell Script to Generate Mailbox Reports</a></li><li><a href="http://exchangeserverpro.com/test-mailflow-exchange-2003-servers" title="Using Test-Mailflow with Exchange 2003 Servers">Using Test-Mailflow with Exchange 2003 Servers</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups">PowerShell Script: Check Exchange 2010 Database Backups</a> is © 2011 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Exchange 2010: Are Passive Database Copies Included in Backups of DAG Members?</title>
		<link>http://exchangeserverpro.com/exchange-2010-passive-database-copies-included-backups-dag-members</link>
		<comments>http://exchangeserverpro.com/exchange-2010-passive-database-copies-included-backups-dag-members#comments</comments>
		<pubDate>Sun, 06 Nov 2011 04:23:45 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[DAG]]></category>
		<category><![CDATA[Disaster Recovery]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Mailbox Databases]]></category>
		<category><![CDATA[Mailbox Server]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=4217</guid>
		<description><![CDATA[When an Exchange Server 2010 Mailbox server that is a member of a Database Availability Group is backed up, does the backup also include passive database copies?]]></description>
			<content:encoded><![CDATA[<p>In my article on backup error <a href="http://exchangeserverpro.com/event-id-2137-windows-server-backup-completed-warnings-exchange-2010-mailbox-server">event id 2137</a> and what it means for <a href="http://exchangeserverpro.com">Exchange 2010</a> a reader <a href="http://exchangeserverpro.com/event-id-2137-windows-server-backup-completed-warnings-exchange-2010-mailbox-server#comment-2450">asked</a> whether backups of Exchange 2010 DAG members include both the active and passive database copies.</p>
<p class="alert"><strong>Update:</strong> <a href="http://technet.microsoft.com/en-us/library/dd979802.aspx">according to Microsoft</a>, &#8220;<em>All database copies can be backed up using an Exchange-aware, Volume Shadow Copy Service (VSS)-based backup application. However, the built-in support for Windows Server Backup is for active copies only. You can&#8217;t use Windows Server Backup to back up passive copies.</em>&#8221; The rest of the article below has been left unedited, however be aware that the example demonstrated is of an unsupported scenario</p>
<p>The short answer is yes, however there are some important considerations to be aware of. From <a href="http://technet.microsoft.com/en-us/library/dd876874.aspx">Microsoft TechNet</a>:</p>
<blockquote><p>Passive mailbox database copies are backed up using a separate VSS writer in the Microsoft Exchange Replication service. The Microsoft Exchange Replication service VSS Writer doesn&#8217;t support restores. <strong>Although you can back up a passive mailbox database copy using Microsoft System Center Data Protection Manager or a third-party Exchange-aware VSS-based application, you can&#8217;t perform a VSS restore directly to a passive mailbox database copy.</strong> However, you can perform a VSS restore to an alternate location, suspend replication to the passive copy, and then copy the database and log files from the alternate location to the location of the passive database copy in the file system.</p></blockquote>
<p>To demonstrate this, here you can see the mailbox databases <strong>MB-HO-*</strong> that are currently active on server <strong>HO-EX2010-MB2</strong>. They have no <strong>LastFullBackup</strong> timestamp because they have never been backed up.</p>
<pre>[PS] C:\&gt;Get-MailboxDatabase -status | ft name,mounted*,lastfull* -auto

Name     MountedOnServer                     Mounted LastFullBackup
----     ---------------                     ------- --------------
MB-HO-01 HO-EX2010-MB2.exchangeserverpro.net    True
MB-HO-02 HO-EX2010-MB2.exchangeserverpro.net    True
MB-HO-03 HO-EX2010-MB2.exchangeserverpro.net    True
MB-BR-01 BR-EX2010-MB.exchangeserverpro.net     True</pre>
<p>On server HO-EX2010-MB1 I ran a <a href="http://exchangeserverpro.com/exchange-2010-mailbox-database-backup-restore-windows-server-backup">mailbox server backup using Windows Server Backup</a>.</p>
<p><img class="aligncenter size-full wp-image-4218" title="exchange-2010-dag-backup" src="http://exchangeserverpro.com/wp-content/uploads/2011/11/exchange-2010-dag-backup.jpg" alt="" width="550" height="453" /></p>
<p>After the backup completed the following can be seen. First, the <strong>LastFullBackup</strong> time stamp has not been written.</p>
<pre>[PS] C:\&gt;Get-MailboxDatabase -status | ft name,mounted*,lastfull* -auto

Name     MountedOnServer                     Mounted LastFullBackup
----     ---------------                     ------- --------------
MB-HO-02 HO-EX2010-MB2.exchangeserverpro.net    True
MB-HO-01 HO-EX2010-MB2.exchangeserverpro.net    True
MB-HO-03 HO-EX2010-MB2.exchangeserverpro.net    True</pre>
<p>Next, the disk that the backups were written to contain VHD files matching the size of the data stored on the backed up volumes. For example, the F: (Data) drive holds about 2Gb of data, and the VHD for that volume is about the same size.</p>
<p><img class="aligncenter size-full wp-image-4219" title="exchange-2010-dag-backup-vhd-01" src="http://exchangeserverpro.com/wp-content/uploads/2011/11/exchange-2010-dag-backup-vhd-01.jpg" alt="" width="590" height="71" />Because we can mount the VHD as a disk on the server we have the opportunity to inspect the contents inside of it.</p>
<p><img class="aligncenter size-full wp-image-4220" title="exchange-2010-dag-backup-vhd-02" src="http://exchangeserverpro.com/wp-content/uploads/2011/11/exchange-2010-dag-backup-vhd-02.jpg" alt="" width="343" height="198" />We can see that even though it was not the active databases at the time of the backup, the EDB file for database MB-HO-01 (and others) was still backed up by the server.</p>
<pre>[PS] C:\&gt;Get-ChildItem H:\ -Recurse | where {$_.name -like "*.edb"} | select name

Name
----
HO-PF-01.edb
MB-HO-01.edb
MB-HO-02.edb
MB-HO-03.edb
PF-HO-01.edb</pre>
<p>Next I&#8217;ll run another backup of HO-EX2010-MB1, but this time the mailbox database <strong>MB-HO-01</strong> has been made active on <strong>HO-EX2010-MB1</strong>.</p>
<p>This time the <strong>LastFullBackup</strong> time stamp is written to the database.</p>
<pre>[PS] C:\&gt;Get-MailboxDatabase -status | ft name,mounted*,lastfull* -auto

Name     MountedOnServer                     Mounted LastFullBackup
----     ---------------                     ------- --------------
MB-HO-01 HO-EX2010-MB1.exchangeserverpro.net    True 11/6/2011 1:40:19 PM
MB-HO-02 HO-EX2010-MB2.exchangeserverpro.net    True
MB-HO-03 HO-EX2010-MB2.exchangeserverpro.net    True
MB-BR-01 BR-EX2010-MB.exchangeserverpro.net     True</pre>
<p>So what do we learn from this?</p>
<p class="alert">Reminder, the below should be read in conjunction with the notice at the start of the article, as backing up passive database copies using Windows Server Backup is not a supported scenario</p>
<ul>
<li>Yes, passive database copies stored on a volume are backed up by Windows Server Backup</li>
<li>Yes, this allows backups of passive database copies to be restored, although not directly</li>
<li>Yes, this would allow a backup of a passive database copy to be used for disaster recovery of a database</li>
<li>No, the backup time stamp is not written when a passive database copy is backed up, so any monitoring of backups that involves checking that time stamp needs to take that into consideration</li>
</ul>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/exchange-recovery-failed-dag-member-exchange-server-2010" title="Exchange Recovery: Failed DAG Member in Exchange Server 2010">Exchange Recovery: Failed DAG Member in Exchange Server 2010</a></li><li><a href="http://exchangeserverpro.com/managing-the-replication-source-for-exchange-server-2010-mailbox-database-reseed" title="Managing the Replication Source for Exchange Server 2010 Mailbox Database Reseed">Managing the Replication Source for Exchange Server 2010 Mailbox Database Reseed</a></li><li><a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email" title="How to Set Up an Automated Exchange 2010 Database Backup Alert Email">How to Set Up an Automated Exchange 2010 Database Backup Alert Email</a></li><li><a href="http://exchangeserverpro.com/how-to-install-updates-on-exchange-server-2010-database-availability-groups" title="How to Install Updates on Exchange Server 2010 Database Availability Groups">How to Install Updates on Exchange Server 2010 Database Availability Groups</a></li><li><a href="http://exchangeserverpro.com/review-exchange-server-2010-backup-recovery-training" title="Review: Exchange Server 2010 Backup and Recovery Training">Review: Exchange Server 2010 Backup and Recovery Training</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/exchange-2010-passive-database-copies-included-backups-dag-members">Exchange 2010: Are Passive Database Copies Included in Backups of DAG Members?</a> is © 2011 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/exchange-2010-passive-database-copies-included-backups-dag-members/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review: Exchange Server 2010 Backup and Recovery Training</title>
		<link>http://exchangeserverpro.com/review-exchange-server-2010-backup-recovery-training</link>
		<comments>http://exchangeserverpro.com/review-exchange-server-2010-backup-recovery-training#comments</comments>
		<pubDate>Sun, 21 Aug 2011 12:23:35 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[Disaster Recovery]]></category>
		<category><![CDATA[Exchange 2010]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=3955</guid>
		<description><![CDATA[A review of the Exchange Server 2010 Backup and Recovery training product from TrainSignal.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-1819" title="tapedrive" src="http://exchangeserverpro.com/wp-content/uploads/2010/08/tapedrive.jpg" alt="" width="250" height="138" />How many times have you seen a forums thread that goes something like this:</p>
<ol>
<li>System administrator has recently started at a new job</li>
<li>Something goes wrong &#8211; an Exchange server crashes or somebody deletes some emails they didn&#8217;t mean to</li>
<li>System administrator looks into it, and discovers that the Exchange server is not being backed up</li>
<li>They don&#8217;t know what to do next</li>
</ol>
<p>I&#8217;ve seen that a lot. I&#8217;ve also had my fair share of phone calls with customers dealing with Exchange server problems and asked them when was their last successful backup. Sadly the answer is often &#8220;I don&#8217;t know&#8221;.</p>
<h2>Exchange Server Backups &#8211; Serious Business</h2>
<p>Sometimes I really do wonder if people realise how important <a href="http://exchangeserverpro.com/introduction-to-exchange-server-2010-backup-and-recovery">Exchange Server backups</a> are. Often the people that do realise it are those that have been burned by a serious disaster in the past.</p>
<p>Nobody wants to be the IT guy who has to explain why data has been lost forever. But a stunning number of people I meet really don&#8217;t know that much about backup and recovery, particular for Exchange servers.</p>
<p>I suspect that one of the reasons is that there is no Microsoft certification for backup and recovery. With no exam to study for, and no credential to earn, it just isn&#8217;t a topic that many people seem to proactively learn.</p>
<p>But take it from me, Exchange Server backup and recovery skills are among the most important ones that you can have as an IT professional.</p>
<h2>Exchange Server 2010 Backup and Recovery Training</h2>
<p>Because of how important these skills are, and because of how many nights I&#8217;ve lost trying to recover data for customers, I&#8217;m very glad to see that TrainSignal has come out with an <a href="http://exchangeserverpro.com/recommends/exchange2010backuptraining">Exchange Server 2010 Backup and Recovery training course</a>.</p>
<p>The instructor for this course is J. Peter Bruzzese, the same guy who teaches the <a href="http://exchangeserverpro.com/recommends/trainsignal70662">70-662</a> and <a href="http://exchangeserverpro.com/recommends/trainsignal70663">70-663</a> training courses from TrainSignal. As an Exchange MVP, MCT, and long time consultant J. Peter is the right person to teach this subject, and he has delivered yet another high quality training program.</p>
<p>The training goes into more depth on the concepts of Exchange Server 2010 backup and recovery than most other training I&#8217;ve seen. Backups tend to get shoe horned into a single module of broader product training. This is the first training program I&#8217;ve seen that sticks to just the topic of backup and recovery &#8211; deep dive training at it&#8217;s best.</p>
<p>There is a good mix of theory and practice in the 16 lessons. To give you an example of why the theory is so important here is the overview for <strong>Lesson 5: Storage Architecture and Backup/Recovery Basics</strong>.</p>
<blockquote><p>If you truly want to be able to recover your data, you need to understand the storage architecture in Exchange. That may sound deeper than it is, but ultimately we are looking at how Exchange takes an email and puts it in a database, and the steps along the way. Then we will discuss some best practices and theory with those databases, along with an understanding of Exchange provides some built in resiliency to help you avoid having to restore from a backup (because that is the LAST thing you really want to do).</p></blockquote>
<p>That is the kind of deep understanding that is hard to pick up just from on the job experience.</p>
<p><img class="aligncenter size-full wp-image-3956" title="exchange-2010-backup-training-01" src="http://exchangeserverpro.com/wp-content/uploads/2011/08/exchange-2010-backup-training-01.jpg" alt="" width="580" height="461" /></p>
<p>The practical lessons are also very useful. It would be difficult to create a practical training course that covers everything about backup and recovery because there are just too many different backup products out there.</p>
<p><img class="aligncenter size-full wp-image-3957" title="exchange-2010-backup-training-02" src="http://exchangeserverpro.com/wp-content/uploads/2011/08/exchange-2010-backup-training-02.jpg" alt="" width="580" height="438" /></p>
<p>In this training program you&#8217;ll learn how to use Windows Server Backup and Microsoft Data Protection Manager to backup and restore Exchange Server 2010. Those are fine, but probably aren&#8217;t going to be the most common backup solutions you encounter in the real world.</p>
<p><img class="aligncenter size-full wp-image-3958" title="exchange-2010-backup-training-03" src="http://exchangeserverpro.com/wp-content/uploads/2011/08/exchange-2010-backup-training-03.jpg" alt="" width="580" height="436" /></p>
<p>However they do teach you the most important side of Exchange Server 2010 backup and recovery &#8211; the Exchange server side of it. Those are the most important skills to have, and you can carry them between different backup solutions as you need to.</p>
<h2>What You Get with TrainSignal&#8217;s Exchange Server 2010 Backup and Recovery Training</h2>
<p>When you <a href="http://exchangeserverpro.com/recommends/exchange2010backuptraining">buy the training package</a> you get instant online access to the lessons, as well as a set of physical DVD&#8217;s that are shipped out to you. I&#8217;ve always enjoyed how quickly they show up at my door, usually within 7 days and for me they have to be shipped all the way to Australia. I&#8217;m used to waiting weeks for stuff to arrive from overseas.</p>
<p>There are nearly 8 hours of video lessons. This is focussed training that you can sit down and work through in a few days or a week and quickly achieve a result.</p>
<p>The DVD&#8217;s also include MP3 audio versions of the lessons. I&#8217;m a big fan of audio based learning, especially for the more theory-based lessons. Listening to them multiple times while travelling or doing other tasks really helps the information sink in.</p>
<p>Like I said earlier, there is no certification exam for this topic. You won&#8217;t earn an MCP or MCTS by completing the training. But you will learn some of the most valuable, and unfortunately the most rare, technical skills for IT professionals working with Microsoft Exchange Server.</p>
<p><a href="http://exchangeserverpro.com/recommends/exchange2010backuptraining">Click here</a> to find out more about <a href="http://exchangeserverpro.com/recommends/exchange2010backuptraining">TrainSignal&#8217;s Exchange Server 2010 Backup and Recovery Training</a>.</p>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/exchange-2010-passive-database-copies-included-backups-dag-members" title="Exchange 2010: Are Passive Database Copies Included in Backups of DAG Members?">Exchange 2010: Are Passive Database Copies Included in Backups of DAG Members?</a></li><li><a href="http://exchangeserverpro.com/some-recent-articles" title="Some Recent Articles">Some Recent Articles</a></li><li><a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email" title="How to Set Up an Automated Exchange 2010 Database Backup Alert Email">How to Set Up an Automated Exchange 2010 Database Backup Alert Email</a></li><li><a href="http://exchangeserverpro.com/avoid-running-transaction-log-disk-space-exchange-servers" title="Avoid Running Out of Transaction Log Disk Space on Exchange Servers">Avoid Running Out of Transaction Log Disk Space on Exchange Servers</a></li><li><a href="http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups" title="PowerShell Script: Check Exchange 2010 Database Backups">PowerShell Script: Check Exchange 2010 Database Backups</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/review-exchange-server-2010-backup-recovery-training">Review: Exchange Server 2010 Backup and Recovery Training</a> is © 2011 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/review-exchange-server-2010-backup-recovery-training/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exchange 2010 FAQ: Why is My Disk Filling Up with Log Files?</title>
		<link>http://exchangeserverpro.com/exchange-2010-faq-disk-filling-log-files</link>
		<comments>http://exchangeserverpro.com/exchange-2010-faq-disk-filling-log-files#comments</comments>
		<pubDate>Tue, 17 May 2011 12:00:56 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Mailbox]]></category>
		<category><![CDATA[Transaction Logs]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=3469</guid>
		<description><![CDATA[Exchange Server 2010 customers sometimes ask why their server disk drive is filling up with log files. This article explains why.]]></description>
			<content:encoded><![CDATA[<p><a href="http://exchangeserverpro.com">Exchange Server 2010</a> customers sometimes ask why their server disk drive is filling up with log files. Usually they are referring to the transaction log files created by the mailbox databases.</p>
<p>Each <a title="Why Is My Exchange 2010 Mailbox Database Growing So Big?" href="http://exchangeserverpro.com/exchange-2010-mailbox-database-growing-big-fast">Exchange 2010 mailbox database</a> comprises two main parts:</p>
<ul>
<li>the transaction log files</li>
<li>the database file itself</li>
</ul>
<p><img class="aligncenter size-full wp-image-3470" title="exchange-2010-database-paths" src="http://exchangeserverpro.com/wp-content/uploads/2011/05/exchange-2010-database-paths.png" alt="" width="471" height="172" /></p>
<p>The folder containing the log files will look something like this.</p>
<p><img class="aligncenter size-full wp-image-3471" title="exchange-2010-database-log-files" src="http://exchangeserverpro.com/wp-content/uploads/2011/05/exchange-2010-database-log-files.png" alt="" width="580" height="375" /></p>
<p>A best practice for <a title="Exchange 2010 FAQ: What are the Exchange Server 2010 Server Roles?" href="http://exchangeserverpro.com/exchange-2010-server-roles">Exchange 2010 mailbox servers</a> is to store the database and transaction log files on completely separate disks. This is to protect the server from data loss if one disk or the other has a failure.</p>
<p>The way this works is that each database change is written to a memory buffer and also recorded in a transaction log file. Periodically the memory buffer information is also written to the database file. When this occurs a checkpoint is updated that tells the server which transaction log entries have and have not been written to the database yet.</p>
<p>If the server was to unexpectedly restart, the database comes online in a &#8220;<a href="http://exchangeserverpro.com/restore-individual-mailbox-exchange-2010#eseutil">dirty shutdown</a>&#8221; state and the checkpoint is used to tell the server which transaction log entries need to be replayed into the database to recover the information that was lost in the memory buffer when the server failed.</p>
<p>Over time these transaction logs will grow, because of course the mailbox database is continually changing as new mail arrives in mailboxes (as just one example). Eventually the log files will fill up the disk if they are not removed.</p>
<p>To remove the transaction log files the database needs to be <a title="Exchange Server 2010 Mailbox Server Backup and Recovery" href="http://exchangeserverpro.com/exchange-server-2010-mailbox-server-backup-recovery">backed up</a>. When an Exchange Server database is backed up by a proper application-aware backup product, after the backup is finished the backup program will issue a command to VSS (Volume Shadow-copy Service) on the server that the backup was successful and to go ahead and truncate the transaction logs.</p>
<p>The server then proceeds to remove the transaction log files up to the nearest checkpoint prior to the backup commencing. Because the database can continue to change and write new transaction log files while a backup is in progress it is not unusual for multiple transaction log files to still be present after a backup has completed. However most of them will be removed, and regular backups are the method by which transaction logs can be kept from consuming all free disk space on the server (as well as the obvious benefit of having your Exchange databases safely backed up).</p>
<p>So if your Exchange Server disk is being filled up by transaction log files, the issue is likely to be one of the following:</p>
<p><strong>Cause: You aren&#8217;t backing up the mailbox server</strong></p>
<p>Solution: <a href="http://exchangeserverpro.com/exchange-2010-mailbox-database-backup-restore-windows-server-backup">Back up the mailbox server</a> with a proper Exchange Server application-aware backup product. There are commercial products available for this such as <a href="http://www.symantec.com/business/products/family.jsp?familyid=backupexec">Symantec Backup Exec</a> or you can use the built-in Windows Server Backup for the task.</p>
<p><strong>Cause: You&#8217;re using the wrong type of backup</strong></p>
<p>Solution: Make sure you&#8217;re running a backup job type that will truncate the logs. Full and Incremental backups will truncate the transaction log files, whereas Differential and Copy will not.</p>
<p><strong>Cause: The backup is not completing successfully</strong></p>
<p>Solution: Check your backup product for log file entries that indicate what the issue is.</p>
<p><strong>Cause: The backup is completing successfully but transaction logs are not truncating</strong></p>
<p>Solution: Check the Application Event Log on the mailbox server for errors with the log truncation process.</p>
<p>&nbsp;</p>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email" title="How to Set Up an Automated Exchange 2010 Database Backup Alert Email">How to Set Up an Automated Exchange 2010 Database Backup Alert Email</a></li><li><a href="http://exchangeserverpro.com/avoid-running-transaction-log-disk-space-exchange-servers" title="Avoid Running Out of Transaction Log Disk Space on Exchange Servers">Avoid Running Out of Transaction Log Disk Space on Exchange Servers</a></li><li><a href="http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups" title="PowerShell Script: Check Exchange 2010 Database Backups">PowerShell Script: Check Exchange 2010 Database Backups</a></li><li><a href="http://exchangeserverpro.com/exchange-2010-passive-database-copies-included-backups-dag-members" title="Exchange 2010: Are Passive Database Copies Included in Backups of DAG Members?">Exchange 2010: Are Passive Database Copies Included in Backups of DAG Members?</a></li><li><a href="http://exchangeserverpro.com/review-exchange-server-2010-backup-recovery-training" title="Review: Exchange Server 2010 Backup and Recovery Training">Review: Exchange Server 2010 Backup and Recovery Training</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/exchange-2010-faq-disk-filling-log-files">Exchange 2010 FAQ: Why is My Disk Filling Up with Log Files?</a> is © 2011 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/exchange-2010-faq-disk-filling-log-files/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PowerShell Script: Check Exchange Mailbox Database Last Backup Time</title>
		<link>http://exchangeserverpro.com/powershell-script-check-exchange-mailbox-database-backup-time</link>
		<comments>http://exchangeserverpro.com/powershell-script-check-exchange-mailbox-database-backup-time#comments</comments>
		<pubDate>Sun, 27 Mar 2011 13:14:31 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[Exchange 2007]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange Management Shell]]></category>
		<category><![CDATA[Mailbox Server]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Scripts]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=3186</guid>
		<description><![CDATA[PowerShell script for checking the last backup time for the mailbox databases on an Exchange Server.]]></description>
			<content:encoded><![CDATA[<p>Here is a simple script you can use to check the last backup time for the mailbox databases on an Exchange Server. Run the script from the Exchange Management Shell on a Mailbox Server to check the local server&#8217;s databases.</p>
<pre>
[PS] C:\Scripts>.\check-dbbackups.ps1
Server: ESP-HO-EX2010B
Current time: 03/27/2011 22:21:39

Database                                Last Full (hrs ago)                     Last Inc (hrs ago)
--------                                -------------------                     ------------------
MB-HO-01                                1                                       n/a
MB-HO-02                                1                                       n/a
MB-HO-Archive-01                        n/a                                     n/a
</pre>
<p>Here is the script code.</p>
<pre>
$server = $env:computername

$now = [DateTime]::Now

"Server: " + $server
"Current time: " + $now

$db = get-MailboxDatabase -server $server -status
foreach ($objItem in $db)
{
$lastfull = $objItem.lastfullbackup
	if (!$lastfull)
	{
		$fullago = "n/a"
	}
	else
	{
		$fullago = $now - $lastfull
		$fullago = $fullago.TotalHours
		$fullago = "{0:N0}" -f $fullago
	}

	$lastinc = $objItem.lastincrementalbackup
	if (!$lastinc)
	{
		$incago = "n/a"
	}
	else
	{
		$incago = $now - $lastinc
		$incago = $incago.TotalHours
		$incago = "{0:N0}" -f $incago
	}

$returnedObj = new-object PSObject
$returnedObj | add-member NoteProperty -name "Database" -value $objItem.Name
$returnedObj | add-member NoteProperty -name "Last Full (hrs ago)" -value $fullago
$returnedObj | Add-Member NoteProperty -name "Last Inc (hrs ago)" -value $incago
$returnedObj
}
</pre>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/list-users-access-exchange-mailboxes" title="How to List all Users Who Have Access to Other Exchange Mailboxes">How to List all Users Who Have Access to Other Exchange Mailboxes</a></li><li><a href="http://exchangeserverpro.com/clone-mailbox-database-configuration" title="Exchange 2007/2010: How to Clone a Mailbox Database Configuration">Exchange 2007/2010: How to Clone a Mailbox Database Configuration</a></li><li><a href="http://exchangeserverpro.com/move-exchange-2007-storage-group-database-paths" title="How to Move Storage Group and Database File Paths in Exchange Server 2007">How to Move Storage Group and Database File Paths in Exchange Server 2007</a></li><li><a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email" title="How to Set Up an Automated Exchange 2010 Database Backup Alert Email">How to Set Up an Automated Exchange 2010 Database Backup Alert Email</a></li><li><a href="http://exchangeserverpro.com/health-check-exchange-2010-mailbox-server" title="How to Health Check an Exchange 2010 Mailbox Server">How to Health Check an Exchange 2010 Mailbox Server</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/powershell-script-check-exchange-mailbox-database-backup-time">PowerShell Script: Check Exchange Mailbox Database Last Backup Time</a> is © 2011 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/powershell-script-check-exchange-mailbox-database-backup-time/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to Schedule Windows Server Backup</title>
		<link>http://exchangeserverpro.com/schedule-windows-server-backup-exchange-2010</link>
		<comments>http://exchangeserverpro.com/schedule-windows-server-backup-exchange-2010#comments</comments>
		<pubDate>Sat, 18 Dec 2010 12:30:38 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Windows Server Backup]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=2545</guid>
		<description><![CDATA[If you are using Windows Server Backup to backup Exchange Server 2010 then you will want to configure a scheduled back task to automate the process.  However, Windows Server Backup alone may not support the schedule that you want to create.]]></description>
			<content:encoded><![CDATA[<p>If you are <a href="http://exchangeserverpro.com/exchange-2010-mailbox-database-backup-restore-windows-server-backup">using Windows Server Backup to backup Exchange Server 2010</a> then you will want to configure a scheduled back task to automate the process.</p>
<p>Windows Server Backup has scheduling capabilities built in.  You can configure a scheduled backup job by clicking on <strong>Backup Schedule</strong> in the actions pane of the Windows Server Backup console.</p>
<div id="attachment_2556" class="wp-caption aligncenter" style="width: 310px"><img class="size-full wp-image-2556" title="Creating a scheduled backup in Windows Server Backup" src="http://exchangeserverpro.com/wp-content/uploads/2010/12/windows-server-backup-scheduling-00.png" alt="Creating a scheduled backup in Windows Server Backup" width="300" height="201" /><p class="wp-caption-text">Creating a scheduled backup in Windows Server Backup</p></div>
<p>However you might notice that the scheduling options are limited.  You can either perform a daily backup, or more frequent backups, but not <em>less frequent</em> backups.</p>
<div id="attachment_2557" class="wp-caption aligncenter" style="width: 590px"><img class="size-full wp-image-2557" title="Windows Server Backup scheduling options" src="http://exchangeserverpro.com/wp-content/uploads/2010/12/windows-server-backup-scheduling-01.png" alt="Windows Server Backup scheduling options" width="580" height="500" /><p class="wp-caption-text">Windows Server Backup scheduling options</p></div>
<p style="text-align: left;">Why would you want to create less frequent scheduled backups of an Exchange server?</p>
<p style="text-align: left;">Two example scenarios are:</p>
<ul>
<li>Reducing backups to run weekly because the data is already protected by a <a href="http://exchangeserverpro.com/exchange-server-2010-database-availability-group-installation-step-by-step">Database Availability Group</a></li>
<li>Running two different backup jobs on alternating days that backup to two different devices or locations</li>
</ul>
<p>Fortunately you can schedule your Windows Server Backup jobs to run any time you like simply by creating the jobs manually in Task Scheduler.</p>
<p>Launch Task Scheduler by searching for it in the Start Menu of the server you wish to back up.</p>
<div id="attachment_2546" class="wp-caption aligncenter" style="width: 310px"><img class="size-full wp-image-2546" title="Launch Task Scheduler" src="http://exchangeserverpro.com/wp-content/uploads/2010/12/task-scheduler-01.png" alt="Launch Task Scheduler" width="300" height="375" /><p class="wp-caption-text">Launch Task Scheduler</p></div>
<p>In the Actions pane click on <strong>Create Task</strong>.</p>
<div id="attachment_2547" class="wp-caption aligncenter" style="width: 308px"><img class="size-full wp-image-2547" title="Create a new Scheduled Task" src="http://exchangeserverpro.com/wp-content/uploads/2010/12/task-scheduler-02.png" alt="Create a new Scheduled Task" width="298" height="194" /><p class="wp-caption-text">Create a new Scheduled Task</p></div>
<p>Give the new task a meaningful name, and then configure it to run whether the account is logged on or not.  This allows it to run completely unattended.</p>
<div id="attachment_2548" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-2548" title="Configure the scheduled task security options" src="http://exchangeserverpro.com/wp-content/uploads/2010/12/task-scheduler-03.png" alt="Configure the scheduled task security options" width="600" height="446" /><p class="wp-caption-text">Configure the scheduled task security options</p></div>
<p>On the Triggers tab click on the <strong>New</strong> button.</p>
<div id="attachment_2549" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-2549" title="Create a new trigger for the scheduled task" src="http://exchangeserverpro.com/wp-content/uploads/2010/12/task-scheduler-04.png" alt="Create a new trigger for the scheduled task" width="600" height="446" /><p class="wp-caption-text">Create a new trigger for the scheduled task</p></div>
<p>The trigger for this task will be the schedule you want to run your backups on.  In this example the Exchange server will be backed up weekly on Saturdays.</p>
<div id="attachment_2550" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-2550" title="Create a schedule for the backup job" src="http://exchangeserverpro.com/wp-content/uploads/2010/12/task-scheduler-05.png" alt="Create a schedule for the backup job" width="550" height="470" /><p class="wp-caption-text">Create a schedule for the backup job</p></div>
<p>On the Actions tab click the <strong>New</strong> button.</p>
<div id="attachment_2551" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-2551" title="Create a new Action for the scheduled task" src="http://exchangeserverpro.com/wp-content/uploads/2010/12/task-scheduler-06.png" alt="Create a new Action for the scheduled task" width="600" height="446" /><p class="wp-caption-text">Create a new Action for the scheduled task</p></div>
<p>The action for this scheduled task will be to run <strong>wbadmin.exe</strong>, which is the command-line tool for managing Windows Server Backup.</p>
<p>The full command being configured for the scheduled task is:</p>
<pre>wbadmin start backup -backupTarget:F: -include:D:,E: -allCritical -vssfull -quiet</pre>
<p>This command line performs the following:</p>
<ul>
<li><strong>start backup</strong> &#8211; tells wbadmin.exe to start a backup</li>
<li><strong>-backupTarget</strong> &#8211; this is the target volume to store the backup on, in this case F: (no trailing backslash)</li>
<li><strong>-include</strong> &#8211; these are the volumes to include in the backup job, in this case D: and E: because they are the volumes with Exchange databases and transaction logs on them</li>
<li><strong>-allCritical</strong> &#8211; this tells Windows Server Backup to also include any other volumes or data that are required for a full server recovery, eg the System volume and SystemState. This is optional if you only want to backup the Exchange data.</li>
<li><strong>-vssfull </strong>- this tells Windows Server Backup to perform a full VSS backup of Exchange and truncate the transaction logs</li>
<li><strong>-quiet</strong> &#8211; runs the command silently with no visual interaction</li>
</ul>
<div id="attachment_2552" class="wp-caption aligncenter" style="width: 468px"><img class="size-full wp-image-2552" title="Configure the wbadmin.exe command line" src="http://exchangeserverpro.com/wp-content/uploads/2010/12/task-scheduler-07.png" alt="Configure the wbadmin.exe command line" width="458" height="255" /><p class="wp-caption-text">Configure the wbadmin.exe command line</p></div>
<p>You can inspect the extra conditions and settings to see if you want to  configure anything else for your environment.</p>
<div id="attachment_2558" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-2558" title="The wbadmin command-line for the Exchange backup" src="http://exchangeserverpro.com/wp-content/uploads/2010/12/task-scheduler-08b.png" alt="The wbadmin command-line for the Exchange backup" width="600" height="445" /><p class="wp-caption-text">The wbadmin command-line for the Exchange backup</p></div>
<p>Otherwise click OK.  You will be prompted for the password for the user account you configured to run the scheduled task (note: I recommend you use a proper service account for this and not the Administrator account).</p>
<div id="attachment_2554" class="wp-caption aligncenter" style="width: 336px"><img class="size-full wp-image-2554" title="Enter the credentials for the scheduled task" src="http://exchangeserverpro.com/wp-content/uploads/2010/12/task-scheduler-09.png" alt="Enter the credentials for the scheduled task" width="326" height="254" /><p class="wp-caption-text">Enter the credentials for the scheduled task</p></div>
<p>The new scheduled backup job will now appear in Task Scheduler.</p>
<div id="attachment_2555" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-2555" title="Exchange backup job in Task Scheduler" src="http://exchangeserverpro.com/wp-content/uploads/2010/12/task-scheduler-10.png" alt="Exchange backup job in Task Scheduler" width="600" height="185" /><p class="wp-caption-text">Exchange backup job in Task Scheduler</p></div>
<p>Task scheduler will also display the last run time and result for the scheduled task.</p>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email" title="How to Set Up an Automated Exchange 2010 Database Backup Alert Email">How to Set Up an Automated Exchange 2010 Database Backup Alert Email</a></li><li><a href="http://exchangeserverpro.com/avoid-running-transaction-log-disk-space-exchange-servers" title="Avoid Running Out of Transaction Log Disk Space on Exchange Servers">Avoid Running Out of Transaction Log Disk Space on Exchange Servers</a></li><li><a href="http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups" title="PowerShell Script: Check Exchange 2010 Database Backups">PowerShell Script: Check Exchange 2010 Database Backups</a></li><li><a href="http://exchangeserverpro.com/exchange-2010-passive-database-copies-included-backups-dag-members" title="Exchange 2010: Are Passive Database Copies Included in Backups of DAG Members?">Exchange 2010: Are Passive Database Copies Included in Backups of DAG Members?</a></li><li><a href="http://exchangeserverpro.com/review-exchange-server-2010-backup-recovery-training" title="Review: Exchange Server 2010 Backup and Recovery Training">Review: Exchange Server 2010 Backup and Recovery Training</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/schedule-windows-server-backup-exchange-2010">How to Schedule Windows Server Backup</a> is © 2010 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/schedule-windows-server-backup-exchange-2010/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Commvault iDataAgent and Remote Public Folders</title>
		<link>http://exchangeserverpro.com/commvault-idataagent-and-remote-public-folders</link>
		<comments>http://exchangeserverpro.com/commvault-idataagent-and-remote-public-folders#comments</comments>
		<pubDate>Tue, 31 Aug 2010 12:02:04 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[Commvault]]></category>
		<category><![CDATA[Public Folders]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=2023</guid>
		<description><![CDATA[There is a change in behaviour between Commvault version 7 and version 8 in the way that the Public Folder iData Agent handles public folders, which can lead to some undesirable outcomes.]]></description>
			<content:encoded><![CDATA[<p>There is a change in behaviour between Commvault version 7 and version 8 in the way that the Public Folder iData Agent handles public folders.</p>
<p>In Commvault version 7 the Public Folder iDataAgent will only back up content for local public folders.  Any public folders for which there is no local replica on the Exchange server being backed up will not be included in the backup.</p>
<p>In Commvault version 8 the Public Folder iDataAgent will back up both local and remote public folders.  This means that if the local public folder database has replicas for say 5Gb of the total 20Gb of data in that public folder hierarchy, it will back up the remaining 15Gb from a remote public folder database.</p>
<p>If the remote public folder database that it connects to is over a slow WAN connection then you run the risk of two undesirable outcomes:</p>
<ul>
<li>WAN link saturation during the backup window</li>
<li>Very long running public folder backup jobs</li>
</ul>
<p>There are three approaches that you could take to resolve this:</p>
<ol>
<li>Replicate all public folder data to any server that is running Public Folder iDataAgent backup jobs. This may increase local storage requirements and WAN utilization caused by public folder replication (though you can optimize this in the public folder replication settings to suit your network).</li>
<li>Only run the Public Folder iDataAgent backup job at a central site that holds replicas for all public folders in the hierarchy.  This is probably the least administrative effort.  However it requires that any data restores also be run at that site and then replicated to the remote site that needs it, which potentially lengthens the total restoration timeframe.</li>
<li>Narrow the scope of the Public Folder iDataAgent backup job to only those folders in the hierarchy for which there are local replicas.  This solves the problem now but could lead to new folders created later not being included in the backup scope.</li>
</ol>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email" title="How to Set Up an Automated Exchange 2010 Database Backup Alert Email">How to Set Up an Automated Exchange 2010 Database Backup Alert Email</a></li><li><a href="http://exchangeserverpro.com/remove-default-public-folder-database-exchange-mailbox-database" title="How to Remove the Default Public Folder Database for an Exchange Mailbox Database">How to Remove the Default Public Folder Database for an Exchange Mailbox Database</a></li><li><a href="http://exchangeserverpro.com/avoid-running-transaction-log-disk-space-exchange-servers" title="Avoid Running Out of Transaction Log Disk Space on Exchange Servers">Avoid Running Out of Transaction Log Disk Space on Exchange Servers</a></li><li><a href="http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups" title="PowerShell Script: Check Exchange 2010 Database Backups">PowerShell Script: Check Exchange 2010 Database Backups</a></li><li><a href="http://exchangeserverpro.com/exchange-2010-passive-database-copies-included-backups-dag-members" title="Exchange 2010: Are Passive Database Copies Included in Backups of DAG Members?">Exchange 2010: Are Passive Database Copies Included in Backups of DAG Members?</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/commvault-idataagent-and-remote-public-folders">Commvault iDataAgent and Remote Public Folders</a> is © 2010 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/commvault-idataagent-and-remote-public-folders/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review of GFI Backup Business Edition</title>
		<link>http://exchangeserverpro.com/review-of-gfi-backup-business-edition</link>
		<comments>http://exchangeserverpro.com/review-of-gfi-backup-business-edition#comments</comments>
		<pubDate>Mon, 21 Jun 2010 13:09:36 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[GFI]]></category>
		<category><![CDATA[GFI Backup]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=1438</guid>
		<description><![CDATA[GFI has recently released two backup products, a free one for home users and a paid product for business users.  I downloaded and tested the Business Edition to see if it was as easy to install and use as they claim.]]></description>
			<content:encoded><![CDATA[<p>GFI has recently released two backup products, a free one for home users and a paid product for business users.  I downloaded and tested the Business Edition to see if it was as easy to install and use as they claim.</p>
<h2>Installation</h2>
<p>Installing <a href="http://www.gfi.com/business-backup-software">GFI Business Edition</a> was quite simple following an easy to understand setup wizard.  I installed it on a virtualized server running Windows Server 2008 with Service Pack 2.</p>
<p>There are no complex set up requirements such as SQL databases to worry about.  GFI Backup installs its own web server and listens on a custom port (you can change the port if you wish) for administration access, as well as ports for communications with remote agents.</p>
<p><img class="aligncenter size-full wp-image-1440" title="install003 (Custom)" src="http://exchangeserverpro.com/wp-content/uploads/2010/06/install003-Custom.png" alt="" width="450" height="345" /></p>
<p>Though I found this very easy to install I had to manually open firewall ports on the Windows Server 2008 server to allow remote administration access as they weren&#8217;t opened automatically by the installer as with some  other applications.</p>
<h2>Backing Up Files</h2>
<p>Remote agent deployment can be performed using Group Policy or by manually initiating it from the remote server.  There is no push option available to roll out remote agents.</p>
<p>The GPO deployment option would be suitable for deploying the remote agents to desktops and laptops but not as convenient for servers.  For servers the manual agent deployment is best, though the most effort.  If you want to save time you could script the server agent install but whether that saves you time will depend on the size of your environment and your scripting skills.</p>
<p>Backup types are file/folder, or SQL only.  There is no option to backup Exchange Server or Active Directory.  This would seem to be the greatest weakness of GFI Backup however for small businesses that run in a workgroup configuration without Active Directory, or have their email service hosted in the cloud these aren&#8217;t going to present a problem.</p>
<p>The default backup inclusions/exclusions that define a broad range of common productivity file types are useful especially when creating backup jobs for PCs.</p>
<p>The backup destination is quite flexible.  Backing up to central location (can be disk or tape) on one main server is available, but each agent can also be configured to backup to its own local drive instead.  This is again very useful for PC backups, as they can be configured to backup their most important user files to a second hard drive on the machine without consuming more expensive server disk or tape capacity.</p>
<p>The backup files themselves can optionally be compressed using ZIP compression.  In my test this saved about 50% space for the Windows Server 2008 server.  The ZIP files can also be password protected and AES encrypted.</p>
<p><img class="aligncenter size-full wp-image-1441" title="backup002 (Custom)" src="http://exchangeserverpro.com/wp-content/uploads/2010/06/backup002-Custom.png" alt="" width="450" height="333" /></p>
<p>Backups can be scheduled and include options for email notifications to backup administrators.</p>
<h2>Restoring Files</h2>
<p>There are two restore options driven by yet another simple wizard.  You can restore either an entire system or perform item-level restores.</p>
<p>Unfortunately there is no bare metal restore capability, but with the speed of modern OS installations (ie Windows 2008 and Windows 7) and alternatives such as Windows Deployment Services it would still be feasible to quickly reinstall an operating system or SOE onto bare metal and then use GFI Backup to recover all of the user data for that system.</p>
<h2>Overall Impression</h2>
<p>GFI delivers on the ease of use promise with only a few trade offs.  I found myself looking for the type of features and settings that I normally see in enterprise class backup products, but quickly realised that the ones that aren&#8217;t there are not really necessary for most small to medium businesses anyway.</p>
<p>The lack of support for Exchange and Active Directory backups makes GFI Backup less suited to Windows Small Business Server networks.  Theoretically you could use pre and post tasks in GFI Backup to run scripted Windows Backups first, and then backup those files using GFI Backup but that adds a little too much complexity for my liking.</p>
<p>You could also use Windows Backup for those components and GFI Backup for everything else but again that detracts from the ease of use benefits of GFI Backup.</p>
<p>My only other complaint was the lightbox effect in the web administration console, which could perform poorly when remotely supporting clients over low bandwidth connections.</p>
<p>Overall I would consider GFI Backup Business Edition and good backup solution for the small or medium sized business that runs email and other applications in the cloud, and needs a simple backup solution for their Windows PC&#8217;s, file servers, and database servers.</p>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email" title="How to Set Up an Automated Exchange 2010 Database Backup Alert Email">How to Set Up an Automated Exchange 2010 Database Backup Alert Email</a></li><li><a href="http://exchangeserverpro.com/avoid-running-transaction-log-disk-space-exchange-servers" title="Avoid Running Out of Transaction Log Disk Space on Exchange Servers">Avoid Running Out of Transaction Log Disk Space on Exchange Servers</a></li><li><a href="http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups" title="PowerShell Script: Check Exchange 2010 Database Backups">PowerShell Script: Check Exchange 2010 Database Backups</a></li><li><a href="http://exchangeserverpro.com/exchange-2010-passive-database-copies-included-backups-dag-members" title="Exchange 2010: Are Passive Database Copies Included in Backups of DAG Members?">Exchange 2010: Are Passive Database Copies Included in Backups of DAG Members?</a></li><li><a href="http://exchangeserverpro.com/review-exchange-server-2010-backup-recovery-training" title="Review: Exchange Server 2010 Backup and Recovery Training">Review: Exchange Server 2010 Backup and Recovery Training</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/review-of-gfi-backup-business-edition">Review of GFI Backup Business Edition</a> is © 2010 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/review-of-gfi-backup-business-edition/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

