System Center DPM 2019 - exported recovery point spanned to multiple tapes, unable to restore

HarryR 0 Reputation points
2023-09-01T20:06:29.8766667+00:00

Hello,

had to keep a recovery point of Exchange Mail DB for extended time so I made a copy of it to tape (restore to tape).

As it was large, it took two tapes - I can see them in the library management as "(Imported) DPM_Recovered ............ 0000001" and "(Imported) DPM_Recovered ............ 0000002".

When checking for the content of the tape I can see both contain the single object - the MailDB I am interested in.

Now I wanted to restore it to disk (not to Exchange server). So I selected the first tape, opened the content, checked the box next to the Mail DB and selected "Copy" button - then I selected the target server (DPM server itself - and a newly attached disk for this) and started the restore.

It created a job, allocated roughly 4TB on the disk (which is estimated size of the complete Mail DB) and started to write the data (I have seen the data flow to the LUN).

However - after reading the first tape (cca 10hrs) it just finished (job completed - no error). It did not proceed on the second tape and deleted all the already restored data.

I googled a bit and I think powershell can help with

Copy-DPMTapeData [-DPMServerName <String>]

-IncompleteDataset <HeadlessDataset>

....

but I am not exactly sure about the syntax (or if it is even a right way to do it) and as every attempt may take 10+hrs I am asking first.

Thanks for pointing me in the right direction

Harry

Microsoft System Center | Other
0 comments No comments
{count} votes

3 answers

Sort by: Most helpful
  1. XinGuo-MSFT 22,231 Reputation points
    2023-09-04T07:20:47.3266667+00:00

    Hi,

    It seems like you're encountering an issue with restoring a backup from multiple tapes in System Center Data Protection Manager (DPM) 2019. To address this problem, you can use PowerShell cmdlets to help manage the restore process.

    Restore Data from Tapes: Use the Copy-DPMTapeData cmdlet to restore data from the specified tapes. Replace <TapeID1> and <TapeID2> with the actual tape IDs. Also, specify the target location where you want to restore the data:

    
    Copy-DPMTapeData -TapeID <TapeID1>, <TapeID2> -TargetServerName <TargetServerName> -TargetVolumeName <TargetVolumeName>
    
    • <TapeID1> and <TapeID2> should be replaced with the tape IDs you noted earlier.
    • <TargetServerName> should be the name of the server where you want to restore the data.
    • <TargetVolumeName> should be the name of the volume or location on the server where you want to restore the data.

    The -IncompleteDataset parameter of the Copy-DPMTapeData cmdlet is used to specify an incomplete dataset to be copied from the tape to a target location. This can be useful when dealing with large backups that span multiple tapes, and you want to copy only a portion of the data.

    Here's how you can use the -IncompleteDataset parameter:

    
    Copy-DPMTapeData -TapeID <TapeID1>, <TapeID2> -TargetServerName <TargetServerName> -TargetVolumeName <TargetVolumeName> -IncompleteDataset <HeadlessDataset>
    
    • <HeadlessDataset> should be the identifier of the dataset you want to restore. This is typically a unique identifier associated with the specific data you want to restore. You need to specify the correct dataset identifier that corresponds to the Exchange Mail DB you want to restore.

    The -IncompleteDataset parameter allows you to selectively restore specific portions of the backup data, which can be helpful if you don't need to restore the entire dataset from the tapes. Be sure to identify the correct dataset identifier to ensure that you're restoring the desired data.

    0 comments No comments

  2. HarryR 0 Reputation points
    2023-09-04T12:43:09.67+00:00

    Hello,

    thanks for the answer - right now in the middle of another attempt so will try to test later. However I do not feel it is correct

    a) there is no "TapeID" parameter for the Copy-DPMTapeData in DPM 2019 (maybe another version?)

    https://learn.microsoft.com/en-us/powershell/module/dataprotectionmanager/copy-dpmtapedata?view=systemcenter-ps-2019

    b) there is a "Tape" - which accept the object of type "Media" - however it seems it does not accept multiple tapes (separated with coma).

    PS C:\Windows\system32> Copy-DPMTapeData -tape $alltapes[3],$alltapes[2] -TargetServer dpmserver.whatever.site -TargetPath h:\recover3\ -OverwriteType NoOverwriteCopy-DPMTapeData : Cannot convert 'System.Object[]' to the type 'Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.LibraryManagement.Media' required by parameter 'Tape'. Specified method is not supported.At line:1 char:24+ Copy-DPMTapeData -tape $alltapes[3],$alltapes[2] -TargetServer storm- ...+                        ~~~~~~~~~~~~~~~~~~~~~~~~~    + CategoryInfo          : InvalidArgument: (:) [Copy-DPMTapeData], ParameterBindingException    + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.Internal.EnterpriseStorage.Dls.UI.Cmdlet.RecoveryCmdLets.CopyTapeData
    

    c) similar problem with the -incompletedataset <headlessdataset> - this is an object - and can be get using powershell - but seems it returns the same (all zeroes) identifier for all the tapes (even "regular" copies)

    PS C:\Windows\system32> Get-DPMHeadlessDataset -Tape $alltapes[4]
    DatasetId                            MediaId                              CreationDate         ProtectionGroupName
    ---------                            -------                              ------------         -------------------
    00000000-0000-0000-0000-000000000000 00000000-0000-0000-0000-000000000000 1/1/0001 12:00:00 AM   
    

    Again - thanks anyway for your time - will report the all the results.

    Harry


  3. HarryR 0 Reputation points
    2023-09-06T11:12:51.2433333+00:00

    Hello all who spent their time reading the original question.

    Problem was solved - hope this helps at least one person in the future.

    My approach was wrong from the start - in this case ("exported" recovery point spanning multiple tapes) you should not use "Tape -> View tape content -> Select -> Copy" approach but

    Recover -> (note there should be "External DPM Tapes") -> select the object/recovery point (this now shows its location being Tape with option to "View all tapes") and recover as normal "Local DPM data"

    Did not examine the Powershell approach.

    Thanks again, closing.

    Harry

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.