DPM 2007 SP1 Virtual Labs from Microsoft

2 04 2009

TechNet has released 3 Virtual Labs (vLabs) on DPM 2007 SP1.    Much like other labs from Microsoft, you can get your hands dirty in minutes in a full fledged lab environment, instead of building out for hours on your own.  You can go through the student manual – or just play with the features that you want to learn about.  At the end of your time (About 3 hours), the lab reset back (yes, there is a clock in the window).

image

There are 3 virtual labs for you, and TechNet is promising more soon:

Technical Introduction to DPM 2007 SP1 – a good basic start, with protection and recovery of Exchange 2007 and SQL Server 2005

How to protect SQL Server with DPM 2007 SP1 – more focused on deeper scenarios, including some data migration from SQL 2005 to SQL 2008

How to protect SharePoint with DPM 2007 SP1 – here is your chance to see whole farm protection, with single item restore – nuff said!

How to protect Exchange with DPM 2007 SP1 – is coming, look for it in May

This is a great way to get started with DPM, and to simulate some scenarios without messing up your production environment.  Have fun!





Error Opening DPM 2007 MMC

24 03 2009

Today did not go exactly the way I wanted it to go.  I had great plans to actually get a lot done.  DPM decided that my plans for a productive day were stupid, and threw this crap at me:

image

MMC cannot open the file E:\Program Files\Microsoft DPM\DPM\bin\Microsoft System Center Data Protection Manager 2007.msc.

This may be because the file does not exist, is not an MMC console, or was created by a later version of MMC. This may also be because you do not have sufficient access rights to the file.

Grrrrrrrr…  What a pain.  I first thought that the .msc file was corrupt, so I copied the same from another DPM server, but to no avail.  I found some tips on the internet that led to registering a .dll file, but that didn’t work (regsvr32 msxml3.dll).

I figured something was wrong with DPM, so as much as I didn’t want to, I uninstalled DPM, reinstalled it, restored the DPM database (you are backing up your DPM database right?!??!) but was STILL getting the same stupid error!

So, workaround time.  I opened mmc (Start, run, MMC, enter), went to file, add/remove snap-in, and added Microsoft System Center Data Protection Manager 2007.

image

image

This did work, but was really buggy.  The MMC kept crashing, and also wouldn’t let me get rid of the right folder view – ugly, but will do in a pinch…

Well, I finally got digging some more, and found that in my %appdata% directory, there lives an MMC folder

C:\Documents and Settings\\Application Data\Microsoft\MMCimage

Delete the Microsoft System Center Data Protection Manager 2007 file, and then launch DPM.  It will launch without any problems.  Man, I just wasted about 7 hours on this stupid thing!!!  Hope this can help someone!





Auto Grow DPM Protection Groups by Percentage Thresholds

20 01 2009

Managing many DPM servers can turn into quite a time consuming activity, especially when it comes to allocating more disk space to Data Sources.  The Ctrl-P DPM blog has a real simple auto-grow script on their site, but I personally have had issues with it, as have many others on the Net.  It is also rather lacking in “bells and whistles” but for an everyday DPM admin, it sure would make life easier.  In my quest for ways to make my job easier, I found this absolutely AWESOME script that Owen Clashing wrote on his blog.

#This DPM powershell script helps automate the growing of replica and shadow copy volumes which need to be grown.
param([string] $DPMServerName, [string] $Mode, [int] $ReplicaThreshold, [int] $ReplicaGrowBy, [int] $RecoveryPointThreshold, [int] $RecoveryPointGrowBy)

###### Define variables for default values
$DefaultDPMServerName = $env:COMPUTERNAME # Assumes that the current computer is the DPM server
$DefaultMode = "A"
$DefaultReplicaThreshold = 90
$DefaultReplicaGrowBy = 5
$DefaultShadowCopyThreshold = 90
$DefaultShadowCopyGrowBy = 5
######

function Usage()
{
write-host
write-host "Usage::"
write-host "AutoGrowByPercentWithDefaults.ps1"
write-host "AutoGrowByPercentWithDefaults.ps1 -DPMServerName [DPMServername] -Mode [A|C]"
write-host
write-host "Run 'AutoGrowByPercentWithDefaults.ps1 -detailed' for detailed help"
write-host
write-host
}

