DPM does not remove expired recovery points

I have been using DPM for about 7 months now.  (I tested with it for a few months before that.)  I never installed 2006, but 2007 seems to be working ok.  I have a few complaints, but I have complaints about all the backup software that I have ever used.  None of it really makes me happy.  But on to the story…

I have 3 production DPM servers.  One of them has a large number of protection group members.  8 Protection Groups, 328 Members.  And that is just to protect 39 computers, but one of the SQL servers has about 150 databases.

I noticed the problem because I kept running out of space on the Recovery Point volumes.  I had a particular 2008 Domain Controller that the system state recovery point volume would have to be extended every couple of days.  I was keeping the recovery points on disk for 5 days, so it finally occurred to me that it should take more that 200 GB to keep 5 days work of recovery points for the system state. 

I called and opened a ticket with Microsoft and we have been working on this for almost 2 months.  So far, the best that I can tell is that the process that clears the old recovery points slowly eats up memory.  This coupled with the fact that I have a lot of PG members, and means that the job frequently fails before it completes.  If the number of recovery points continues to grow, the job that clears them (pruneshadowcopies) takes longer and takes more memory.  This increases the chance that it will fail…

I don’t have a solution to this problem yet, other than a few work-arounds and a way to manually run the process:

  • add more RAM to your DPM Server.  Especially if you are running SQL locally on the box.
  • reduce the number of PG members.  Fewer members, less recovery points, less chance the prune job will fail.
  • open the DPM Management Shell (DPM PowerShell) and run “pruneshadowcopies.ps1”.  This will manually run the job that is triggered by DPM at midnight every night.  If you have a lot of recovery points that haven’t been pruned, then this will probably fail (crash) a few times before it finishes.  I have had it run all weekend before and then crash, and I have seen it run for just an hour and then crash.  Keep running it, and it will eventually finish. 
  • Hope that Microsoft comes up with a real fix soon…

To see if you have this problem, there is a version of the pruneshadowcopies script that just shows the recovery points, without actually expiring them.  The tech that I have been working with on my case sent it to me. 


  1. Hey Michael, we’re seeing the same problem within our DPM server as well. I have currently two protection groups with about 60 members in each. Most of them are SQL databases.

    If you would like to compare notes, feel free to e-mail me.

  2. Michael,

    Where can I get a copy of the script that shows the recovery points, but doesn’t expire them? I don’t see a link to it on your site. Thanks.

    1. To get the script, you can either e-mail me and I will send it to you, or you can open a ticket with Microsoft. I am not aware of it being available anywhere other than that.

  3. Hi,
    we are experiencing similar problems. Please send me the script (which only shows the recovery points, without deleting them). We are having problems with secondary DPM, which backs up primary DPMs databases. It’s a small group with just 6 members (all DBs from 1 computer). Only one member (backup of DPMDB) does not delete it’s expired recovery points.

  4. Hi Michael

    I would like this script you mention that shows the recovery points.
    DPM throws up far too many annoying issues, this being yet another one.
    Far too much babysitting involoved in this prduct but would really appreciate it if you cold send me the script.
    Many thanks

  5. Hi Michael,
    I applied the hot fix KB970867 — how do i confirm pruneshadowcopies.ps1 is really working — i dont see any change in the free space of the disk storage pool attached to the DPM.

    I have very old expired recovery points which are not getting deleted.

    Please clarify on this at the earliest. waiting for ur reply.

  6. If you could also tell me how to use Get-RecoveryPoint and RemoveRecoveryPoint cmdlets in the DPM Powershell please?

    I’m in a desperate need to delete the old recovery points at the earliest. running oout of the disk space on the storage pool.


  7. Hi Michael

    I too would like a copy of this script you mention that shows the recovery points.
    Can you email me a copy?

    1. I sent this by e-mail as well:

      If you are experiencing a problem with the recovery points not expiring, there is a hotfix:


      In that post, I have a link to the hotfix, and the script that Microsoft provided to show the expired recovery points is there as well. The script to clear the expired recovery points is the “pruneshadowcopies.ps1” that is present in the DPM\bin directory. You can run it manually, and it will clear recovery points. If you have a lot of expired recovery points, it will take running it multiple times to get it caught up.

      Let me know if this doesn’t make sense or if I can be of any further help.

Leave a Reply