if(("-?","-help") -contains $args[0])
{
Usage
exit 0
}

if(("-detailed") -contains $args[0])
{
write-host
write-host "Detailed Help : Use this script to automatically grow the replica and recovery point volume sizes"
write-host "Parameters:"
write-host "-DPMServerName [DPMServername] :: The name of the DPM server that is being targetted"
write-host "-Mode [A|C] :: A - Audit only (make no disk allocation changes); C - Change disk allocations"
write-host "-ReplicaThreshold [Replica Threshold %] :: Percentage usage above which disk space allocation for the replica volume will be triggered"
write-host "-ReplicaGrowBy [Replica Grow By %] :: Percentage by which to grow the replica volume"
write-host "-RecoveryPointThreshold [Recovery Point Threshold %] :: Percentage usage above which disk space allocation for the recovery point volume will be triggered"
write-host "-RecoveryPointGrowBy [Recovery Point Grow By %] :: Percentage by which to grow the recovery point volume"
write-host "Current default values:"
write-host "-DPMServerName $DefaultDPMServerName"
write-host "-Mode $DefaultMode"
write-host "-ReplicaThreshold $DefaultReplicaThreshold"
write-host "-ReplicaGrowBy $DefaultReplicaGrowBy"
write-host "-RecoveryPointThreshold $DefaultShadowCopyThreshold"
write-host "-RecoveryPointGrowBy $DefaultShadowCopyGrowBy"
write-host
exit 0
}

if(!$DPMServerName)
{
$DPMServerName = $DefaultDPMServerName
}

if(!$Mode)
{
$Mode = $DefaultMode
}
else
{
if (($Mode -ne "A") -or ($Mode -ne "C"))
{
Usage
exit 0
}
}

if(!$ReplicaThreshold)
{
$ReplicaThreshold = $DefaultReplicaThreshold
}

if(!$ReplicaGrowBy)
{
$ReplicaGrowBy = $DefaultReplicaGrowBy
}

# Note the inconsistency in the naming - Object model name Shadow Copy, GUI name Recovery Point
# We use the GUI names in naming the parameters to keep it familiar for the casual user.
if(!$RecoveryPointThreshold)
{
$ShadowCopyThreshold = $DefaultShadowCopyThreshold
}
else
{
$ShadowCopyThreshold = $RecoveryPointThreshold
}


if(!$RecoveryPointGrowBy)
{
$ShadowCopyGrowBy = $DefaultShadowCopyGrowBy
}
else
{
$ShadowCopyThreshold = $RecoveryPointGrowBy
}


switch ($Mode)
{
"A"
{
$ChangeHighlightColor = "Green"
write-host "In audit mode - No changes will be made to the disk allocations" -foregroundcolor $ChangeHighlightColor
}
"C"
{
$ChangeHighlightColor = "Red"
write-host "In change mode - Changes will be made to the disk allocations" -foregroundcolor $ChangeHighlightColor
}
}



$dpmserver = Connect-DPMServer $DPMServerName

if(!$dpmserver)
{
write-error "Unable to connect to $dpmservername"
exit 1
}

$PGList = @(Get-ProtectionGroup $DPMServerName)

foreach($PG in $PGList)
{
# Use a modifiable protection group only if we are in change mode
# A non-modifiable protection group object is significantly faster
if ($Mode -eq "C")
{
$MPG = Get-ModifiableProtectionGroup $PG
}
else
{
$MPG = $PG
}

$dslist=@(get-datasource $MPG)
foreach ($ds in $dslist)
{
$ReplicaUsedPercent = ($ds.ReplicaUsedSpace/$ds.ReplicaSize)
$ShadowCopyUsedPercent = ($ds.ShadowCopyUsedSpace/$ds.ShadowCopyAreaSize)
"------------------------------------------------------------------------"
#"Protection Group: $PG.Name"
"$ds"

# $ds.ReplicaSize = -1 when there is no replica component to the backup
# Only process if there is replica disk space allocated
if ($ds.ReplicaSize -ne -1)
{
"Replica Used % : {0:P2}" -f $ReplicaUsedPercent

if($ReplicaUsedPercent -gt $ReplicaThreshold/100)
{
$ReplicaGrowByActual = ($ReplicaGrowBy/100)*$ds.ReplicaSize
$NewReplicaSize = $ds.ReplicaSize + $ReplicaGrowByActual
"Replica Grow % : {0:P2}" -f $($ReplicaGrowBy/100)
write-host $("Replica Grow Actual (GB) : {0:N2}" -f $($ReplicaGrowByActual/1GB)) -foregroundcolor $ChangeHighlightColor
"Replica New Total (GB) : {0:N2}" -f $($NewReplicaSize/1GB)

if ($Mode -eq "C")
{
Set-DatasourceDiskAllocation -Manual -Datasource $ds -ProtectionGroup $MPG -ReplicaArea $NewReplicaSize
}
}
else
{
"Replica Grow % : 0.00 %"
"Replica Grow Actual (GB) : 0.00"
"Replica New Total (GB) : {0:N2}" -f $(($ds.ReplicaSize)/1GB)
}
}
else
{
"No disk space allocated for replica"
}

# $ds.ShadowCopyAreaSize = -1 when there is no shadow copy component to the backup
# Only process if there is shadow copy disk space allocated
if ($ds.ShadowCopyAreaSize -ne -1)
{
"Recovery Point Used % : {0:P2}" -f $ShadowCopyUsedPercent

if($ShadowCopyUsedPercent -gt $ShadowCopyThreshold/100)
{
$ShadowCopyGrowByActual = ($ShadowCopyGrowBy/100)*$ds.ShadowCopyAreaSize
$NewShadowCopySize = $ds.ShadowCopyAreaSize + $ShadowCopyGrowByActual
"Recovery Point Grow % : {0:P2}" -f $($ShadowCopyGrowBy/100)
write-host $("Recovery Point Grow Actual (GB): {0:N2}" -f $($ShadowCopyGrowByActual/1GB)) -foregroundcolor $ChangeHighlightColor
"Recovery Point New Total (GB) : {0:N2}" -f $($NewShadowCopySize/1GB)

if ($Mode -eq "C")
{
Set-DatasourceDiskAllocation -Manual -Datasource $ds -ProtectionGroup $MPG -ShadowCopyArea $NewShadowCopySize
}
}
else
{
"Recovery Point Grow % : 0.00 %"
"Recovery Point Grow Actual (GB): 0.00"
"Recovery Point New Total (GB) : {0:N2}" -f $($ds.ShadowCopyAreaSize/1GB)
}
}
else
{
"No disk space allocated for recovery point"
}
}

# Update the protection group if we are in change mode
if ($Mode -eq "C")
{
Set-ProtectionGroup $MPG
}
}

Disconnect-DPMServer $DPMServerName

"------------------------------------------------------------------------"

I LOVE the –MODE switch, allowing me to run the script, and see the results, without actually changing any disk allocations.  I’ve added this script to the DPM servers that I manage, and have the task scheduler run it twice a day.  No more failed jobs due to lack of disk space!  Yeah!





Script – Create Recovery Points

16 01 2009

In the environment that I work, DPM protects the Exchange 2007 servers.  I have only one Exchange server in each protection group.  Each Exchange server has between 10-20 Storage Groups (or Data Sources).  If I want to initiate a backup on the entire server, it is a pain to select each storage group, click Create Recovery Point, and select either Full or Incremental, then click Close. 

The script below does all that for me.  It connects to the DPM server, lists the Protection Groups, asks if you want to run an Express Full, or Incremental backup, then initiates the jobs for each Data Source in the Protection Group (each Storage Group on the Exchange Server).

# DPM 2007 Powershell Script
# Script to initiate a Recovery Point for each Data Source in a Protection Group
# Initial Script from Technet, but Modified to give more choices
# Edited by Dan Burgess
# nerd@EverydayNerd.com

param([string] $dpmname, [string] $pgname, [string] $backupoption)
# Clear the screen
cls
#Get name of Localhost
$CompStat = Get-WmiObject win32_computersystem
$Localhst = $CompStat.Name

# Notify that connected to Localhost
write-host ""
write-host "Script: Create-RecoveryPoint" -foregroundcolor Blue -backgroundcolor white
write-host ""
write-host ""
Write-host "Connected to Localhost: $Localhst" -foregroundcolor Blue -backgroundcolor white
write-host ""
write-host ""

# Set DPM Servername
$dpmname = read-host "DPM Server Name (Enter for $Localhst):"
if ($dpmname -eq "")
{
$dpmname = $Localhst
write-host "Using Localhost $dpmname " -foregroundcolor green
write-host ""
write-host ""
}

# List Protection Groups on DPM server
$pglist = get-protectiongroup -DPMServerName $dpmname
write-host "Protection Groups on $dpmname :" -foregroundcolor green
write-output $pglist
write-host ""
write-host ""

#Enter name of Protection Group you wish to create Recovery Point
$pgname = read-host "Enter Protection Group Name:"
write-host ""
write-host ""

#List choices for JobChoice1 Variable
write-host "1: Express Full"
write-host "2: Incremental"
write-host ""

$JobChoice1 = read-host "Enter Backup type - 1 or 2 [Default is 1: Express Full]:"

switch ($JobChoice1)
{
1 { $backupoption = 'ExpressFull' }
2 { $backupoption = 'Incremental' }
default { $backupoption = 'ExpressFull' }
}
write-host ""
Write-host "You selected $backupoption" -foregroundcolor Blue -backgroundcolor white
write-host ""

trap{"Error in execution... $_";break}

if($clipg -eq $abc)
{
write-host ""
Throw "No ProtectionGroup found"
write-host ""
}
else
{
write-host ""
write-host "Getting DataSource from Protection Group $pgname..." -foregroundcolor green
write-host ""

# Create variable of each Datasource from Protection Group
$backupds = @(Get-Datasource $clipg)

# Run the Job for each DataSource in Protection Group
foreach ($ds in $backupds)
{
write-host ""
write-host "Creating Recovery point for $ds..." -foregroundcolor Blue -backgroundcolor white
write-host ""

$job = New-RecoveryPoint -Datasource $ds -Disk -BackupType $backupoption
$jobtype = $job.jobtype
Write-host "$jobtype Job has been triggerred..." -foregroundcolor green
}
}
}

I’ve been playing around with this script for a while, and there is more that I want to do to it, but I figured I’d share it, and hope it helps someone out.  I’d love some input on how to make the script better!

One thing I’d really like to do, but have not been able to figure it out yet, is have a status update at the end, updating every 10 seconds showing the Server name, PGname, Status, and HasCompleted – until True.  Just a thought… would save me from having to RDP into all the DPM servers…





SQL 2005 Install Fails Immediately

22 10 2008

I’ve had my problems with installing DPM before, but this was a new one!  DPM setup started ok, but as soon as it got to the SQL install portion, the installer failed, with this error message:

Microsoft SQL Server 2005 Setup
SQL Server Setup unexpectedly failed. For more information, review the Setup summary log file in %ProgramFiles%\Microsoft SQL Server\90\Setup Bootstrap\LOG\Summary.txt.

The setup log wasn’t much help either:

Microsoft SQL Server 2005 9.00.1399.06
==============================
OS Version      : Microsoft Windows Server 2003 family, Enterprise Edition Service Pack 2 (Build 3790)
Time            : Wed Oct 22 15:29:15 2008

Yeah, lots of help there… thanks…

Well, there is a folder ( %ProgramFiles%\Microsoft SQL Server\90\Setup Bootstrap\LOG\Files ) that had a couple of log files too, and it led me towards actual errors:

Microsoft SQL Server 2005 Setup beginning at Mon Oct 20 17:07:59 2008
Process ID      : 3364
D:\Sources\DPM2007\64bit\DPM2007_64bit\SQLSVR2005\Servers\setup.exe Version: 2005.90.1399.0
Running: LoadResourcesAction at: 2008/9/20 17:7:59
Complete: LoadResourcesAction at: 2008/9/20 17:7:59, returned true
Running: ParseBootstrapOptionsAction at: 2008/9/20 17:7:59
Loaded DLL:D:\Sources\DPM2007\64bit\DPM2007_64bit\SQLSVR2005\Servers\xmlrw.dll Version:2.0.3604.0
Complete: ParseBootstrapOptionsAction at: 2008/9/20 17:7:59, returned false
Error: Action “ParseBootstrapOptionsAction” failed during execution.  Error information reported during run:
Could not parse command line due to datastore exception.
  Source File Name: utillib\persisthelpers.cpp
Compiler Timestamp: Fri Jul 29 01:13:55 2005
     Function Name: writeEncryptedString
Source Line Number: 124
———————————————————-
writeEncryptedString() failed
      Source File Name: utillib\persisthelpers.cpp
    Compiler Timestamp: Fri Jul 29 01:13:55 2005
         Function Name: writeEncryptedString
    Source Line Number: 123
    ———————————————————-
            Error Code: 0x80070002 (2)
Windows Error Text: The system cannot find the file specified.

  Source File Name: cryptohelper\cryptsameusersamemachine.cpp
Compiler Timestamp: Mon Jun 13 14:30:00 2005
     Function Name: sqls::CryptSameUserSameMachine::ProtectData
Source Line Number: 50

2
Could not skip Component update due to datastore exception.
  Source File Name: datastore\cachedpropertycollection.cpp
Compiler Timestamp: Fri Jul 29 01:13:49 2005
     Function Name: CachedPropertyCollection::findProperty
Source Line Number: 130
———————————————————-
Failed to find property “InstallMediaPath” {“SetupBootstrapOptionsScope”, “”, “3364”} in cache
      Source File Name: datastore\propertycollection.cpp
    Compiler Timestamp: Fri Jul 29 01:13:50 2005
         Function Name: SetupBootstrapOptionsScope.InstallMediaPath
    Source Line Number: 44
    ———————————————————-
    No collector registered for scope: “SetupBootstrapOptionsScope”
Running: ValidateWinNTAction at: 2008/9/20 17:7:59
Complete: ValidateWinNTAction at: 2008/9/20 17:7:59, returned true
Running: ValidateMinOSAction at: 2008/9/20 17:7:59
Complete: ValidateMinOSAction at: 2008/9/20 17:7:59, returned true
Running: PerformSCCAction at: 2008/9/20 17:7:59
Complete: PerformSCCAction at: 2008/9/20 17:7:59, returned true
Running: ActivateLoggingAction at: 2008/9/20 17:7:59
Error: Action “ActivateLoggingAction” threw an exception during execution.  Error information reported during run:
Datastore exception while trying to write logging properties.
  Source File Name: datastore\cachedpropertycollection.cpp
Compiler Timestamp: Fri Jul 29 01:13:49 2005
     Function Name: CachedPropertyCollection::findProperty
Source Line Number: 130
———————————————————-
Failed to find property “primaryLogFiles” {“SetupStateScope”, “”, “”} in cache
      Source File Name: datastore\propertycollection.cpp
    Compiler Timestamp: Fri Jul 29 01:13:50 2005
         Function Name: SetupStateScope.primaryLogFiles
    Source Line Number: 44
    ———————————————————-
    No collector registered for scope: “SetupStateScope”
0000000000F4AF90Unable to proceed with setup, there was a command line parsing error. : 2
        Error Code: 0x80070002 (2)
Windows Error Text: The system cannot find the file specified.

  Source File Name: datastore\propertycollection.cpp
Compiler Timestamp: Fri Jul 29 01:13:50 2005
     Function Name: SetupBootstrapOptionsScope.InstallMediaPath
Source Line Number: 44

Class not registered.
Failed to create CAB file due to datastore exception
  Source File Name: datastore\cachedpropertycollection.cpp
Compiler Timestamp: Fri Jul 29 01:13:49 2005
     Function Name: CachedPropertyCollection::findProperty
Source Line Number: 130
———————————————————-
Failed to find property “HostSetup” {“SetupBootstrapOptionsScope”, “”, “3364”} in cache
      Source File Name: datastore\propertycollection.cpp
    Compiler Timestamp: Fri Jul 29 01:13:50 2005
         Function Name: SetupBootstrapOptionsScope.HostSetup
    Source Line Number: 44
    ———————————————————-
    No collector registered for scope: “SetupBootstrapOptionsScope”
Message pump returning: 2

Looked like a dump to me.  Well, long story short, and a couple of days of frustration, I found out that the OS was a custom install by the server team, and it was a custom install.  Needless to say, I was just missing one registry key.

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User
Shell Folders\AppData

It seems the key had been messed up in the build of the OS. The key should be a REG_EXPAND_SZ and set to:

%USERPROFILE%\Application Data

Hope this helps somebody!





DPM encountered a retryable VSS error. (ID 30112 Details: Unknown error (0x800423f3) (0x800423F3))

2 10 2008

This is a nasty error, and an even nastier “fix”.  I had this error on one of my DPM servers, and no matter what I tried to do on the DPM side, it kept coming back with this error.  I tried Consistency checks, Full Backups, Incremental, and none of them worked.  I did go as far as stopping protection for the Storage Group that was failing, recreated the replica, and that seemed to work, but after it happened several times, this is not something I wanted to do regularly. 

Apparently, this is a known issue with Exchange 2007, and there is little that can be done until a patch is released for this problem (not fixed as of Exchange 2007, SP1, Update Rollup 3).

KB217320 describes the issue, and offers this “resolution”

  • Run VSS backup again on the storage group on which backup was stopped. If the successive VSS backups fail with a backup-in-progress error, stop and restart the following services from the Services snap-in. This will clear the backup-in-progress state for the storage groups that are affected by this failure:
    • Microsoft® Exchange Information Store service.
    • Microsoft Exchange Replication Service.
  • If you are using cluster continuous replication (CCR), stop the backup process that is running, restart the passive node of the cluster, and then try the backup again.
  • In my case, I am protecting a CCR cluster, which, according to Microsoft, requires me to restart the node that I am protecting every time I get this VSS error!  I did let the error go once, just to see if it would fix itself, and after 3 days, it did.  **NOTE:  I had PLENTY of space on the Exchange server for Logs, or I would not have attempted this.**

    So, happy restarting… until MS can give us a patch!





    Script to remove all datasources in Inactive Protection

    25 09 2008

    After I moved several protected servers from one DPM server to another, I had a LOT of exchange storage groups left in the Inactive Protection that I wanted to get rid of.  Doing this  manually was very time consuming, and lots of clicks.  So, after a quick search, I found a script on the Ctrl P blog that does exactly what I needed to do!

    Usage:

    Remove-InactiveDatasource.ps1 -DPMServerName [DPMServername] -RemoveOption [Remove Options]

    Run ‘Remove-InactiveDatasource.ps1 -detailed’ for detailed help

    Attachment: Remove-InactiveDatasource.ps1





    DPM Install Issue: Error 3023 when installing

    25 09 2008

    Error ID 3023:

    DPM is unable to configure the Windows account because the password
    you entered does not meet the Group Policy requirements. (ID: 3023)

    I received this message right after selecting the DPM installer to install SQL, on the next screen, it asks for a password for the service account to use.  Note, that this creates a two local accounts, using the password provided in the installer.  Time after time, I kept getting this error ID 3023.  Strange thing, I was able to go to computer management, add a local account, using the exact same name and password that the DPM installer was trying to do, and it would work!?!?  But when the installer did it, it would fail.

    This error was a HUGE problem, and caused me a great deal of stress, so, I wanted to pass on the solution, so nobody else needs to have this heartache! 

    My first troubleshooting steps were to block all group policy to the OU the computer account was in, perform a gpupdate /force and restart the server.  This didn’t work.  Same error message.

    Next, I created a local admin account, logged in with it, and tried to install DPM with it – no go, as the installer needs to communicate with Active Directory.

    Then, I tried installing SQL 2005, and SQL 2005 SP2 manually.  The install when OK, albeit, the SQL install took an unusually long time to install.  I remembered something from a long time ago, that I was installing SQL, and it would hang for hours during the install, while setting permissions, and the trick was to unplug (or disable) the NIC during the install, and it goes right through without issues!  I did this, and the SQL install went through nice and quick!

    So, Now I had SQL installed, back to the DPM installer.  So I choose the option for an existing SQL instance, and don’t you know, that only works if the SQL is NOT on the same box as you are installing DPM?  ARGH!!!

    Uninstalled SQL….

    Well, I had an idea – I had to disable the NIC for the SQL trick, maybe I can do this with DPM?  So, I disable the NIC, and start the installer.  Failed the pre-requisite check, saying it couldn’t communicate with Active Directory.  So, enabled the NIC, started the installer, got past the pre-requisite check, then disabled the NIC, selected for DPM to install SQL, clicked next, said a little prayer, and entered the password…. clicked next….. AND IT WORKED!  I was couldn’t believe it worked!  So, I enabled the NIC again, and let the installer go to work.

    All was good, until the installer was done installing SQL, and SQL SP2, it started the DPM portion of the install, and it failed, with this error:

    *** Error : Report configuration failed.

    Verify that SQL Server Reporting Services is installed properly and that it is running.

    ID: 812

    Now oddly enough, this error references that SharePoint Services is installed on the same machine, and there are certain steps in order to make SQL for DPM and SharePoint Services to work correctly together.  Well, that’s great, except for the fact that I DIDN’T have SPS installed on the box!

    Well, I ran through the installer again, disabling the NIC before the password, entered the password, enabled the NIC, and got to the DPM install portion again, and watched it fail on the section of setting security.   BINGO!  that’s the same place that SQL was messing up before!  So, start over, Disable the NIC for the password, enable it again, wait for the installer to get to setting security during the DPM install portion, and disabled it again….

    Survey says!?  Success!!!!  After the security, the installer finished in a few minutes, and I enabled after the install was complete.  I enabled the NIC, restarted the box, and I was finally in business!

    I hope this helps somebody else out there, I know it was a bear for me!  If you have any questions, please comment, and I’ll be glad to answer them if I can!  Good luck!





    Move Protected Server Agent to another DPM server

    24 09 2008

    If you work in a multiple DPM server environment, you will, at some point run into a situation that will require you to change protection from one DPM server to another. So, how do you do it? Simply two command lines. (queue up the Stapes “Easy” button…)

    Scenario:

    • DPMServer01 is protecting Exchange01
    • You want DPMServer02 to protect Exchange01

    This is a three step process:

    1. On the DPM DPMServer01, stop protection of Exchange01
    2. On Exchange01, Open a command prompt, and and navigate to where the DPM Agent is installed (default is %ProgramFiles%\Microsoft Data Protection Manager\DPM\bin\). Execute the following command:
    3. SetDpmServer.exe -dpmServerName DPMServer02 

    4. On DPMServer02, open DPM Management Shell (Powershell), and enter this command:
    5. .\Attach-ProductionServer.ps1 -DPMServer DPMServer02 

    You will also have to provide the following information (and can be added as additional switches in the command:

    • -PSName (Protected Server Name)
    • -UserName
    • -Password
    • -Domain

    That’s it! (Time to press the “Easy” button!)I have noticed that it takes about 5 or so minutes for the agent to show up as available on the new DPM server.





    Fix Error 3114 & Error 30216

    15 09 2008

    Errors:

    Recovery point creation jobs for Storage group Storage_Group_04 on Server1 have been failing. The number of failed recovery point creation jobs = 1. (ID 3114)

    DPM has detected a discontinuity in the log chain for Storage group Storage_Group_04 on Server1 since the last synchronization. (ID 30216 Details: Unspecified error (0x80004005))

    Fix:

    Although DPM prompts you to Create a recovery point… it will not perform a Full Backup as needed to recover from this error.  Click the Protection tab, navigate to the Storage Group you are protecting, right click, and choose create recovery point.  Then choose to create an express full backup.  You can now inactivate this alert, as the Full backup will resolve the issue.








    Design a site like this with WordPress.com
    Get started